设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6690|回复: 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'
7 Q  ^% ?" ~2 f' f1 z*/$ F& t  u9 Y% p/ z$ e, {% a
is
8 r3 C' Y, Z" e7 [4 K# \        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
/ r- O& t! ?8 _7 u' e6 `. \/ G: ydo
- E7 B3 f- `. T% k3 t! h        Lan := rootfolder.Internal.Tools.AOLlanguage;
( |0 S# t5 d2 X" f' d5 k% Y        if current = @.Destination -- else return
2 s/ [1 p1 |' f9 M8 `% |        then
! W* W1 N& w3 C% S" N                @.Destination := void;
5 h# Y. l6 ]- l6 a                if @.occupied then
/ W* J0 k* I1 w( _& ^                        part := @.cont;$ `% A' B* c4 ?; ?
                        @.transpOrder := void;2 B# b5 B( S3 {- }9 N6 G6 e
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,# c) o  P) l2 g0 u
                                @,root.eventcontroller.simTime);
2 R. ~$ p- ^/ I* r5 u" _& A                        @.HasOrder := false;
/ c2 X8 Q. Y  m: G" j0 Y) ?7 F0 O                        @.DrivingHome := true;
* z: {0 j0 d5 N( D, @4 F' g                        rgManager.tryToStartTransOrder;
4 e1 G# Y! U( J1 f. w                        if @.Destination = void# {3 J3 m) |, I' G; H
                        then -- no transport order for vehicle @- ^9 b( v& c" g8 [( x& }  q
                                @.Destination :=
3 V/ h9 v; k$ u/ y7 [                                rgManager.nearestFreeStation(@,track.~);' v4 Q( r6 I4 v  g0 H& h, z
                                newDirection(@);   ( F7 Z% [9 K2 C$ \
                                if @.Destination /= void then, N1 T& X( d/ y: }
                                        @.Destination.NumReservation :=; d" @  g% h7 @3 A3 j
                                        @.Destination.NumReservation + 1;
9 [9 l/ M3 v2 a8 g" J* k                                end;
7 z* b( G& F$ E1 Z1 |1 p2 X8 p                                @.CurrIcon := "drivingHome";/ K" @$ I: X& P9 L4 W- q, E
                                @.DrivingHome := true;7 d8 p! f- ~! t8 v/ a* t
                        end;8 O: W6 N2 z# U- X3 {6 s9 j
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station7 h" K' `& {  ?. e5 b4 m) }4 W
                        part := @.transpOrder;
/ E" J0 w6 K* j( P" z/ |                        part.move(@);-- load part$ C* w' K7 x9 s& w, C
                        @.CurrIcon := "load";% ~$ c6 N0 R! N/ a4 l1 M' d; ~: m
                        GlobalDistObj := part.globDestination;- M  b* ^0 i2 W8 m. m  s' v
                        assignLObj := rgmanager.rgAssignL;
- S* E1 @" o0 T' r* X# R, Q4 C                        row := assignLObj.getRowNo(GlobalDistObj);
, {# q3 a+ N* h# q  ^, s                        if Row = -1 then -- since 70
/ V4 X  m0 `) ?: ?( [3 f, b5 a1 d* F! ?                                if lan=1 then4 Y, q( G1 \4 v' O
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),( O( j+ k2 Y  R/ Z' U' ~; n3 j
                                                to_str("in der Andockstation: \"",?.~.name,"\""));5 y' y; H9 V. D' d
                                else
) w8 Z/ ]# l& }4 X$ n- n1 p' G                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
1 y5 W, K* F1 b1 Q3 U+ u5 p) |% E9 |                                                to_str("in docking station: \"",?.~.name,"\""));                                + C+ A3 q4 o) n# b. ^+ y# ^4 _
                                end;
* E" h; B8 s: `+ N# H' z. g                        else
/ q) G9 f  Q; x* z  Y                                @.Destination := assignLObj[1,row];
  }+ ~# v2 T. i- S2 ?3 k                        end;                       
1 M( y( c2 Y& h! G6 d! n                        newDirection(@);9 e. w) t) \8 i6 h. v3 X
                        @.HasOrder := true;
+ u& _4 `. b8 {2 y6 N+ k. O                end;+ ?7 {; \' k# i; G8 m. i/ V
        end;1 K) I3 M4 _5 I1 N$ Y$ _
end;        -- of the method
) f; c/ L; K6 ]& k
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 9 C: `( t1 ?5 K( E8 P. }

8 G" U" c% V: J# W: ?8 K这是AGV_putin中arrive的method。0 [. @; A- v8 p: Z) A3 r
! l+ L* y+ }  u
当到达物料速度越高时,这个报警更多,
  `  X) p; q& l6 i可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
2 v7 }, X6 z; n程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?( r0 Q7 Y5 ?5 U) ~: b+ T* G
$ Q+ G& }5 [" V- ?1 I9 w
另外一个小建议,就是move,所有的move都可以这样
; a. v/ ^2 Y5 Pif not move() then debug end
3 v- R2 w1 ], \+ |3 I这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。, h4 O1 j. @; Y+ g8 A& x
plant simulation中的free libraries有AGV模板,4 h4 R# x7 n$ j0 {$ o. \
里面也有案例。8 D- Q" y6 X( d* o6 I" g
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。; R+ q- Z; i( W1 z9 y. L. q% L

8 u5 E: i' ~4 Q我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 / b. {. t) O; n  o" F
0 g1 G$ N9 @$ W% Y/ l1 \
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ' Q  j5 W  N) `, w8 H; t7 C
这是AGV_putin中arrive的method。6 u1 P. m$ R' o5 c
# {% Q4 i) G0 X1 \& f
当到达物料速度越高时,这个报警更多,

$ M& P( I3 u5 r( L" v5 w6 K% x1 P另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-21 07:26 , Processed in 0.023608 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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