设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6607|回复: 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'$ E, s  e- o: c3 ~$ o! a4 L% ?
*/
, }8 m* N/ p+ X. Z) n- N: A% p! g1 p1 o! cis! F% L6 s$ o8 a" o6 _
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
0 U7 m! }; R( J% Y# t; l( i# zdo
3 w1 {4 k: N. ^( M. D) y  c        Lan := rootfolder.Internal.Tools.AOLlanguage;5 @, z7 C/ ^8 ?& r4 z
        if current = @.Destination -- else return
8 W, b  j6 [6 H( z$ L- N' o        then( w/ d3 s- ~) l2 e* \/ r1 f: f
                @.Destination := void;7 \- _! P$ G  W# I2 n
                if @.occupied then
9 S' ^+ k9 c/ z                        part := @.cont;2 {% o0 u" }( ]
                        @.transpOrder := void;5 O5 l# v5 x) y5 D7 Y: m
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,/ W+ ]  T& T1 F' L
                                @,root.eventcontroller.simTime);6 b  [4 c, q- `1 Z
                        @.HasOrder := false;2 n/ e/ `. y; F
                        @.DrivingHome := true;
, T) u8 D% E% p# T5 j4 h/ w5 A' @                        rgManager.tryToStartTransOrder;
; D9 B) z. d# x4 l. z* a                        if @.Destination = void) J8 v/ Q/ v. L/ x' U. H3 O3 Y5 M
                        then -- no transport order for vehicle @, `0 v+ G# K3 m; W7 r5 _
                                @.Destination :=$ i: a$ q" p3 w% e$ q' B6 m7 ~/ ?  T
                                rgManager.nearestFreeStation(@,track.~);/ C" p: L$ k1 z$ d  ]( ?
                                newDirection(@);   ; v4 P# j! ?& B; O: u3 g
                                if @.Destination /= void then
% |0 a2 C! z5 |- l, `                                        @.Destination.NumReservation :=
+ j! c) |0 P- S$ n* ^4 [6 r                                        @.Destination.NumReservation + 1;
2 M0 ~$ f0 o9 H; q8 o* S) ]* D                                end;
( ~# J$ M- `8 y% _6 T                                @.CurrIcon := "drivingHome";
& h$ W' c1 V7 i& d2 T8 r$ S. I( ]                                @.DrivingHome := true;, x7 @: A* q+ z; i
                        end;
1 C# R( U+ {: l2 U# J                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
+ P! s; @4 j- U9 m0 x                        part := @.transpOrder;
! S7 `  M! x* G, Y                        part.move(@);-- load part
# N! `6 a* ?# V% n) {( x                        @.CurrIcon := "load";4 n' K+ l2 d6 x9 I' L' `
                        GlobalDistObj := part.globDestination;9 ]- y- y: h* V  A; [1 m9 g
                        assignLObj := rgmanager.rgAssignL;
- {* G0 Q$ {7 ?- S. a! z                        row := assignLObj.getRowNo(GlobalDistObj);
8 {! Q) ]3 ?3 X' E+ o" S( i, k( h                        if Row = -1 then -- since 70
, x7 l. I+ M! L+ q                                if lan=1 then( U% V/ S0 @2 h! s- p- \% t& N. `
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),7 _+ p! z/ Z: U/ `; Q( Y- D6 b
                                                to_str("in der Andockstation: \"",?.~.name,"\""));: t$ f$ _# w' t# G) T0 n
                                else) D8 s  h( m, ]2 i! x. ]. _
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
, a; X/ q! B7 x  g* R! ]% C                                                to_str("in docking station: \"",?.~.name,"\""));                               
. F7 x0 s7 Z& u& U) d5 I                                end;
* K" E# g8 F# X  x                        else
7 X! G' R2 D6 E+ u                                @.Destination := assignLObj[1,row];: k& ?& D1 R1 c) U8 g8 h" f# W
                        end;                        9 _% A; E3 X; n% z9 t
                        newDirection(@);
" I$ N& d7 t( [, c  J" V                        @.HasOrder := true;
0 v( u; l! R4 R% H( C% N                end;
8 q) B" G: D. O6 \        end;* Q$ H3 E* \9 k) K# W7 u$ {' B4 @8 |
end;        -- of the method$ g! a7 J: H1 t
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 2 y: _" w! s/ d
2 {$ G4 `/ k% g
这是AGV_putin中arrive的method。
/ U" _0 L4 F2 F5 Q6 g/ t; ], J' z
. ]. O9 j) R' F9 Y+ g1 \当到达物料速度越高时,这个报警更多,, A. q, w, [& T3 Q& f: i
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。) e* q, l2 ^, T' z. ?- Y& ?3 B
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
9 y0 G2 l/ q. u' H. S0 e. p7 O/ X- N) T* o
另外一个小建议,就是move,所有的move都可以这样
  D7 j9 ~) k" N+ j" A& L" }if not move() then debug end1 k, C4 w$ S. i/ L) e! \- U
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
  b8 l# t% a+ jplant simulation中的free libraries有AGV模板,
/ V3 y3 C6 Y8 j" V7 ~里面也有案例。, @7 T8 G, e( Q& h' M* x
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。/ p8 I/ q' W+ a4 L% U( Q
7 `3 S9 t7 l% v; I9 H2 M
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
* a1 |' O9 s( |1 T+ }1 w& F) Y; H# s; k$ y/ A
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
! B/ }% m0 ~7 E& y$ q这是AGV_putin中arrive的method。
# V) q1 a4 t5 D- k1 h5 l( q2 a8 z2 Y1 y2 ]* R8 c8 X# {
当到达物料速度越高时,这个报警更多,

1 |+ |9 _* [0 \" C( d" `' L另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-16 00:14 , Processed in 0.019620 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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