设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9668|回复: 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: K. A) D; P+ e*/
5 n1 v; c) S% j' [is
/ H+ J+ I$ q8 [5 E        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
' h; {& k5 r2 x7 z) sdo! S, l: P" j$ @: o9 A* y% r
        Lan := rootfolder.Internal.Tools.AOLlanguage;
1 q9 Y! v+ b4 f) L        if current = @.Destination -- else return: h6 d& i: J9 t9 _* |; H
        then3 G4 ~) W8 i1 @5 }9 q* F. k6 U
                @.Destination := void;
! ]  Q% ~: ?& {! t                if @.occupied then
8 x, ^" ~  x# m: U: o                        part := @.cont;- t: Y- E8 h! i) [, b# A* f
                        @.transpOrder := void;
3 z  J( Y1 P/ h6 f5 {                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,# a% ^0 `. x8 ~# G+ e! L% f4 y# d) {
                                @,root.eventcontroller.simTime);
$ o# r: V/ e& ?# b* b3 ?* ]: I0 `- ]1 K                        @.HasOrder := false;
# u0 C" M( a1 {9 L                        @.DrivingHome := true;- a# }/ Z- ~1 ~! n6 @
                        rgManager.tryToStartTransOrder;
9 M& j: b% P$ U0 K0 a; K                        if @.Destination = void
0 ^% n7 p/ E6 z1 u                        then -- no transport order for vehicle @
# _$ n3 R! o0 c0 s: B                                @.Destination :=; L! B/ A" r; ^: Y/ p% R) f
                                rgManager.nearestFreeStation(@,track.~);1 k4 i3 j- B, |
                                newDirection(@);   7 e7 e3 e. E% R1 E% b
                                if @.Destination /= void then
9 b* O" F6 E( \. g3 e6 [7 ^/ O6 C, t                                        @.Destination.NumReservation :=
8 l, h7 g/ d- e' O5 y                                        @.Destination.NumReservation + 1;
. }( F' [, D! ]                                end;% C/ }! ?) {5 _2 t' V
                                @.CurrIcon := "drivingHome";/ H6 c; U/ E" i' q* |: t
                                @.DrivingHome := true;
5 F2 c/ P# x1 d; X# W, f& X                        end;4 e' @. @. A. u# q7 H, ~
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
+ O0 d4 g9 R; m5 y+ x/ U4 M                        part := @.transpOrder;: G) G" P/ W8 G
                        part.move(@);-- load part: q; o- G! j$ i7 T, `
                        @.CurrIcon := "load";
: L4 K) H% X; n4 E: Z" g6 h0 z                        GlobalDistObj := part.globDestination;8 i& ~- Y' o0 o6 c3 J
                        assignLObj := rgmanager.rgAssignL;* u& Y" ]& i" k) E0 @; V* X: A
                        row := assignLObj.getRowNo(GlobalDistObj);
6 ~! t  i* B  U- Y& }                        if Row = -1 then -- since 700 Q4 d; |: A5 g: ~8 G$ g
                                if lan=1 then
0 M& A$ N& G# x; U                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),, B, _; @! V4 K( o
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
) s; q! ^& c' ?7 K' ~6 @- d3 |1 |. I                                else' e5 q; N4 w8 |
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
) f7 O1 D' O- l5 p5 b                                                to_str("in docking station: \"",?.~.name,"\""));                                2 E2 g! W8 A, f8 w7 ?, e9 s" o+ V6 |
                                end;. E3 x0 r6 Y+ ^0 O1 d2 Z7 O8 ^
                        else: n. |$ \8 a8 l; J  y9 y
                                @.Destination := assignLObj[1,row];# l0 |! P  Z- |3 O6 B; n2 l2 f
                        end;                        - C* @4 u7 \" ~! [" {4 v. g( \/ n
                        newDirection(@);
) f( A4 T/ q$ t# Q/ W                        @.HasOrder := true;3 B% q. P. J# N7 m$ |
                end;
6 h5 Q0 S9 U, _% ?3 O        end;0 U. S% {1 n0 F& ^1 g
end;        -- of the method
% T! P, Y  n8 ~0 z: D
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 5 `; {  x/ O2 @( _5 ]
" H5 C$ {9 ?' a8 q6 a6 Y
这是AGV_putin中arrive的method。
# ^8 H- |7 E  L% l7 L
  L+ |; b0 ?) T1 ?5 b; v" k当到达物料速度越高时,这个报警更多,
0 D( J4 N4 u1 x5 r0 a可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。/ a6 F. I' _7 ~! r; `3 ]
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
5 ]. O1 l9 g+ v  N4 V3 N; s
7 a* t0 S: T3 l7 i1 k( t: C另外一个小建议,就是move,所有的move都可以这样& {. d) o- b) P+ _# S9 G
if not move() then debug end4 T* c3 ^1 S, Z( I0 R) M& x
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
5 E0 ], O8 y; M& lplant simulation中的free libraries有AGV模板,
  w. A) O! `$ Y1 P1 g) Q' S0 c! Q! s5 ^里面也有案例。7 @% k6 w. R0 q! g
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。3 i! W3 a/ }& q5 E; P5 x
8 N/ ~7 H2 ?% w) [; @' d/ _& a
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 # y, r' B( H, d$ c' ?8 y% E( L8 f

/ k! z, Q. o: e. N% k* ^% W/ _那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 & O% N# y0 P. \6 O) q
这是AGV_putin中arrive的method。
0 ^) r- Y# s, q+ o1 q! z3 r* c- `8 L; Y) c  z; m0 K6 ^# X
当到达物料速度越高时,这个报警更多,
! a$ m5 A7 n  W( R( M. A3 m2 p
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-15 23:32 , Processed in 0.019235 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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