设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6306|回复: 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'" f* |) _7 e# t  w0 J# o
*/
* ?! B' l' F) }2 Lis6 A6 ^" C+ l" X% D! v( i
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
% s$ |9 {& i& @* g' R9 tdo5 `& k3 k- d9 t! t3 i. `
        Lan := rootfolder.Internal.Tools.AOLlanguage;# t& \  \& r4 T+ p* Q5 F
        if current = @.Destination -- else return; Q5 Q. ^) b% Z( w5 J) i7 y1 W
        then$ B$ u% m2 Z) ~7 x
                @.Destination := void;5 i/ c' O- J+ N+ V% r
                if @.occupied then
( V# I1 ^! K2 l/ }& v+ T                        part := @.cont;
/ n3 {+ q8 u) k                        @.transpOrder := void;! V. a$ }5 H. ~. M6 m9 U% k
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
1 u9 H( R* V/ z                                @,root.eventcontroller.simTime);1 x: x& P9 J9 S+ b- m8 L
                        @.HasOrder := false;  ~8 [: z8 l& E: F5 t
                        @.DrivingHome := true;
2 V. M& J5 ?( @" w& S; {                        rgManager.tryToStartTransOrder;
+ D" W; k- N! {                        if @.Destination = void7 g2 t- b7 |0 V+ r0 N/ L/ i, r+ G2 W
                        then -- no transport order for vehicle @. o  v: u" s) [& k, V
                                @.Destination :=& N8 g. h  ?9 O5 F7 B3 c: j
                                rgManager.nearestFreeStation(@,track.~);
9 ]7 C/ q7 M9 p                                newDirection(@);   - N( Q- r+ E# c9 i5 S# _% e
                                if @.Destination /= void then
8 s* K" E' @& Q& Q+ N5 B                                        @.Destination.NumReservation :=+ x# d7 h- ^' O
                                        @.Destination.NumReservation + 1;
. E: H  p8 |- K8 ?                                end;
9 h( v$ t" P& [+ ^3 N) a2 {  t                                @.CurrIcon := "drivingHome";0 ~8 l% w# t# O6 F1 Y7 V
                                @.DrivingHome := true;. F3 N/ j: j/ P) O7 t; m
                        end;6 t" l8 H1 U+ `, Y
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station: K0 R+ h! J+ O0 b! \1 t- Q( |
                        part := @.transpOrder;+ o+ T. p! q% M& W' @3 ?
                        part.move(@);-- load part
7 I  R" n/ a& E% U2 V                        @.CurrIcon := "load";
8 m6 c& P, v$ a; K                        GlobalDistObj := part.globDestination;
/ L/ G# L# I) {                        assignLObj := rgmanager.rgAssignL;
' H' _; ?7 {7 z: m  P                        row := assignLObj.getRowNo(GlobalDistObj);; l5 c) o- p9 @- e7 ~
                        if Row = -1 then -- since 701 j" Q% z/ f6 B$ z" N
                                if lan=1 then
+ L* n  Y7 k. ^8 o0 x                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
# r# ]2 w* J5 K/ H% a& ^1 U                                                to_str("in der Andockstation: \"",?.~.name,"\""));! p4 N- j$ H2 @* t5 T
                                else
5 a- L% A0 a) j, a8 j$ u1 I                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
" j) j% C$ d) `) X' R, d4 S- b                                                to_str("in docking station: \"",?.~.name,"\""));                                ; f) c$ S: @. h3 m- F
                                end;3 J* R0 L# y) p) \( a* |! q3 j5 ?
                        else, X, }* |/ I$ ?7 W
                                @.Destination := assignLObj[1,row];7 t: }" R# [  _5 y' W# H
                        end;                       
7 ^5 k- o- @  R4 b                        newDirection(@);
8 _$ B( x2 H+ H) j& ?! X4 w                        @.HasOrder := true;: d$ w/ F- Y  d) u2 n
                end;
1 z, \2 @5 h% `$ j        end;
; N. s. I% o! ~3 T, ?* |3 _end;        -- of the method
- `; v9 a' W. h# w5 J; S
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
. I7 n9 o( W! D/ u% a% J" ~5 E4 u
' V# q  G, Q7 R9 n这是AGV_putin中arrive的method。
1 v& m6 y6 C- ^& z
7 T  ]$ c" K5 m( L当到达物料速度越高时,这个报警更多,5 M4 R4 f( @: P% R2 N- F5 X
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。  q1 J! I" O8 K' z
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?% v' q8 d- L% E' X
9 q* @6 ]0 N" H* \) s" _. x- Q
另外一个小建议,就是move,所有的move都可以这样) y8 A, I  S5 f2 J5 x: q, w2 e- q
if not move() then debug end
6 l! e- o8 Z0 E1 P这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。. I! p$ m% m4 a, m& a. ?
plant simulation中的free libraries有AGV模板,
& Q' I6 B0 M" b4 j1 M里面也有案例。5 @4 G  U; O5 u( A0 I
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。0 k; Z- T1 E; G, i2 Y9 v

/ s6 F; V% x2 ^8 a( e我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
! G4 k( G2 ^. `6 a0 T2 o% B3 C& d3 ~# w, t2 }9 M9 {
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 0 r' `* z$ A) r% h/ Q6 g
这是AGV_putin中arrive的method。
, G" a& e: F# l$ M# E, g; B6 M" `. s; j: C: D7 X/ H
当到达物料速度越高时,这个报警更多,
1 a* |0 U3 C5 ^+ y8 O) {: r
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-29 23:43 , Processed in 0.025000 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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