设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9132|回复: 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 n& _  Y0 s& s, V7 @*/
5 K" W7 F9 x% a$ e, S3 c/ J4 X1 A) cis6 w/ |" f" d6 O3 G2 L% o, m
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
* x, x$ j% U. m& z' `do
' X" i$ k, P- o8 c5 g$ r4 }        Lan := rootfolder.Internal.Tools.AOLlanguage;
6 }0 h( L# ]4 U! T: }- P        if current = @.Destination -- else return: K0 C6 x$ b0 I% A* }
        then
2 D( Y# B8 Y2 i/ T                @.Destination := void;% c( a* `" x5 r( n% K
                if @.occupied then9 J  R: S% J1 P1 b/ {$ t! G+ I& a
                        part := @.cont;/ a# p+ }; d3 f
                        @.transpOrder := void;( d4 g# f3 M2 W0 K+ k. S
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
) M% y  j5 R) U0 J5 J                                @,root.eventcontroller.simTime);
3 `- \+ e! F9 p/ V- Q                        @.HasOrder := false;
6 E' E, y4 w4 ?4 t1 h$ d                        @.DrivingHome := true;( D% }. N/ o4 `" S  s# ~
                        rgManager.tryToStartTransOrder;
$ D8 T" ^2 d  O5 ~4 V/ C) S  R, U                        if @.Destination = void" |8 k, c  G0 S: b8 \' U
                        then -- no transport order for vehicle @
, H9 i9 {  u' Y) o                                @.Destination :=/ E* ?3 H( S! F9 h3 x
                                rgManager.nearestFreeStation(@,track.~);. b; w+ {3 H# }1 z" B9 r! A
                                newDirection(@);   4 I* O* y0 s4 ^- _" F
                                if @.Destination /= void then
1 {/ |) Y' }: p                                        @.Destination.NumReservation :=
8 {) u; m) H) f1 P+ G, g                                        @.Destination.NumReservation + 1;
% m/ K  B  a( Y7 C                                end;1 G/ _4 K: _$ T4 M1 [! }5 x0 L
                                @.CurrIcon := "drivingHome";
6 e/ W/ r) A3 N( G                                @.DrivingHome := true;4 [: K" ^" v/ U$ U8 U7 `; U1 N
                        end;
/ B/ m5 B7 j( f/ c0 ^8 `                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
. o/ j/ {% ?2 z' f. M" Y, f! U& i! ^, G% B                        part := @.transpOrder;
) W' s6 N7 f: p9 ?                        part.move(@);-- load part
0 ?9 u; ]4 n! [9 x: I( n# ]: ?                        @.CurrIcon := "load";
4 {5 f/ u0 [! M% I' k                        GlobalDistObj := part.globDestination;$ q) e) O% @0 d8 K  Z/ ~
                        assignLObj := rgmanager.rgAssignL;0 _2 @# Z+ ]6 u9 F+ A# q3 p
                        row := assignLObj.getRowNo(GlobalDistObj);7 f7 G3 F3 x' P, E4 W
                        if Row = -1 then -- since 70: m! o* V) M& V) q3 S9 j  h) F
                                if lan=1 then
& n6 G" e/ e' P" W+ \                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
1 W6 Z5 p: c* p- G! c% V# ^) L                                                to_str("in der Andockstation: \"",?.~.name,"\""));$ r, T3 Q* @8 _7 w7 @/ t
                                else4 k7 @, e! x. v
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
+ V& T9 x8 z) Q& P4 f                                                to_str("in docking station: \"",?.~.name,"\""));                                * j- _- s& n& Q
                                end;
* z! }* ^: [0 I8 [8 O# h6 I8 w: b                        else2 ^# ]& }# z+ E' \  }; \4 U$ \: F
                                @.Destination := assignLObj[1,row];3 I  L# ]6 |+ J/ x. X8 n) v
                        end;                       
. b& n9 `8 g0 I$ R; D# P                        newDirection(@);
/ j  u8 L2 ?8 k2 `                        @.HasOrder := true;) R, H7 S- {8 c/ E, X+ C2 o0 J
                end;6 {* x* ^: M5 H) m+ C' \
        end;$ _3 H6 e4 l  S. H
end;        -- of the method  n  p2 h. v2 G  b8 H3 P
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
$ T! n( L% A- g3 {+ n- N  n# y! s) R6 N7 d) D3 z
这是AGV_putin中arrive的method。
2 s2 X7 X% X' J: ]6 i8 {: c( ?
9 O' h6 a5 K2 J5 a! \' U当到达物料速度越高时,这个报警更多,. i* M$ T( O% x% b
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
5 B8 B$ `& J7 S程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
3 N- \( H7 ]$ P! B1 }( k" a
  D. a( x$ |8 D7 \1 B另外一个小建议,就是move,所有的move都可以这样4 _3 `8 [# S, Z' v0 y
if not move() then debug end
/ v7 D, n% f; A: W这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
# \5 m. p6 j2 G% l4 y; iplant simulation中的free libraries有AGV模板,# _" `/ P% k  Z3 X  B1 _
里面也有案例。
. q3 P7 j' m0 H' [我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。  k( V5 B, |2 O1 M7 E
. A5 {  \. g" V1 n6 d+ ^! s
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
- P6 _8 `9 v; u, |8 }3 D0 D1 `
+ M$ }6 _. y7 H那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
0 ~0 [$ X; O, k1 i8 i这是AGV_putin中arrive的method。
2 g7 @6 a4 b' g% v) \% i; D& \' l1 Q6 N
当到达物料速度越高时,这个报警更多,
2 G4 R( E( a% V- s* `
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-15 14:06 , Processed in 0.016064 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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