设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8028|回复: 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'
' S% o$ T7 B+ j$ T0 T*/* s5 g  a0 m( C: H; D* h) p
is& y9 G6 i8 |, m2 u
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
5 i6 Q+ h$ K4 ?2 @7 m* ndo/ k( k* t  J9 @  k; |4 m1 t
        Lan := rootfolder.Internal.Tools.AOLlanguage;
# y' V% g+ \/ y% Q        if current = @.Destination -- else return$ O1 B* d; ]/ }' D4 o; m4 z
        then5 z; {; p* z% ^* H/ N) y. G) Y* }
                @.Destination := void;& W, e8 K. N! v# s" Q% Y
                if @.occupied then5 [0 e2 X9 s' `3 h
                        part := @.cont;
0 j) d: R$ j8 M; ~& E2 m                        @.transpOrder := void;7 h' p& F! K" L$ Z. |4 J  N
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
) _) _) w5 d9 |  I5 Y. p+ T. \/ U7 g                                @,root.eventcontroller.simTime);$ R3 Q/ ]1 r) `( Q
                        @.HasOrder := false;- d, A( e1 ?3 d6 R) k# [" d
                        @.DrivingHome := true;
9 k1 p8 i- x% j7 u; k. ]) g                        rgManager.tryToStartTransOrder;
5 |) |) R; c; O. v! _9 z                        if @.Destination = void
9 ?1 y5 ?# J, V4 u/ s9 H! ]                        then -- no transport order for vehicle @
( H* _" [1 r8 Q6 u7 F0 J! `                                @.Destination :=
9 p  P4 i: J' s) J                                rgManager.nearestFreeStation(@,track.~);  L  ]. `' P) H
                                newDirection(@);   
6 T# L5 I1 i0 J                                if @.Destination /= void then+ Y& y- B' W/ S* a; v
                                        @.Destination.NumReservation :=9 @. a3 a# d* m" Z1 p) U, @* C2 O
                                        @.Destination.NumReservation + 1;
! e5 G7 Z  b* o- e' B2 f! U                                end;. N2 R4 |$ ]5 w  g, s/ t; G+ T- b
                                @.CurrIcon := "drivingHome";* t/ a* z9 k, u
                                @.DrivingHome := true;; X# E3 w  K! Q' [- _3 h- w
                        end;% O7 ^  e1 Y9 f3 ^; p
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
. d6 C. P/ _8 o( T8 \; u                        part := @.transpOrder;
& l( r9 Q. _) z1 V- C, {& M! q9 B                        part.move(@);-- load part) W, w# U4 N4 b( s& d5 e& {* k6 \& c) A
                        @.CurrIcon := "load";
7 P& w5 H+ E1 l                        GlobalDistObj := part.globDestination;" E1 y0 j; n' `7 b" r; S% e5 o' X
                        assignLObj := rgmanager.rgAssignL;' O) t3 M' Q$ s( v1 y
                        row := assignLObj.getRowNo(GlobalDistObj);$ ^- w2 t& x. c; z7 Z
                        if Row = -1 then -- since 70: R5 R& N. k; u4 _' R5 d
                                if lan=1 then9 g% L. ?6 \2 V9 G: u$ Y
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
1 t: I$ E9 ^; |, ^! q# g7 ~                                                to_str("in der Andockstation: \"",?.~.name,"\""));* m9 C  b, A: T/ i+ z
                                else; [) V, w$ G! E7 T0 c" N
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
, N# C9 b& A! E( N- ^                                                to_str("in docking station: \"",?.~.name,"\""));                                + Y, E/ G& I1 Z5 C
                                end;2 w+ E8 \- o/ M
                        else6 L7 a0 D- O! n
                                @.Destination := assignLObj[1,row];
, N/ l" k3 |; z) r7 Z3 m                        end;                       
* L" b& @+ P/ b: @2 d                        newDirection(@);! V3 @8 P, K$ q7 t
                        @.HasOrder := true;( z- V+ A% A& V8 ~( J
                end;
; t# ^% r6 o% U9 g3 U& n8 y        end;9 x4 J- `; I4 N6 x: S
end;        -- of the method
3 c/ j' S/ C3 K* ^2 D( v
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 # g. w& J) n0 f! S
6 b2 E4 w5 f2 R6 ]% k
这是AGV_putin中arrive的method。
6 |1 A& h4 p8 m; j( n
9 o: \. H& T6 s* Z) r当到达物料速度越高时,这个报警更多,
) K6 D0 U! x& z$ s+ d( d1 S7 F可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。, }. ~% }* L: d) R/ s6 }. T
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?! q, \. w9 |! u

% ~7 e* M% g& \- f! m$ B5 z另外一个小建议,就是move,所有的move都可以这样( _: L$ Q' j& G8 c1 M
if not move() then debug end# P- W& ^/ Q+ R1 T8 v4 T
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。$ n7 j0 B# k6 I( V
plant simulation中的free libraries有AGV模板,
0 r7 w# c  x# |1 j8 G- `4 U, V& D里面也有案例。
1 y! ~+ Z' ]9 _& R9 M4 [3 P我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。7 k/ }* _' C3 n3 x* t* J

0 E, Q/ e+ E) B5 k9 q+ j( L9 a我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 1 v8 D2 e4 q! @0 W
2 r: ^% k3 V  G: k9 `% a
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ; o( a+ D" A; |+ H: ~$ D) D
这是AGV_putin中arrive的method。2 C: @# v' \6 B; A
" _, c3 j, Z5 T
当到达物料速度越高时,这个报警更多,

+ o. H1 \2 K6 t2 Z3 Z8 s3 _$ _另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-11 14:04 , Processed in 0.333063 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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