设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7402|回复: 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'1 p2 {8 S, Q+ b. ]. v0 @
*/; ^% V& C( s/ ]- \
is
& y$ C3 j6 }3 b5 F; {4 D' I8 I        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
# X) N$ h! a& O" u3 ?) Z2 @- pdo
7 N6 C9 [% ?) f: Y4 y        Lan := rootfolder.Internal.Tools.AOLlanguage;8 A2 M7 p# ^) S: y
        if current = @.Destination -- else return! U+ |  O4 M6 D' Y+ ?8 S/ |2 }% o1 _
        then- c( b; K3 ], |2 I' E* o
                @.Destination := void;) t1 e; C* e, r; H- O- T
                if @.occupied then, @; m; C/ [7 s! F
                        part := @.cont;
1 _% L- I8 v) i9 x6 d  E# e2 A                        @.transpOrder := void;
# [+ s! h5 I) T                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
7 ^2 Z" J5 z* g4 x/ Z                                @,root.eventcontroller.simTime);
! p- X* f& `$ h) @% Q5 U                        @.HasOrder := false;
  v1 y/ g% V% V, \9 G& ~, I% y                        @.DrivingHome := true;
% r% z7 \- g& o, X  E                        rgManager.tryToStartTransOrder;
5 W! J2 G5 o. ~* o( o0 ^6 d                        if @.Destination = void6 d2 n( V$ C8 V! p" z7 J1 o
                        then -- no transport order for vehicle @. K5 K, ^, r5 r& q* d
                                @.Destination :=
- ?( C4 u" b# ^                                rgManager.nearestFreeStation(@,track.~);/ O6 p; Z/ W  o, t
                                newDirection(@);   0 P3 G$ f  G! s% p+ |  }$ b
                                if @.Destination /= void then, ^+ w7 C* I. ^1 x; ^" f% o" m
                                        @.Destination.NumReservation :=
( [: t% j5 s. J. d) L                                        @.Destination.NumReservation + 1;# }4 o. c7 q  \8 U9 t
                                end;" b( }$ D, k+ g, a5 F4 W
                                @.CurrIcon := "drivingHome";3 M' u/ p" N3 P8 g6 r
                                @.DrivingHome := true;* F9 I1 c( h% o+ z$ ~9 t8 [
                        end;
# X9 F) k& P; ]4 l+ H- b! q) ?4 Y                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
$ s0 Q6 R6 ~' ^                        part := @.transpOrder;
6 g. ?  e, X5 q" I                        part.move(@);-- load part3 X  g1 D& F5 _& t7 _
                        @.CurrIcon := "load";  f$ @' e$ i) D2 J5 l0 L6 C
                        GlobalDistObj := part.globDestination;6 h. v2 Z1 c4 p0 s/ N& I$ y
                        assignLObj := rgmanager.rgAssignL;
3 x' s/ U1 }; W; O: `                        row := assignLObj.getRowNo(GlobalDistObj);
+ B. n! z. Y. [) Q) p                        if Row = -1 then -- since 70* I) A5 n' \1 m7 J
                                if lan=1 then
5 [2 D. d5 \- y) T0 d4 l                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),! J' v, |; N& X
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
1 p5 ~: `; q* d1 L. _# q8 c                                else
9 q' p( @+ }( B1 |. b7 U                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),% V3 q" D9 J8 k
                                                to_str("in docking station: \"",?.~.name,"\""));                                : N+ J3 @4 p1 Y0 Y8 S0 J6 B
                                end;$ D! E0 Y- i# w9 V& @, f% ~
                        else
- B! G# W& E8 T3 @5 v                                @.Destination := assignLObj[1,row];# ~8 c3 h7 G5 G! E# K; X
                        end;                        + B: M- Q. o2 [' Z& S- d
                        newDirection(@);
+ c% V- R& R% J; ?9 z  s                        @.HasOrder := true;
$ G6 g6 m% \4 P2 |. t, v+ Y                end;+ J  b7 @3 j  Z9 j: [9 c+ E9 u
        end;# X  Q& W: C: A, k/ u
end;        -- of the method6 o1 o" ?2 S4 M5 o  Y3 ?
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
4 a! A5 s* \" z# f( Y- Z
" L* |0 J. u  q5 |8 v% o4 [这是AGV_putin中arrive的method。. M5 n' Z4 i9 M3 F* n
/ O5 z5 k" v/ J& V% F3 k$ H
当到达物料速度越高时,这个报警更多,0 f( s9 r1 ]. ?5 H' Z( \
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
1 y. j" d# [+ I2 j+ z程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?2 f* _% {' n6 L/ i
1 f2 ^& i  l7 j) w% D
另外一个小建议,就是move,所有的move都可以这样, j6 o4 _7 {$ f$ d; Q" i
if not move() then debug end
/ S! I5 @: K. ]( u: _" \/ b这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
0 r! H! l1 {2 |9 T0 E  Lplant simulation中的free libraries有AGV模板,
6 b$ @2 u7 \' Y- G8 i里面也有案例。. H/ h7 c6 R- c* ^
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。3 e" M: B7 |4 I/ s" Y

" J" h) j" J0 A% i0 y& ?0 |! m" Y我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
  e! l# x; t0 b8 b" e, @# ~3 ]; i+ t! x5 C! X( t9 g) }8 h
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
1 a' e' }9 \3 q这是AGV_putin中arrive的method。1 m8 K7 Z5 O3 Z0 u8 \

* ?+ G) {) `+ n* p) J5 p当到达物料速度越高时,这个报警更多,

; X, i# Y/ m6 A) b+ c7 }; B8 _另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-9 19:06 , Processed in 0.023879 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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