设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6198|回复: 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'6 ~8 \, g( R5 V: ~
*/
& K7 x) a8 C2 S* f* D& J  R' dis
5 E/ b) ?1 n2 @9 r        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
3 ^& n/ b& h/ A9 Sdo
9 T6 k! e' K$ [" N        Lan := rootfolder.Internal.Tools.AOLlanguage;) I3 ~6 |# g: |0 z$ j" h9 d
        if current = @.Destination -- else return
0 f, ?) i: _/ C! V7 e$ [        then
- |1 x. F) p) p  k                @.Destination := void;- Y  C' \, _. k+ p# a, H9 m
                if @.occupied then9 v: n9 U+ b) l9 t
                        part := @.cont;
# c) n" r! Q5 Q                        @.transpOrder := void;
1 ]3 h1 {+ K! K. w9 [& T* a* G( y                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
8 s6 E- p" ?1 {8 `                                @,root.eventcontroller.simTime);& O& z* e. d# d
                        @.HasOrder := false;
) C3 v0 o( T$ y% l9 \8 C+ T                        @.DrivingHome := true;- R( v$ h0 ~0 |) ]! w
                        rgManager.tryToStartTransOrder;
- D! [3 Y" p, I3 C/ x) \                        if @.Destination = void
1 ~9 J5 J2 ~, d                        then -- no transport order for vehicle @
' f8 c  @  y! T                                @.Destination :=
5 {1 G" f" M4 ^3 i' i4 f                                rgManager.nearestFreeStation(@,track.~);( \) `9 Y# i7 R  x
                                newDirection(@);   9 ?: w# y. \2 f9 ^$ n, V
                                if @.Destination /= void then
& O* }  l2 T1 c8 C# \4 h0 \# r                                        @.Destination.NumReservation :=
( }' r( Y% W7 G' R                                        @.Destination.NumReservation + 1;
4 ]+ l# t7 f+ v, J  E' ~- w                                end;" }% `# V9 W; h4 }3 ?  k5 Q& e, Y
                                @.CurrIcon := "drivingHome";
1 a. W) D/ X# L- ^7 R4 L, ~! i& u# C8 n                                @.DrivingHome := true;$ L0 f& `9 T& A$ \! h# T* Z. H- n
                        end;  N  b0 o. a/ `2 E& o4 {
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
% J. V3 f2 z& [, y5 P                        part := @.transpOrder;7 K! f2 G. R4 K$ V$ L$ T
                        part.move(@);-- load part6 h$ l7 Z+ @' b% J: z
                        @.CurrIcon := "load";% Y8 D* J. a7 f/ ]. E4 w6 W4 @8 w
                        GlobalDistObj := part.globDestination;+ h5 P& D* j( I; q
                        assignLObj := rgmanager.rgAssignL;8 V; W: |' o5 {  Z" U
                        row := assignLObj.getRowNo(GlobalDistObj);
- S4 n1 G; E. B! N                        if Row = -1 then -- since 70& ?  X* j7 M) `
                                if lan=1 then' k. X, c' _$ R" s5 G  U
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),. e/ n0 b1 w  y( n3 e" s, C
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
" K5 k% y/ R' B4 A& x8 `6 }) Y1 ], o                                else' ~5 @: Y5 ]. e+ E: X
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
3 \% D# d: E" g7 C9 @                                                to_str("in docking station: \"",?.~.name,"\""));                               
% m: x$ L3 j) p8 q* S% Q                                end;
: B! _4 |. \9 C9 V                        else; D, O  \1 j1 K. ^, X7 P. d% n
                                @.Destination := assignLObj[1,row];' U2 X8 z5 @1 T3 X& I3 Z) W$ G& t
                        end;                        ! |( c+ K$ h" G& p
                        newDirection(@);: Q6 E; e# E: n) s2 J% T
                        @.HasOrder := true;% }3 C, e/ F2 B8 Y; ?: N
                end;! [% I2 X, i- M) @
        end;6 Z9 {! f7 ~" O; Z8 v" |- ]
end;        -- of the method6 g0 `8 Y( z5 q: J% q! u+ |" [4 ?
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
  ~8 }( ?% C- ]' x2 z4 T3 O+ }7 ]' F. e- `. _7 R+ J- |4 h7 B- e
这是AGV_putin中arrive的method。3 J2 Y1 e+ u/ c2 A) p  M/ _

, ~+ Y+ V. ]6 z% B% y- m! h当到达物料速度越高时,这个报警更多,% J4 Z# J4 ]2 |* I3 H. M& `' t
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。6 _: |# v1 z1 W: f0 C1 Y0 f
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
) ^7 [# o0 K( o* U6 \% C
6 g, `5 ]( D) s另外一个小建议,就是move,所有的move都可以这样# o) p1 s) g7 s' W% `/ r
if not move() then debug end3 p  E8 ~3 Q/ r( |
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
: N' b% Q  X/ g+ wplant simulation中的free libraries有AGV模板,
& L3 g- [) s$ y$ v* S3 H里面也有案例。* U4 u3 \9 {8 |8 {
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。/ a* `& U9 [% f% d8 w7 Q1 ~3 v

  I' N4 W2 a& C) K8 Y) Z/ \我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
) h* M5 ]( e0 X) B1 e. q8 z3 d7 S  `+ x; f8 e" _
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
$ j! ^( u4 b5 I0 E! X; h这是AGV_putin中arrive的method。3 ^0 E. Z" \( z* w. o, P% _
) K! M# Z- V" m, s! O- {8 F; t
当到达物料速度越高时,这个报警更多,
5 P/ y. G7 Y& [) T# e$ `
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-24 14:10 , Processed in 0.017009 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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