设为首页收藏本站

最大的系统仿真与系统优化公益交流社区

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7378|回复: 9

[求助] 用AGV模板发生了以下错误,请解!

  [复制链接]
发表于 2011-11-5 16:38:28 | 显示全部楼层 |阅读模式
问题在哪里?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2011-11-14 10:37:54 | 显示全部楼层
没有解决,再顶一下。
 楼主| 发表于 2011-11-17 11:03:27 | 显示全部楼层
/* called by:        entrance ctrl of the object 'track'
9 P: Q/ w3 E6 @/ E3 `*/
( Y; }# R* e/ c' His
3 m6 T8 b9 v+ {9 N        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
6 C% T6 W9 y$ N7 U9 y9 D& t5 {# x$ pdo' O- b) [1 F, ]% Z, M' g3 O/ P
        Lan := rootfolder.Internal.Tools.AOLlanguage;
: x7 a6 X% W% g( Y' G4 X1 Q% e        if current = @.Destination -- else return+ q/ i5 H  Z7 z. l$ {
        then  y4 {: B1 P+ g  O6 r2 K
                @.Destination := void;
+ A+ y1 C) U( B0 H  b9 W                if @.occupied then1 K0 d. O! Y$ L5 ^
                        part := @.cont;
6 Z- M# J$ _3 N                        @.transpOrder := void;
/ [* n& ]9 e* t$ @2 g2 ]) r5 S                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,: z4 M! o/ @% K) E
                                @,root.eventcontroller.simTime);
: J: t3 {* O, t  V4 V                        @.HasOrder := false;
; P! f0 I' e" `; K9 S                        @.DrivingHome := true;
  n4 |9 P4 t. ~9 U                        rgManager.tryToStartTransOrder;1 U; u) ?+ n# o6 E" w3 f5 d
                        if @.Destination = void
; b/ H: O) c2 o                        then -- no transport order for vehicle @  u, m3 S. {3 `! }7 y) g
                                @.Destination :=9 S. E8 v5 V+ m3 l
                                rgManager.nearestFreeStation(@,track.~);" J( f2 R4 q3 k* C: Q
                                newDirection(@);   
9 B' X2 N9 r! H- Y( F+ y                                if @.Destination /= void then
1 Z- Q: Q' r9 K' S( B+ |                                        @.Destination.NumReservation :=
, |, q7 C+ a: p, n% I" ]" W                                        @.Destination.NumReservation + 1;
$ \/ C2 c5 i) f                                end;
9 f0 V4 S9 g& H7 r; d                                @.CurrIcon := "drivingHome";9 w0 P6 C# ?1 o
                                @.DrivingHome := true;+ k& N5 ]! V; j; I
                        end;2 d* q4 @: N# P- A7 Q% T$ i! ]% h7 I
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station% j/ [* k" ?$ j7 h9 K+ X5 S
                        part := @.transpOrder;
" f6 i/ }& O- Z; ?                        part.move(@);-- load part0 c: N4 p. y1 m5 `# J0 O" \
                        @.CurrIcon := "load";
8 c' l% k3 Y. |6 x                        GlobalDistObj := part.globDestination;$ w( k. n  K; H2 L  L/ G  Y" g( L" K
                        assignLObj := rgmanager.rgAssignL;
" A5 X/ ~2 E/ E, I9 y' Y                        row := assignLObj.getRowNo(GlobalDistObj);
' |, Q# R; J& P0 L! b                        if Row = -1 then -- since 70* e# I" E9 ]2 @# z- U9 a+ n
                                if lan=1 then9 b# s$ w6 ]9 P' D3 b6 ^
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
# H0 f9 h9 S2 g" q: l; Y2 n                                                to_str("in der Andockstation: \"",?.~.name,"\""));& c8 W! y/ O: e( v
                                else
+ G6 o5 F; f3 o% d0 ]$ d4 R# y                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
, v' ^2 s. _, Z" @0 @                                                to_str("in docking station: \"",?.~.name,"\""));                                  F7 b2 s; Q7 X" M/ S" c5 n" ?
                                end;; k; i% `. Z8 v. }& T
                        else
9 C" h4 I4 u* u2 w                                @.Destination := assignLObj[1,row];
3 {9 X6 O# }  Q5 v                        end;                        ) j7 B+ C6 I2 U9 V2 Y; ]! Q9 Y
                        newDirection(@);
5 U# r+ h$ Y6 s                        @.HasOrder := true;$ e8 D2 |# a. t& G& z) ]
                end;
- {" k/ ^5 b& M4 G- b. z        end;
9 V/ a& D5 Z+ r) H' J' n1 Lend;        -- of the method
9 k9 h- ~, i$ \; A4 C5 X2 F/ N
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
0 c8 b: J( V# M, U$ o8 c$ q6 ]4 ]1 _/ i8 Z8 S" i
这是AGV_putin中arrive的method。" G+ r3 p' l2 [- _

$ q* T' P+ h$ \& ~, {( ^当到达物料速度越高时,这个报警更多,3 e! g- M9 X& u- y9 R+ b# p+ l
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
# f7 ^( {* e' w. R程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
' g5 N# P5 N. t3 o: F6 {' g/ h$ I
9 {1 D' n4 k( O9 [另外一个小建议,就是move,所有的move都可以这样' p+ N" A$ b. J
if not move() then debug end
$ c5 H' S) b$ E3 w这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
1 e, L) K, ~  a- Wplant simulation中的free libraries有AGV模板,; X: K0 d; V. J6 s! ?1 G1 @
里面也有案例。
5 ]: B6 V# t# T7 _/ n" _: @& h我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。1 y7 E5 t; I$ O9 O
' {$ _: M! g7 W0 p) g, y- m
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 5 x' g  d0 Y0 @' B, q) l2 E2 q, A- R

& ~, V% }4 z% n7 L" {6 O% \/ F& l  t那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 0 ~5 R. ?& p% ^. c, x7 a
这是AGV_putin中arrive的method。4 |% a5 C# P' K  |, b* m
& Y& @" a: K( n: z
当到达物料速度越高时,这个报警更多,

# X4 h) g3 i9 Z另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|SimulWay 道于仿真   

GMT+8, 2026-4-8 08:48 , Processed in 0.020972 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表