设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5669|回复: 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'
$ `3 y" t8 V, c; k- D*/  q6 {- R9 Y4 G2 o
is
9 s* \2 h: n/ E: c        part, GlobalDistObj, assignLObj:object;row,Lan:integer;6 D8 c# O5 b8 c; c
do8 y1 I- \( `5 t1 A, `5 G2 f+ j* p3 \
        Lan := rootfolder.Internal.Tools.AOLlanguage;9 P. l' n( D* [) i2 s) }7 r
        if current = @.Destination -- else return, _0 c* p5 ]$ G# w+ s5 b; v6 |
        then
+ Z& }7 e* x2 j2 x# Q  B! K                @.Destination := void;
4 L0 j- U0 t  @0 w, i$ n2 q6 I0 f                if @.occupied then
* F: J+ o3 m3 M/ I% s( O* M                        part := @.cont;
1 A# j( a4 w3 t. \" K                        @.transpOrder := void;4 g2 k6 A% K! U% c- D
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,$ [. G9 C; E5 \
                                @,root.eventcontroller.simTime);7 Q0 B. C- s# M3 g& x9 A
                        @.HasOrder := false;* G6 c& w& K/ X( p6 D0 v' ~. W
                        @.DrivingHome := true;
8 h0 t8 q2 X5 i9 v$ O8 Y                        rgManager.tryToStartTransOrder;9 ~$ ]/ \) c$ {% M5 V+ s
                        if @.Destination = void
% p5 T" l+ b8 L9 X: b, Q                        then -- no transport order for vehicle @  l& p6 r8 i/ [
                                @.Destination :=
6 {+ U% A; o' h                                rgManager.nearestFreeStation(@,track.~);4 c% n. \# J( \6 O2 G
                                newDirection(@);   
, s  f( j% b; ^! x                                if @.Destination /= void then+ [8 {. M+ T1 U+ X- {% u
                                        @.Destination.NumReservation :=
0 U" a0 M3 J6 Z  I                                        @.Destination.NumReservation + 1;4 `. f# n& r. o8 _3 n4 T6 N5 s3 h
                                end;7 ^7 ]* A) g6 Z8 s" H& X; t* e
                                @.CurrIcon := "drivingHome";
" v  G- h1 ^# _$ N" F$ L2 J                                @.DrivingHome := true;
2 Y/ x! a0 k) s/ S& ?                        end;" u2 E' a3 p: k
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
: z. l& C6 w( D7 Z; A                        part := @.transpOrder;0 N3 I) x8 P: s- n% M
                        part.move(@);-- load part2 O- o( X; j. [  z% j" ^* D
                        @.CurrIcon := "load";+ ]/ C! p, Z- ?/ R9 S) N% _
                        GlobalDistObj := part.globDestination;
' c6 K& f! |. _  L; g; z7 L                        assignLObj := rgmanager.rgAssignL;7 ]5 W& n: l' [% G9 y
                        row := assignLObj.getRowNo(GlobalDistObj);
0 `9 s2 ]3 `, e2 c. Q6 `                        if Row = -1 then -- since 70
' n0 O" b+ x8 n2 t9 p5 N# N  T                                if lan=1 then, i" L* F8 L! V! q- q0 z9 w
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
% A% [) o# \  F4 h  B                                                to_str("in der Andockstation: \"",?.~.name,"\""));, _8 {6 Y& q$ H
                                else
+ e1 f3 @) C9 o. n                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
& @, q% c' V/ E+ I, D                                                to_str("in docking station: \"",?.~.name,"\""));                               
" _% T1 C/ q  }" z+ z                                end;5 w, |6 b1 _" N, c+ C3 W! `
                        else
- p4 @9 n# w  c, b& }' ^                                @.Destination := assignLObj[1,row];
& F8 _2 T/ u6 t9 _' ^7 z7 W                        end;                        ( D1 T6 h% ^- r$ F
                        newDirection(@);/ Z2 j' w" Y: d3 l0 J+ p4 H4 W/ _
                        @.HasOrder := true;
! a; y0 r$ V4 d$ x, s. {9 I                end;+ ~: Z) C8 i  l' L7 W7 b
        end;. C% z! ]1 i8 d/ ~3 I4 P
end;        -- of the method* @2 {8 y; G( }/ d1 L
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 & U- x" B: W9 T) L- B

  a# X* G9 h: f! L6 P, g8 m这是AGV_putin中arrive的method。2 R: x- r6 v: Y' u' Y8 G, a
: H5 A+ e/ k. N
当到达物料速度越高时,这个报警更多,
5 p! W# [- i3 c0 {- B可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
) P: b+ z9 `2 X' s6 L0 M% z1 D: ]/ z程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
: t- p& p5 O( I* r5 ^& Z7 z6 w* z' O: V8 l' c* a. j
另外一个小建议,就是move,所有的move都可以这样5 K0 X# n" F6 b/ x! f( i& ^" W
if not move() then debug end
! N, |$ m; X8 T. |  l9 x这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。$ ~0 }3 q( O" q( d# r
plant simulation中的free libraries有AGV模板,
0 p3 R' I+ N" ]$ e. h, T2 e里面也有案例。
6 X9 ~) R# O8 X2 y9 K7 A我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
: L9 O) P+ f0 F1 b( a$ O( c7 }
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ! p# Q6 f8 I$ w$ }7 a* Y
0 r; r& B, E1 r; L- }
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
  R) Y; X; V0 L! W; w这是AGV_putin中arrive的method。
$ ~1 K* I, c- n5 E. h4 p( Y$ x7 N: C; {* X) E9 _9 H' Z
当到达物料速度越高时,这个报警更多,
/ C7 P0 L  h# w3 ~* e* S
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-12 18:46 , Processed in 0.018316 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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