设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6524|回复: 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 U( E" P/ M2 J& J*/
/ x" Z6 _. o+ f1 ]is
. ?$ L1 H' f/ N# y: s; C        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
6 l8 ?# @4 g: M, S& i2 e# b" P* Odo; c: Z, i& M0 Y, ~  ?
        Lan := rootfolder.Internal.Tools.AOLlanguage;. O$ h- p) q, \8 `' L! E
        if current = @.Destination -- else return% Z. h$ z. H* O% V, i& G
        then
( }0 q+ Z4 D+ a                @.Destination := void;. f. [# N1 i: u  O, s) o& ~
                if @.occupied then
, P* e3 P5 l5 U7 {                        part := @.cont;
$ U0 t: u2 p5 ~% h; ]- _) }: h                        @.transpOrder := void;
/ {1 b% v% x9 |# O# ^. `                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
) \8 P& ?" o1 @! Q0 n                                @,root.eventcontroller.simTime);) Z5 U+ ?8 \' N
                        @.HasOrder := false;$ k  m: _5 G% D: c, _/ u' h
                        @.DrivingHome := true;
" f/ m9 M0 s- q& G# P                        rgManager.tryToStartTransOrder;
) B# m# n: T; M1 q0 A9 U                        if @.Destination = void
- k8 Z% l. R% S2 y                        then -- no transport order for vehicle @% P. f# w6 A2 c/ j1 C7 G
                                @.Destination :=6 z/ R" |. A" r0 \. Z) Y/ @6 H. G" D- O
                                rgManager.nearestFreeStation(@,track.~);
1 J7 v! w# e, ?. Q+ z4 ]" C                                newDirection(@);   
3 e6 m4 g$ c3 n; @3 E4 X                                if @.Destination /= void then2 l5 y9 }, g4 n- ?
                                        @.Destination.NumReservation :=$ B- |. J. X5 n# L
                                        @.Destination.NumReservation + 1;- u6 s2 N( H: M0 @* s' s. l
                                end;
/ b* C" f, T* N& w; L; e1 D                                @.CurrIcon := "drivingHome";
: W" `0 k3 N8 B, l, E                                @.DrivingHome := true;! z! M7 a) s9 S3 Z( D$ S
                        end;" v7 j. F9 e  m  `% v
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
4 v2 I1 T1 c: S, O2 Y( p# l                        part := @.transpOrder;$ z' p4 {  N: i# {8 c; n9 ]& e
                        part.move(@);-- load part
( d$ V9 l! I' o/ {6 k                        @.CurrIcon := "load";
% x) @3 k) |7 M: Z                        GlobalDistObj := part.globDestination;
/ ?2 P4 I, p) `                        assignLObj := rgmanager.rgAssignL;
6 U) S8 e8 Q4 [8 d" x6 r                        row := assignLObj.getRowNo(GlobalDistObj);
/ N1 R8 y2 w- Z                        if Row = -1 then -- since 70+ B8 o) h* s; B  ~( D. W
                                if lan=1 then- Q$ G5 u7 }" a, }, b& r, B0 v
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
- w5 |$ l" q3 E! u7 x) \0 U  c                                                to_str("in der Andockstation: \"",?.~.name,"\""));) l6 t9 o! q3 h5 O
                                else( S2 y3 }3 C! r* G' l9 I9 b2 s( j% z
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
9 D  [* ^+ R# x' P- [                                                to_str("in docking station: \"",?.~.name,"\""));                                4 Y& e! @/ K' h; s, c2 b/ D5 `
                                end;- Z4 o3 j1 x- e1 z! m
                        else* t+ D/ C1 T, E/ J+ X) \+ ~
                                @.Destination := assignLObj[1,row];) G5 M1 `& X+ E, i. j* A6 n& R
                        end;                       
4 F- a' g7 ^& L  t* s" `* b                        newDirection(@);
! K- s9 q- f5 @- E: L                        @.HasOrder := true;
+ m; T2 I7 G! b0 G6 I# }+ Z& }                end;% f) b1 |6 ?8 j( y  }% }% k
        end;% r( W: K: q/ `$ ~/ H# g* Y/ {7 A/ B
end;        -- of the method' |" I: |: F: @1 b0 W! I
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ! O/ Q8 c' O2 |. m1 v

9 K& ]( K* O: S' {, |$ r这是AGV_putin中arrive的method。8 z, O. A3 }! L+ I2 |0 |3 d' A

8 F' P0 J4 ]/ ?当到达物料速度越高时,这个报警更多,2 I3 E2 f4 C0 [% Y" S+ g2 r( `
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
' P, x. n! ?2 [9 v- l% L程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
! d* s7 b4 t2 J0 d9 a
$ ?! h6 m1 J! ~; `" A/ C/ @另外一个小建议,就是move,所有的move都可以这样, H6 a7 o6 Q5 y2 k; B7 l
if not move() then debug end
* W0 V/ a: [4 P* J( p6 ]9 ]3 R& M这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。) G4 L& z+ ~( K$ C* l
plant simulation中的free libraries有AGV模板,
8 p8 W2 Z% H5 L- w里面也有案例。/ \7 T7 \/ z4 X6 H1 p& T" x
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。, C1 r  v; v+ I7 F1 M" Z
+ e0 K. ?) F# X9 K$ V
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 3 i- \* i# R$ P2 \! S

. l; y* Z+ `  D9 e7 r9 D& F& [; f那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ( ~; f* w6 f! |4 C% O; L
这是AGV_putin中arrive的method。
! A3 A) I& F, w5 [8 h) B
7 D9 u3 B+ B, ~$ k当到达物料速度越高时,这个报警更多,
' @! n) h( h" T5 ~8 e2 a3 X
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-10 18:28 , Processed in 3.499907 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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