设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7930|回复: 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'
+ g2 t6 T& q; D4 \/ ~! y2 ^/ w*/3 x( m0 @. f+ R( a
is
5 E/ P$ s& e+ s; J3 }$ h& ?/ P2 B2 _        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
+ _# ~6 Y& p+ ]8 G1 P/ \do
) h5 p% k& Z) O8 ?* q6 |        Lan := rootfolder.Internal.Tools.AOLlanguage;
" C) o  {/ Q5 e5 Y/ g4 L        if current = @.Destination -- else return
1 A( y# ?5 p2 ~        then
$ K7 S2 J5 p6 t0 Y: D3 ?                @.Destination := void;
. o2 d' g6 ^1 G  G& b. t                if @.occupied then
5 s$ d0 C4 v8 {8 p0 o3 w. K+ M                        part := @.cont;
) ^/ f7 x; I( `6 W' K5 X* x                        @.transpOrder := void;
* O9 d% f, |9 P: }3 ?  K                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
8 }3 S! Z3 l5 k  Z; H( n, L                                @,root.eventcontroller.simTime);
' |4 z1 m2 a5 s' S" a; T                        @.HasOrder := false;
0 }1 p; p+ Y: b# ~( f. j$ l" p. t                        @.DrivingHome := true;
2 Z5 J7 B# z! R8 a+ M: {' b                        rgManager.tryToStartTransOrder;& g8 ^: e' |! |- z& w
                        if @.Destination = void" L  Q/ L* d# F/ {* q: u* @8 p. |
                        then -- no transport order for vehicle @9 B! [! V3 A3 E/ `
                                @.Destination :=1 ?  Q* A+ ~1 z" W
                                rgManager.nearestFreeStation(@,track.~);3 [4 u3 j; B% X7 T; k, {2 K) `
                                newDirection(@);   
$ w, o3 N& S7 E. W( z7 C                                if @.Destination /= void then# ^5 {* P: W+ e, C
                                        @.Destination.NumReservation :=& V$ p' C: ~" `* Z* Z
                                        @.Destination.NumReservation + 1;
6 c' g# U) Q; N. X+ W7 S& \" ^, c                                end;
- o: t- T' c6 t/ K                                @.CurrIcon := "drivingHome";
1 c* j* H' r) U9 k4 [8 N                                @.DrivingHome := true;# C4 a$ M- k' @& u  o( l; T
                        end;: q4 x8 ~5 @" w
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station2 D2 b2 U" c+ K( n& i& `
                        part := @.transpOrder;
4 Y- I. r! e! n* i9 k- ]                        part.move(@);-- load part$ E" ?8 W* f! R* p' L. k' G
                        @.CurrIcon := "load";
" c$ p) j8 ~2 F0 _                        GlobalDistObj := part.globDestination;- n/ H1 t4 X( }; e5 t* I
                        assignLObj := rgmanager.rgAssignL;0 n! l: f4 W7 c; H' r# F4 b
                        row := assignLObj.getRowNo(GlobalDistObj);; f- `" r- c: c; o
                        if Row = -1 then -- since 70
+ E1 z  H8 W$ [                                if lan=1 then/ o5 W1 |) m2 u9 |. j0 C8 l  Z
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),) |' [1 Z6 [* X* j+ P* Y: ^: t# |
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
" V0 F8 }" x" O4 H                                else* c6 j! b% i" Y4 z0 g
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
2 d  ~8 a4 k2 M                                                to_str("in docking station: \"",?.~.name,"\""));                               
9 T5 @) v$ K( o) I( y                                end;- q) n% w2 |1 [8 e0 f7 f6 E
                        else
: T$ V  a. n0 P, [                                @.Destination := assignLObj[1,row];9 c( q; Q- O2 d+ ~2 M
                        end;                        / M- u' p- e' ]4 j" x$ d) L% w
                        newDirection(@);; M8 ^% S/ s: X# \- ?6 a
                        @.HasOrder := true;
/ {! ^) R! O0 q: ~4 h  k9 _                end;
0 F9 t" \% P  z2 l; ]$ A9 _        end;* D4 `0 |, [* T8 M1 E- `$ m
end;        -- of the method# d% ~! v7 Y8 a
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
! Z5 L5 S2 T: Z6 m- f& Q
$ C0 C  |7 u, C: Y4 ^; Q" `这是AGV_putin中arrive的method。$ |8 J# r3 S) A9 ~- m" q8 W
( Q& R6 K0 v3 [  a! Z+ A
当到达物料速度越高时,这个报警更多,( E9 Q9 H9 c" m; U. \3 C
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。  X2 f! F& t2 J7 [0 z0 w' y
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?4 j2 b) e) M! D$ }/ V, B( A- {% t

5 w# }* E+ o! Z' u9 T+ i+ h另外一个小建议,就是move,所有的move都可以这样
7 g/ T. Y; G# N9 ?2 V9 w; \if not move() then debug end
$ I5 E2 B2 E& j8 S1 s+ S这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。4 K* {$ m# f: D
plant simulation中的free libraries有AGV模板,) s! z% W! E- O2 L6 b
里面也有案例。
9 n1 Z% {2 Z/ T5 i& T* V; m我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
7 G; I* n1 ?& A3 _( ]9 N0 H
- ?* G' u0 m$ d; s: E4 {+ O% G我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
( f+ Z! d5 j0 C% \5 Y
* ]$ u/ J- ^( Y1 [! g. v9 ~那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
* m' R8 d, T: g6 l这是AGV_putin中arrive的method。1 R0 q/ h' |) a0 C% \2 i

! G' `/ K: T2 D( S当到达物料速度越高时,这个报警更多,
$ v" C! i+ @: i8 L3 j: a* o
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-6 03:36 , Processed in 0.018087 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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