设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6989|回复: 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'' _9 ?" h" c; _2 q. r) H" j
*/- [6 L# _2 V- a. _" X1 n2 J
is( t( ]7 ^& b. }8 d. @8 ]; a
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;  X; ?) R9 }- H* s8 o# d9 H3 }5 r
do
/ @, ^- J& `! I( H3 y        Lan := rootfolder.Internal.Tools.AOLlanguage;
3 g5 z) {0 g& y1 b1 O        if current = @.Destination -- else return
4 ]4 |& O9 }4 ^7 C        then
1 T0 }$ z/ T' `+ s$ ?( |- M                @.Destination := void;4 V4 O4 C/ ?: o' K; P5 H7 ^
                if @.occupied then7 P0 r; g5 s+ D  t- T
                        part := @.cont;, ]; `# a8 P: H' _
                        @.transpOrder := void;4 k3 i( ^, {- f! H
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
: d! b1 W2 T" z& V  ?0 B                                @,root.eventcontroller.simTime);
( z, Q- O' ]* n3 y6 O                        @.HasOrder := false;3 ~( P$ |4 B7 r+ l1 \1 K; b
                        @.DrivingHome := true;+ `4 Y4 D; n6 ^) T8 {; f9 i* Y
                        rgManager.tryToStartTransOrder;
9 K; S7 m5 |1 O$ Z" S: c% D                        if @.Destination = void
+ ^/ o% Y6 V3 [0 v                        then -- no transport order for vehicle @
1 q- u5 ]; L) m& ^                                @.Destination :=
. p) E# G: ^: _0 x% g$ H                                rgManager.nearestFreeStation(@,track.~);
* ~" \. G' M( ]' i$ r                                newDirection(@);   , s* |" X5 ^" v; L$ J/ D& W( L( D
                                if @.Destination /= void then
  t+ |! T& S, X) F                                        @.Destination.NumReservation :=9 r' t6 _% T  e  g9 w8 E
                                        @.Destination.NumReservation + 1;* f- ]6 ~+ s+ v  x( \1 q1 Y& ]
                                end;
. D6 g4 t  h/ z$ h& _3 w0 x0 G% i                                @.CurrIcon := "drivingHome";
! {+ S8 `2 X% n) _7 c6 T                                @.DrivingHome := true;' n8 p# w) b$ C- J  f' X% S4 l
                        end;
0 I0 @4 D* O$ [# P! d                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
7 N2 C: F" u4 ?) [- M1 E& k6 e                        part := @.transpOrder;
0 L/ H& k, w3 {) C7 b9 Y6 B- r- f                        part.move(@);-- load part2 B/ |5 v, r# h' t. C- F
                        @.CurrIcon := "load";
7 }+ g: ^; k" I. M" s7 k                        GlobalDistObj := part.globDestination;) _! N" O0 @9 g8 f. h, Q
                        assignLObj := rgmanager.rgAssignL;  q4 a3 [4 D. C% i- d
                        row := assignLObj.getRowNo(GlobalDistObj);
- ?9 Y/ c$ {! ]) X1 [% [                        if Row = -1 then -- since 70
, P( d0 G* Z6 v4 k, L6 O1 K9 ]                                if lan=1 then
1 b7 ~; f2 x% I                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
/ g, K0 e4 V5 ~; i& [                                                to_str("in der Andockstation: \"",?.~.name,"\""));* K8 k" z( w; _
                                else
# W' ?: u9 U! }                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),0 U5 ^- j$ x1 z3 w1 c4 ?+ k
                                                to_str("in docking station: \"",?.~.name,"\""));                                8 s8 M" F3 w3 y- N$ w  V3 y
                                end;- d$ `. _+ e6 d6 V2 `3 v2 J
                        else
) [( b. j" v0 n' g                                @.Destination := assignLObj[1,row];
+ W. D' {5 I" H/ N, b                        end;                        1 f  R- W; w3 s  q, [  E0 Q7 ^
                        newDirection(@);
! ^; L: i$ m; N/ }                        @.HasOrder := true;
, f4 b, [0 K5 y" O                end;  {9 v8 |8 E1 c$ Z: x! i5 b. x" C! A$ l
        end;! X/ D$ q8 r" ?
end;        -- of the method3 T! ~# q8 S% n# t" ~0 b7 P
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
( z" A' ]& q3 d8 _, _) m. C% o& r& d! B4 D! P+ {% L: A
这是AGV_putin中arrive的method。
8 D1 e) D9 ?% C# z8 t; r' h. i. ~7 W! ~
当到达物料速度越高时,这个报警更多,
' y0 G  A/ U8 I$ g1 s4 T# B* A  C8 a6 P可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
5 l& A  B' w" O6 c程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?3 z1 V& {; v2 `, O

8 x  d5 i' u3 z$ R' x另外一个小建议,就是move,所有的move都可以这样
! s6 ]' U2 q' t6 X1 j* l6 }if not move() then debug end" j; O+ J% e/ Q) V1 p! L
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。' b; w+ c- F9 g2 H0 g
plant simulation中的free libraries有AGV模板,
8 l% K' {/ i% v  T. U: O, Z# Z+ [里面也有案例。
& f" M3 v& C2 m我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
( u0 U" ~1 T* H3 v' U% f- }8 f6 O' c9 a0 I8 W9 k' t+ K2 @; g
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑   j7 c1 h' i* ^

9 g" v1 Z/ @1 Z& i' f那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 7 d- F& H1 {7 c6 K0 t
这是AGV_putin中arrive的method。
/ s! l5 i" M* k& ^4 X: H" v" R8 K3 K7 b/ u4 ~2 u
当到达物料速度越高时,这个报警更多,
1 v3 ]% k/ _2 u& c0 u
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-9 23:41 , Processed in 0.020236 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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