设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6134|回复: 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'
/ A; z1 V3 T; V* x% |*/" s" C0 y$ E0 d1 w/ X
is
3 r! [, G2 r8 T0 t3 d, j' n5 V8 D        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
( Q" E; ]4 s; K2 a. H/ i" z! ndo
; X, b" r: i8 I- P0 n        Lan := rootfolder.Internal.Tools.AOLlanguage;! e( M& x' Z; }7 m3 H. [; {
        if current = @.Destination -- else return
  o% a, s1 V# E        then
! Z, [3 _% L% x+ j& v8 M/ e                @.Destination := void;7 a0 }7 U0 j# p3 X" Y* }: \
                if @.occupied then
$ o; }; r, M! `3 t5 N7 z                        part := @.cont;
' _9 N1 u5 p# E" t3 y3 v: ^  A                        @.transpOrder := void;
2 p/ Q  Y* P7 h* d                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
) j2 g. N% m, w' @7 ]; d; \                                @,root.eventcontroller.simTime);: c3 `; M, z  M! n" Y& [2 s1 P
                        @.HasOrder := false;7 r! q/ K2 h# }& o: Q: }+ Z
                        @.DrivingHome := true;
; K2 Z' Z5 l/ L4 _# S3 R                        rgManager.tryToStartTransOrder;
, Z: Q6 ~: N6 i$ l: C                        if @.Destination = void( }% N) k5 i, ]
                        then -- no transport order for vehicle @7 S2 |$ U1 {1 @$ n% P
                                @.Destination :=" r" y: q: M; c
                                rgManager.nearestFreeStation(@,track.~);
5 R+ b9 m0 n- k$ A! G                                newDirection(@);   
- P) E) W' {/ {0 t7 O8 g+ a: V* L                                if @.Destination /= void then
& ]& V. `# Z6 u5 s& a                                        @.Destination.NumReservation :=
; Z6 Q0 z3 D: V% C! {                                        @.Destination.NumReservation + 1;
$ f7 W. n  n# W% ]                                end;, @" s, `: ~: J
                                @.CurrIcon := "drivingHome";3 f$ I5 A% b4 z: S
                                @.DrivingHome := true;# @$ w) j% `2 E+ B+ h
                        end;! r: V7 w# l9 H' o8 p" s
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station3 ~8 P) h9 x% u8 c# M
                        part := @.transpOrder;
  D) c1 L  O% X$ L% ^) w9 `                        part.move(@);-- load part
; V( Z3 h7 w  ?. c) [% z                        @.CurrIcon := "load";
% M9 f2 ]5 f0 Y1 F) G8 |+ S+ k# r                        GlobalDistObj := part.globDestination;# j3 O7 ~; r3 d  m3 F+ }" G) R' j$ J  j
                        assignLObj := rgmanager.rgAssignL;
& {+ N( a3 `3 G' }! Q& i                        row := assignLObj.getRowNo(GlobalDistObj);
; t$ {( I3 n5 r* m' J' P" A  B0 d5 I                        if Row = -1 then -- since 70& D& C! C2 E8 `' w8 N
                                if lan=1 then* b1 H+ P: z" I1 f* D/ V, c
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
3 L; G6 n! I+ g5 `: c% M                                                to_str("in der Andockstation: \"",?.~.name,"\""));
& v$ P1 W1 M. }( W, L+ C4 l, t                                else
% w5 W/ o( u8 I; O) X& u& p                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),+ h/ q5 S8 p  C! y$ E3 o
                                                to_str("in docking station: \"",?.~.name,"\""));                               
; I" _$ Z% p8 Z4 Q) x# m$ P3 v                                end;1 A+ s& c- m6 c( |% x7 p6 x
                        else
1 F3 T; j1 j  o7 \5 p4 c7 b                                @.Destination := assignLObj[1,row];/ i% {% K  I0 f$ o
                        end;                        , M4 @1 c' ~- q' _  v- A; |2 K
                        newDirection(@);
6 l  }1 L. l" d7 ]; M                        @.HasOrder := true;6 r7 y  ^. e' K$ W3 J& b
                end;
$ Z! B2 P: H: |$ D        end;
) q% b. M2 `: S: Wend;        -- of the method
& b* j# W0 ]5 h& }- K9 R
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
6 `) L8 \$ Z1 y3 }$ m* v& ?7 ^+ c  h" W. a* H0 y5 C# Q2 ]- s
这是AGV_putin中arrive的method。
! U+ P$ v4 `" G4 w: D7 q! G0 ]- p9 q$ ?; x0 c# H. e
当到达物料速度越高时,这个报警更多,* P/ V$ {1 p3 T( J0 {* f1 M
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
1 g9 l5 h, T5 {0 I3 Z程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?& q2 \& l8 g3 Y( C( T
4 [$ r: r, |( l! d% p5 ]/ j
另外一个小建议,就是move,所有的move都可以这样6 i2 T/ o7 |& y, F' D
if not move() then debug end. i, _& N1 x9 {& m' K) X
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。- T5 u7 u0 C- m, \
plant simulation中的free libraries有AGV模板,9 ]% {0 `3 E$ W* ?& s' S
里面也有案例。) C: p" e# p" ^) Z
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。. c) m' }- u4 S, C) V( O- X
& ]% x: o+ J' U& {5 T2 N6 B
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 , v$ h0 }+ D6 W7 t# C+ N
( J% M% N- L9 U1 {" Y5 v: H7 U
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
- t7 n4 Y8 t" y( ~+ ?这是AGV_putin中arrive的method。' ^1 c7 {4 {7 c' E5 J
% m+ I( y' L) ?; z) F, u
当到达物料速度越高时,这个报警更多,

- U9 J. O% ]4 B2 Q" a' ~& g另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-20 13:55 , Processed in 0.019247 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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