设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6835|回复: 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'% K# ?8 P9 Y6 U! O  Z) k
*/  }1 e1 L; \+ H  P& _2 R' T3 R, W
is
! t" `: `5 o& a9 ]7 t# A3 ?; |( d        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
3 j0 K3 t8 Q& E- r' B0 ^do
) e7 U) R( h% K. P! Q( C! A. n        Lan := rootfolder.Internal.Tools.AOLlanguage;. p2 p( B! l! Q$ S9 v4 m4 I
        if current = @.Destination -- else return
& j0 c' n* H9 Y: \3 r( |3 ?        then' K* b0 e& I! j. T5 R
                @.Destination := void;, l3 f: N, R( M! L* {
                if @.occupied then
" x: U7 k+ [0 ^: K6 Z5 ]) l5 r                        part := @.cont;6 V  S4 E$ V# s7 b1 B: G
                        @.transpOrder := void;
) `' Y$ \6 y. [+ Q9 X                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,2 g; R; D" \! a7 z( t$ T
                                @,root.eventcontroller.simTime);
% a6 P' W5 R' n/ r+ |# V! l# L                        @.HasOrder := false;$ z4 Q4 n% R( s6 r6 ^% h( c8 k
                        @.DrivingHome := true;
6 ^6 N! C0 S6 r- j                        rgManager.tryToStartTransOrder;
# _; R- ]. m/ ]$ X8 Z1 Y3 k- e                        if @.Destination = void, d, r* V5 G. \9 u6 Z: J
                        then -- no transport order for vehicle @
& ]5 l9 b: ~8 o- t$ e/ X9 W2 ^  q$ N9 M                                @.Destination :=
2 L5 E5 v' f: z( r2 J                                rgManager.nearestFreeStation(@,track.~);
" i) a) l# K" e: n! L2 a4 Z                                newDirection(@);   6 S& ~/ V$ d& p5 j0 D' |8 T8 V
                                if @.Destination /= void then  S; [* S% C4 c5 q2 B! l
                                        @.Destination.NumReservation :=
+ ^5 B3 S( |4 y# _5 n                                        @.Destination.NumReservation + 1;
2 V/ j4 j1 V: {) Q2 o                                end;2 \" z5 E4 @1 h" D
                                @.CurrIcon := "drivingHome";
/ g# p$ F2 p# o! [  h0 V& M                                @.DrivingHome := true;
7 U+ U( t  C6 v: h; |! b# j. f/ g                        end;7 b8 B3 L3 ?2 M% ]  ~; s
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station+ g$ h3 H, n7 v) `: g. E  ?% f
                        part := @.transpOrder;
# j5 H# k3 E4 s6 q* X                        part.move(@);-- load part0 v3 h1 F0 v* q1 N5 \5 j& V' p, v# u# w
                        @.CurrIcon := "load";
' N' x( G2 F/ M2 H9 ?                        GlobalDistObj := part.globDestination;( t  U5 K7 s8 R3 q! J* U6 R" d
                        assignLObj := rgmanager.rgAssignL;7 T, k4 O! X7 c9 \% w+ @
                        row := assignLObj.getRowNo(GlobalDistObj);8 c* A6 C0 L' E8 L8 X# T$ g
                        if Row = -1 then -- since 70
- \6 \3 l7 ?# ?  r" k                                if lan=1 then
/ Z. D" Y- X5 C+ `8 d" X1 y1 }                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\"")," D7 k2 Q2 m+ A+ w& t
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
' f5 Q# i' |0 X+ w/ x                                else9 T& C1 Q' Y  k' y1 I
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),4 s7 D. |4 N4 S7 A6 B. \
                                                to_str("in docking station: \"",?.~.name,"\""));                               
$ z+ z* n! ?" R. ^2 p. K                                end;
/ I% W! `, |) N$ T( T! B2 E                        else  |% p) E: w" X* C
                                @.Destination := assignLObj[1,row];
7 P! Y9 O0 z3 S8 s1 w+ e( J                        end;                        $ C7 e$ _3 T8 E
                        newDirection(@);. K: a  e' N* e8 k- I  @
                        @.HasOrder := true;
: G2 M) B- J7 P& t9 N                end;4 P8 w/ V3 {$ {2 T) R
        end;
2 l) j& q. E9 L9 Zend;        -- of the method7 x: P+ h7 f1 z/ N
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 2 t4 u1 _4 H. k4 x2 {+ J% O
  B3 e& w, H, m
这是AGV_putin中arrive的method。( R& f4 s3 D: {: ], a

3 o" E: p  Y$ L( ^3 _. l当到达物料速度越高时,这个报警更多,& `0 E' @+ _4 L# x8 F/ c+ K1 w$ x
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。, l* {9 |1 {: S% `- A
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?  D9 J7 ^$ V6 R6 m0 c+ q" w
+ l5 J. ~! F! i1 Z+ H. M# O0 B2 `' U8 g
另外一个小建议,就是move,所有的move都可以这样2 W. _3 M# i4 _7 @6 F
if not move() then debug end
) ^# j* b0 U+ _: X* B. s这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
  A: B5 @+ x; B. R9 rplant simulation中的free libraries有AGV模板,
/ W  C; `8 f" }2 L" J里面也有案例。9 F3 E' y# T! L
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
% z+ |. i& n! s  c- A- X2 Q* b; x+ u( R
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
% R1 W& s* x; T# Y
/ u2 M+ o( ]9 ~那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 % o& C: ^) \1 L3 c
这是AGV_putin中arrive的method。& E! T, K- S( E, Q
: F8 Z8 a1 k, R6 O3 B. R8 ~
当到达物料速度越高时,这个报警更多,
8 {$ @) F2 X  G, z! P7 g
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-1 14:33 , Processed in 0.022861 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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