设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5871|回复: 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 d; \, k$ T. j
*/" `) O% }" y) C, R+ i
is5 V9 e8 H* f7 k1 ?, E4 F
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
/ c' E* `, r7 y8 w  g+ sdo9 F% ~/ s( W4 c  n
        Lan := rootfolder.Internal.Tools.AOLlanguage;% A: H# ~* O4 F5 X( f3 j" Z
        if current = @.Destination -- else return
& E" a3 `% J3 s2 ^( p; `0 i3 ^        then
* w& h. A' [4 |: N2 `                @.Destination := void;
2 X1 p4 y/ L5 q: L                if @.occupied then, [- r& k4 s8 ]/ S; ?! {& q
                        part := @.cont;
+ K& `- D: I7 x7 v                        @.transpOrder := void;; }: D/ H: c% f
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
0 o  f2 J7 k0 o# N                                @,root.eventcontroller.simTime);/ J0 l' r1 A) r  }; p
                        @.HasOrder := false;& ?. ]5 u1 A1 [) g
                        @.DrivingHome := true;
6 X3 P+ Z: c" K7 o" z/ P                        rgManager.tryToStartTransOrder;
6 I, L  I; Z4 f2 n) G* L                        if @.Destination = void4 E6 N* C# m7 p8 d$ x
                        then -- no transport order for vehicle @
" X6 T' y6 A: {0 @6 e/ j& c( ~                                @.Destination :=9 f6 g! g5 E3 f7 j
                                rgManager.nearestFreeStation(@,track.~);
! f" ~/ A, u. E+ l                                newDirection(@);   
) H- H$ z6 C0 o' s, E* I                                if @.Destination /= void then
2 P( Z* k6 Q$ a; n: n                                        @.Destination.NumReservation :=2 g7 |4 v( O8 H2 \% P+ n
                                        @.Destination.NumReservation + 1;" j2 ]0 F" v0 J$ m; W
                                end;0 _) l& M" ?) f
                                @.CurrIcon := "drivingHome";+ l, [1 o1 ?0 M" ?
                                @.DrivingHome := true;
6 E& G* o# {- p$ h) G                        end;
- r+ A3 R- `# a$ O8 A) x. t% A                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
9 R3 T  m9 g, S                        part := @.transpOrder;2 ^+ H7 s, k5 C/ ^+ Y2 O& ?( Q
                        part.move(@);-- load part8 d. Q& k' R9 W
                        @.CurrIcon := "load";
- ^) W% o! N9 h( s5 C' Y, m                        GlobalDistObj := part.globDestination;: a1 \5 M5 l: Q3 i% L0 A  @
                        assignLObj := rgmanager.rgAssignL;
8 @/ a, U* C! q7 D/ A                        row := assignLObj.getRowNo(GlobalDistObj);
. J4 r, P; P1 z3 L( p, _. S                        if Row = -1 then -- since 70
- y# H1 u: G$ ], {+ s# l                                if lan=1 then
6 R5 R9 C0 s: @7 D! [1 m                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
$ E  W7 H# u6 x; r                                                to_str("in der Andockstation: \"",?.~.name,"\""));
6 s( W  I% Z' v' T                                else
+ y8 E* h! Q/ ^; j6 ~* q0 w3 y9 h8 L/ `                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),' S& J' E, U  j& }
                                                to_str("in docking station: \"",?.~.name,"\""));                                ' @- u9 D1 q( m; m$ s$ @
                                end;
( V4 h  ?( |7 \  `: [                        else" D  t) H+ ]2 F* ^+ y
                                @.Destination := assignLObj[1,row];" e8 A" H1 Y+ Z
                        end;                        3 x' v" x2 O$ D% r+ `/ s0 o
                        newDirection(@);
/ D( R7 E% c7 o4 j                        @.HasOrder := true;" L- n0 q% F5 [0 o
                end;
, U, m; ]( n0 b% L$ S/ n& Y) Y( {' K& N        end;# X) g- ?  q7 W- \
end;        -- of the method% [5 E$ S" p# o5 ]3 K6 ?8 f4 k
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
) C  H- G7 N+ r8 b+ Y7 ~5 i! h5 N6 E- J$ w( I: e
这是AGV_putin中arrive的method。, t- y: a1 |# i# l$ W7 w2 c
6 B9 x* [# u' \" `$ Y* _
当到达物料速度越高时,这个报警更多,
; s+ D$ d0 K0 T& E2 r8 P可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
) ?' ~) V& e- V( {0 J9 ^2 ^程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
$ j2 l0 u1 a! M
" s: h! M% W$ p$ V& t4 a6 A4 ]另外一个小建议,就是move,所有的move都可以这样! q1 u, A% P# Y- F9 _* C' `
if not move() then debug end! |3 C! Y- }4 f" T4 y+ X
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
2 l$ a8 e5 x9 a8 s+ C/ L0 Q! Rplant simulation中的free libraries有AGV模板,
; K/ E1 K' z) a1 s里面也有案例。
( H8 @8 ?# G2 n我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。  g- V* [3 f+ W7 I7 j8 c
, ?( F2 ~3 b$ v# y0 p
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
7 J: `5 l* U3 [" `, Q6 g4 c# P3 V( z" r
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08   o. Y- ~4 ?: A, Q& J" V7 U: \! V
这是AGV_putin中arrive的method。) u9 L7 i. w7 Q" b' d3 g! U

. u9 e: G. I- `* J9 J当到达物料速度越高时,这个报警更多,
, a$ V0 O  y2 w
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-28 00:42 , Processed in 0.019920 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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