设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6481|回复: 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'  Y! M5 q$ ]/ ^! V+ e7 _
*/0 e( o$ H8 }: M: a4 H& c) `! E
is1 A" h+ K) {% _. ~9 u  t* U$ k
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
6 P0 ]/ o: }5 ]1 g6 ^/ F+ }do
; x" N1 k) C7 M        Lan := rootfolder.Internal.Tools.AOLlanguage;6 Z  W* Y. m) A, ~, @2 m3 K
        if current = @.Destination -- else return
' W% }/ k0 U8 T0 \! H        then4 u, `* ]9 z  A! I" e  ^
                @.Destination := void;. K# E+ h2 b" o2 c
                if @.occupied then7 H' {6 O& ]) g8 v  E
                        part := @.cont;
0 f7 q. J' L$ U* v7 H+ v                        @.transpOrder := void;3 F" {6 v4 q5 M& ]  z0 u3 e
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
9 q2 L) b$ ]. ?6 _. E+ j6 W                                @,root.eventcontroller.simTime);6 z. X0 y+ G1 r- |9 ^  w' x7 y
                        @.HasOrder := false;
1 I( P) W; q; ?, m                        @.DrivingHome := true;
  J5 Y( @+ i1 L2 K                        rgManager.tryToStartTransOrder;
, H( t4 Z3 g# D9 n                        if @.Destination = void; ]- S$ N- F! m! r0 j$ P
                        then -- no transport order for vehicle @7 X( _$ n5 N& R; v9 L
                                @.Destination :=5 s3 a% B) m1 y
                                rgManager.nearestFreeStation(@,track.~);
& x0 Z6 I7 [$ J! m( |5 a) t                                newDirection(@);   $ K, D8 h0 Q5 V# C7 c
                                if @.Destination /= void then
( i) w$ J& k7 q; ]( I! v" ?$ Z                                        @.Destination.NumReservation :=1 B5 _! _! w  F) v9 s# p  e
                                        @.Destination.NumReservation + 1;$ j; j) W7 Y$ M/ n) ~7 c
                                end;
& k. Q0 N5 k( p# {2 c  u6 B                                @.CurrIcon := "drivingHome";
6 Z5 y+ W3 d4 p1 {& I7 r% p( G                                @.DrivingHome := true;- L  {7 A$ C& @4 d' e
                        end;+ I6 r5 l4 I. W& z8 [, A) O/ ~
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station- g' z1 h! O4 ^5 f: y
                        part := @.transpOrder;0 k7 d, X, Q( c2 q4 ^9 u) K* J
                        part.move(@);-- load part
8 v, Z* J( ~, o" K2 n/ v                        @.CurrIcon := "load";
. b- ?, D$ b: [. w* H: F: L% m                        GlobalDistObj := part.globDestination;2 E1 Y( E' P9 w8 z. I$ e
                        assignLObj := rgmanager.rgAssignL;$ p& f  S' R6 ]4 Y& ?; X$ K$ W
                        row := assignLObj.getRowNo(GlobalDistObj);! g2 C4 c6 o7 @& B8 P. I# Y; P
                        if Row = -1 then -- since 70
: r2 [) r3 }  J, v                                if lan=1 then6 t8 w6 q! G% \/ f
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),& V' w6 W2 d8 b" e" G  S
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
( Q. s! e0 o3 [' ?7 v                                else
- h1 {7 V# C+ T                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
9 m. [" X* C/ T0 B! t" g                                                to_str("in docking station: \"",?.~.name,"\""));                               
4 A9 n/ z0 J5 w6 k7 s& d# X                                end;
6 x1 A- p7 B8 h/ @                        else# f  G' c7 y  T
                                @.Destination := assignLObj[1,row];
0 `4 S% c- C  X5 r# l9 i; F, q( d                        end;                        # o5 t0 L! U$ n8 B9 j- O
                        newDirection(@);  i5 G- A& P6 @2 K5 H
                        @.HasOrder := true;
! D0 N5 ]6 U. I2 ?7 S; R( `                end;: Z  w* L% T/ c% y& ]. L3 i
        end;
* ]' a$ T" B9 i8 g7 Wend;        -- of the method
- T9 Y4 M% }1 p" e6 ?
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ) a5 i/ T& w0 ~, j' q
2 j8 Q# }0 h& c* e& K
这是AGV_putin中arrive的method。# D" v, e+ |' y) h' Y* ~4 o" I: X

& w3 V, w5 ?7 ]- R+ W当到达物料速度越高时,这个报警更多,8 u! r! M& x2 W0 \. k8 X
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
! G0 _3 O, P: d* H) \: U4 Q程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
# J! H' b2 n5 n( o
/ Y$ n& I8 n$ W3 b+ R1 u另外一个小建议,就是move,所有的move都可以这样
+ X; h* P& u5 x0 x! E3 p! z) K( n5 cif not move() then debug end% w' h+ F6 l5 d. a, \5 v/ ^
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
4 x, L( }) |0 y! {plant simulation中的free libraries有AGV模板,& }# V( [! M+ M' C& |
里面也有案例。* v+ J8 e7 ^) B- I
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。% C$ |9 a( ?' l/ s1 t

6 G" R- s4 k2 l2 S4 i, ?3 e) J7 X我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
1 w2 K5 _$ z& s5 `8 `6 ~" |6 m
3 U2 u- b; k# ^* k那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
- n. V. A) l5 _/ T! G这是AGV_putin中arrive的method。6 `! V$ I* x* w2 ^% q4 v: {& V

) x1 A4 Y( R7 q当到达物料速度越高时,这个报警更多,

4 U) q  \2 ]9 \# D" A另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-9 07:11 , Processed in 0.016097 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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