设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7617|回复: 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'( j# l( Y. ~% C& S7 d2 u6 Q$ k9 F
*/, h1 n! L# K, n6 z' F$ k
is
( a' A1 R) M, S" @        part, GlobalDistObj, assignLObj:object;row,Lan:integer;$ U7 r* ~7 H5 y
do# C4 V& j( g' T9 D
        Lan := rootfolder.Internal.Tools.AOLlanguage;" j/ p. u/ ~% o0 J/ P) _
        if current = @.Destination -- else return" Y  i0 [& }$ H
        then
3 ?. f  q9 f! \5 O3 o                @.Destination := void;
1 y  P8 W! Z* S) X4 z# H7 S% f                if @.occupied then
, s- k% }9 B7 O9 G! F/ Q                        part := @.cont;
2 R, Q8 ?& a! \8 v3 h# b/ m5 V                        @.transpOrder := void;
; n1 N/ }+ B! k                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,/ m/ n( Y, j) j; i3 J; i, ]1 f
                                @,root.eventcontroller.simTime);
/ }8 ?  z. x0 D  R7 G& ^+ n                        @.HasOrder := false;8 D. o) k+ _3 l) A' }8 y5 o3 w
                        @.DrivingHome := true;
0 a/ ~8 z4 J, B' c- l8 y. }0 U; T' }                        rgManager.tryToStartTransOrder;0 `& d( |; ]6 d0 Q, \8 W
                        if @.Destination = void
' w; m' v6 ]& t4 N                        then -- no transport order for vehicle @& ?" {7 L5 K$ d4 a8 }
                                @.Destination :=# T* r: T' h1 m
                                rgManager.nearestFreeStation(@,track.~);7 G- B) m4 w3 `
                                newDirection(@);   
6 X5 b# u9 A5 i8 L8 E1 f0 \                                if @.Destination /= void then
* O& o5 q, F! f5 Z2 \5 u* e                                        @.Destination.NumReservation :=
# Z5 D0 q' Z$ v6 V+ [  k4 ?                                        @.Destination.NumReservation + 1;% U6 c5 @" [: N, [+ U5 M* G8 [( e: u
                                end;1 ]  T( [, N; G; [/ h7 u
                                @.CurrIcon := "drivingHome";; V: J1 Y2 T7 T  b% j2 H
                                @.DrivingHome := true;' F2 G* _) g1 P6 s6 o8 O. J& v' f( o% |; P
                        end;2 J1 [* d$ C9 d2 ~" S( F
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station5 q# r7 a4 R- X# K# f
                        part := @.transpOrder;
- A$ M8 S( T. L7 k5 X. V% U+ ?) S% m                        part.move(@);-- load part0 O) o2 l$ K: p2 M' L& I
                        @.CurrIcon := "load";2 R' v: }8 A7 x! ?, L# ]5 k# |
                        GlobalDistObj := part.globDestination;' }! Y8 V) z& `" a. N/ J: T7 T
                        assignLObj := rgmanager.rgAssignL;; q0 z8 `2 M2 E8 m" a
                        row := assignLObj.getRowNo(GlobalDistObj);1 E8 x- K1 z% c6 X
                        if Row = -1 then -- since 70& d- G0 b6 B) |+ m# M$ B) x$ M# A
                                if lan=1 then
& ?  K6 S" |; p' ^, }                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),8 o& K- }0 Z+ z- f$ E
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
8 G  X8 o+ q% M& v                                else
: J* p, s- P0 _. C                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),1 p  v- S; J  A9 E7 H, l5 S
                                                to_str("in docking station: \"",?.~.name,"\""));                               
; V# Q) f* Y% z' V2 l. X6 K: T                                end;# L  S# [0 \/ D! h
                        else
9 R" q5 R3 u2 \( u/ `6 @% ]6 i                                @.Destination := assignLObj[1,row];
* a8 p5 x& M! }/ L5 X8 m, t+ O! t4 E' i                        end;                        3 q; N' ^8 _* A0 i; C) ?( B/ J
                        newDirection(@);
( J2 e3 K/ h% ]7 {                        @.HasOrder := true;
) ]& Q7 h8 p, p; ]6 [                end;
& H! H; R) q% Y; N. A: |/ X6 I- M        end;
2 `4 q+ B6 d9 l2 Qend;        -- of the method. y, e+ Q( `  ~% g7 ?
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ( x4 v9 U: \) M

! b( z7 E5 T  v$ H* G) ?这是AGV_putin中arrive的method。
/ A1 @! u/ C% E) y2 l# h, D, E; Q
当到达物料速度越高时,这个报警更多,- D9 ?: G" w: d9 c# d
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
; i( w  X- }) {& t: W4 i程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
1 D  a4 d2 g# O. ?- G; S3 T
2 w% ^( l' R6 j; I另外一个小建议,就是move,所有的move都可以这样
5 x& ^; D, N7 ^. }; Nif not move() then debug end
- o- S0 B$ N$ h这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。7 C/ p  h" n$ D3 b6 Z
plant simulation中的free libraries有AGV模板,3 @3 a5 U4 Q! Q" r7 O3 o0 j
里面也有案例。
) p- x% J& K+ y) F+ ]+ T, }2 B5 M我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
$ g6 Q+ b) f( j/ K; c# }& P. I- J( h6 l+ s+ a9 I3 q4 G
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ( a& X. w' s/ A+ [+ \6 a# H

: J& ~& h8 n) v% `3 P# b4 I6 U8 S那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
1 [- S8 D: u; Q) G7 [' o: s; l这是AGV_putin中arrive的method。
2 A) o+ E9 u. e, }
9 P9 Q' y+ |7 {当到达物料速度越高时,这个报警更多,

/ d. w; A1 i# h5 j% {; {0 h* Q另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-20 11:40 , Processed in 0.015302 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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