设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9594|回复: 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'4 R/ h' x" ?0 O! q$ K
*/4 e2 R  c8 h" ~6 Y, r" d0 O
is
9 T. l6 r) W8 H- A        part, GlobalDistObj, assignLObj:object;row,Lan:integer;) a- E$ N6 Z+ l& x( A
do
2 ~/ T! R( F/ @        Lan := rootfolder.Internal.Tools.AOLlanguage;
& |  C+ D* }- o6 |        if current = @.Destination -- else return
' O/ S+ N- f9 I/ {; T        then% F+ \, ~0 F2 m5 E! {
                @.Destination := void;. G$ G. _7 t9 U6 M. w1 a
                if @.occupied then
4 S' V7 W& R0 i2 |; f, X$ M                        part := @.cont;% S" h5 D- K* m( ~: ^
                        @.transpOrder := void;
' t' ]  S5 ^' a7 o0 Z4 T( J                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
: x/ \; g0 |3 M, N  ?. g+ C( T                                @,root.eventcontroller.simTime);5 Z3 H; K* U1 f' y/ G( k( R6 o
                        @.HasOrder := false;
+ r4 s) w6 F) ^8 P" ?                        @.DrivingHome := true;" t4 W$ r" n7 N" o% @9 @$ k; w8 b
                        rgManager.tryToStartTransOrder;
. l1 p. V- c3 g' V- j! W                        if @.Destination = void
4 F0 ?% K$ n& Y* F7 O% g8 g6 w: z                        then -- no transport order for vehicle @
2 U$ g1 Z/ a- }- _: O0 x                                @.Destination :=3 N0 B$ L4 I) Z; X* j1 v/ G" G
                                rgManager.nearestFreeStation(@,track.~);: p$ N( T7 L% p' }% T* |
                                newDirection(@);   
7 H* X6 {- Q3 J# d7 H                                if @.Destination /= void then) V& @+ ^: x& x. @( l5 K
                                        @.Destination.NumReservation :=4 Y5 H4 }) d4 b- t7 X- {# ~
                                        @.Destination.NumReservation + 1;
4 I9 Y3 ^7 F# j6 j& p. n( X( ?; u                                end;! O$ \$ C( S0 o! W7 T
                                @.CurrIcon := "drivingHome";; E/ N% H% o* E( M$ V
                                @.DrivingHome := true;" ~5 G' ]8 P1 L1 V) b
                        end;
7 \, K8 ^/ L# g7 K# a  Y                else -- the vehicle @ is empty, both vehicle and part are in the same dock station% c3 K" M  K: v2 t
                        part := @.transpOrder;5 Y& X0 ~- V* w& I% K6 r7 {
                        part.move(@);-- load part
5 h) @. m) [! C4 ^/ ~: \) `                        @.CurrIcon := "load";
7 S  }& Z" P5 p5 f; [/ `, w0 h                        GlobalDistObj := part.globDestination;
3 ?7 X- D- Y$ ]8 k$ Q3 @- w/ ~* H5 ?                        assignLObj := rgmanager.rgAssignL;7 i/ t5 s+ O: \7 d; q+ o
                        row := assignLObj.getRowNo(GlobalDistObj);
) t# I8 ]: a. Q                        if Row = -1 then -- since 70
2 p: F' ?& C% Q                                if lan=1 then+ B- @* `* ]& F, g
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),1 Y$ j$ ~  N) v4 h1 m9 ]/ M
                                                to_str("in der Andockstation: \"",?.~.name,"\""));1 w5 f8 N  |' Y% }$ R
                                else
% B) s4 `  i, W+ z; a1 n                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
# L) j' m7 h" I$ g( v" T- l& W                                                to_str("in docking station: \"",?.~.name,"\""));                                ! z  ]3 T' Z' T" q
                                end;
$ \4 I1 G+ p' ~7 A                        else
* X4 N; o; K) o9 w7 L7 ?/ [% h                                @.Destination := assignLObj[1,row];
7 c/ |  |- k, g7 P& b3 \& A                        end;                        " b/ I' W7 H8 w% [4 S* j# U
                        newDirection(@);$ {2 ?3 o6 t/ v5 I% R( [+ T2 O
                        @.HasOrder := true;- ?# I- M2 ?1 M# d" M
                end;& L2 @! J4 _, k& l- i
        end;3 y- P( P: C: ?2 }/ L
end;        -- of the method
* c3 a) j" P/ O+ D0 V2 y* ^
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 9 o0 Z+ G. ]: m3 x

0 L" w* w5 S; \) {这是AGV_putin中arrive的method。7 v8 b1 k2 q& @
, I) R2 V# E/ S: b1 H" p/ i9 N
当到达物料速度越高时,这个报警更多,4 R  z, }$ {2 d5 p! J6 L$ o. Z
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。% W; ~; i( l7 Q& E- Q
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?# g: g  v! r4 w# {" I3 T  q  A

! I  Z: _9 E* i1 }另外一个小建议,就是move,所有的move都可以这样
+ n- b5 ?5 q0 z/ m, O3 Uif not move() then debug end) v; X* y( `. a
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。3 F6 N" k; m" N+ e3 R4 v1 u6 ^
plant simulation中的free libraries有AGV模板,
3 ?. E+ B: R" y里面也有案例。
; g3 |: s) d0 ~. j; \我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。7 E) ]- ~5 b6 O5 n0 a9 C

, M, \# i: v! j5 R! f3 Z我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 8 x  ~4 J6 e" [" N3 B

& J3 O$ H8 X% X8 X6 W那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
: s4 s: x5 o/ X- P这是AGV_putin中arrive的method。
  {2 I) _3 ]" B. q) ^$ ^8 x& Z2 G
' u1 r& P: y; P% t  r6 Y+ ^当到达物料速度越高时,这个报警更多,
' f; O9 r2 C* j1 K7 w* T# o
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-10 17:15 , Processed in 0.019030 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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