设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6472|回复: 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'
+ [1 [* i! g* [*/
8 X- V+ j) x) w: Eis
% H& K6 X$ t) u5 U% B) V4 I) s        part, GlobalDistObj, assignLObj:object;row,Lan:integer;9 p  N7 I  t  b) G# C  ]. I$ M
do6 a! i% I1 S( ]4 `- o
        Lan := rootfolder.Internal.Tools.AOLlanguage;' t0 ~; g4 Q+ {2 W
        if current = @.Destination -- else return
; ?2 ^- C; N( e- [% w" ]        then. ^3 P% D/ J$ H
                @.Destination := void;; }0 [7 C/ ^  j: P" c. _
                if @.occupied then( X( }& ~6 E$ H
                        part := @.cont;
2 R; k- Z% Q5 L* g* U! s1 ~                        @.transpOrder := void;
. |- I4 p4 ]0 m" }  S$ |                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
, q6 O# c* F1 v- ]  j                                @,root.eventcontroller.simTime);4 D; }3 `4 e! A9 R! K2 C, \( S% s
                        @.HasOrder := false;# w% x7 z% {5 R9 O. S
                        @.DrivingHome := true;- r+ e$ C$ U6 c+ L% W' E# \
                        rgManager.tryToStartTransOrder;
. o/ \2 P  y$ w& E# F                        if @.Destination = void
" X5 L! z( L& m5 F5 n" o                        then -- no transport order for vehicle @
! W4 E# \9 `7 A  ^, s% z                                @.Destination :=7 ?. c) d2 X4 ^" r
                                rgManager.nearestFreeStation(@,track.~);
8 H3 d) i! }  x8 y1 _                                newDirection(@);   
2 _) D- v) M( ^+ N                                if @.Destination /= void then
" v" [8 F' f' R, a                                        @.Destination.NumReservation :=
8 u) t+ C, r; e4 P) Q) y                                        @.Destination.NumReservation + 1;# y1 e1 i1 a  Y( }! M3 ~* z3 ]" n. A: C
                                end;& Z- F4 G. A+ X2 D' |- E5 e
                                @.CurrIcon := "drivingHome";/ x( W5 l# l2 j
                                @.DrivingHome := true;
1 ~+ O0 |* r2 Y7 P3 f8 X                        end;. E# V" {2 w  H
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
- g# B4 ^& w! n0 e9 o                        part := @.transpOrder;' @5 q9 O7 j8 u: v  j6 J# Y
                        part.move(@);-- load part
( Q7 ?- e8 p% j+ L" O8 O8 r5 q                        @.CurrIcon := "load";2 s- O" z5 c$ ~% k; [7 o! v
                        GlobalDistObj := part.globDestination;
+ _8 J& f8 e4 {) f0 X- j                        assignLObj := rgmanager.rgAssignL;% [  g0 t0 Q0 R0 B7 o+ O
                        row := assignLObj.getRowNo(GlobalDistObj);
4 F2 E) n$ F7 [" Y                        if Row = -1 then -- since 70" }( N+ N0 F- u. Q# Q- e
                                if lan=1 then/ F/ e8 H& e; a6 U1 \4 D6 d! x6 X
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
- F, m# J* t9 z9 {. n( _                                                to_str("in der Andockstation: \"",?.~.name,"\""));
7 |( w5 Q+ g6 H- c. P. v" E                                else
/ G+ K7 a0 e8 U! ~( d' M6 e                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\"")," F/ S9 @; ^! @
                                                to_str("in docking station: \"",?.~.name,"\""));                               
) E2 ?/ C, X0 K$ C( N) j5 r                                end;- g: t$ G  b: m/ E1 p$ f
                        else
( s# V( [% P0 A+ W                                @.Destination := assignLObj[1,row];2 r5 Z' a& f0 L4 `3 M
                        end;                        % k( @* ~9 @3 w4 B! y: h, p
                        newDirection(@);
2 u. x( n3 ~- [% E/ h                        @.HasOrder := true;
" ^" z" U) o( l+ e6 S                end;
  Q: ?) z# L9 x, Z& c% K        end;7 P8 h0 b& ]# }. ^4 g
end;        -- of the method
2 F  H1 ?) [3 m6 s) d0 z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
; R  A9 }" F1 m$ t  s+ l
/ I& P/ {, B2 u3 @3 C& e这是AGV_putin中arrive的method。0 `0 s; y5 [; u
; o1 N# s9 z& z9 m  X& x. Q( s
当到达物料速度越高时,这个报警更多,
& e% v! B; @8 `" v可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
2 H/ z( O& ^, n. x: D2 x6 A程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?0 B. J/ |) h, T; z  f% U
) O  e; n- R0 I6 F7 E5 r
另外一个小建议,就是move,所有的move都可以这样: o; i2 J& r& D# B6 U
if not move() then debug end' H3 g% x0 V* n/ a3 Y/ {7 W
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
6 c( j. z9 V  k' f" Cplant simulation中的free libraries有AGV模板,
& J: }- i" q- [+ u1 Q) P里面也有案例。
4 b% X; N! Q: h( d! y8 }我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。: m8 ]+ f7 {+ q2 g$ }8 }& m( {
) p% M7 N) Y* \7 N$ Q
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 5 k6 v, v+ C5 a* o* L# l
$ k. @8 @/ I- M% k: m. @4 A) v( h
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
: H0 I1 E5 L9 Z2 Z$ m( d( m这是AGV_putin中arrive的method。; P4 |) ~$ c' m3 V7 N7 F
; C/ D, P- `7 z, E0 C. r
当到达物料速度越高时,这个报警更多,

' ^2 K6 r  x& V# N. E1 ?另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-8 17:55 , Processed in 0.017507 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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