设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8427|回复: 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'' N8 n4 V2 s; W1 y/ q, a$ H
*// n" _  N* x1 B3 h8 Z8 F
is
# ^9 D$ R0 L: e, J5 V8 z+ h2 e8 ~        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
2 l9 _7 ]( U: tdo
$ ^( d) S4 r, W5 J& y- n" X% B5 N- {        Lan := rootfolder.Internal.Tools.AOLlanguage;8 H* F, {  G6 q- z0 K
        if current = @.Destination -- else return
5 P* [6 b; b! S. y        then3 d, J7 z8 L& l' A! M# ~
                @.Destination := void;( b, ^0 M2 N; R. U% _  W2 w4 X
                if @.occupied then
4 G" O/ J4 z, T+ C* C6 x. k$ k" I, P                        part := @.cont;( G4 T9 o6 k1 }7 S7 a0 j+ O( z
                        @.transpOrder := void;4 ?/ Q! ]* q1 G% G
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,  f# Y9 g! Q0 M
                                @,root.eventcontroller.simTime);
" r3 B: S1 s. z% u- ]                        @.HasOrder := false;9 l% _  L' D3 _! d; H: {
                        @.DrivingHome := true;* o3 r: b$ S+ }' R2 A; j. g
                        rgManager.tryToStartTransOrder;
' [  }5 J4 D! t                        if @.Destination = void5 t+ W- p( O* _, m, C
                        then -- no transport order for vehicle @: M% E! u& P. C! M1 t0 o1 \: Z
                                @.Destination :=# u. h% x, T3 D( c8 A& ]" v9 Q
                                rgManager.nearestFreeStation(@,track.~);
1 k+ d& R0 b' q/ X2 z, s  _9 \                                newDirection(@);   + s$ W  ~6 |4 H# M$ x
                                if @.Destination /= void then0 Z9 e/ }" P9 v( W! P
                                        @.Destination.NumReservation :=
9 `) m* P$ V7 f& S: @2 t) G4 I                                        @.Destination.NumReservation + 1;
' m, @  |1 l( }, J' I                                end;6 R7 j. z( V$ u/ e, _0 }
                                @.CurrIcon := "drivingHome";
- r6 |* ?+ h& z3 _- B# p# ^                                @.DrivingHome := true;* p6 [  z- F2 n" }, q; W
                        end;
" z& ~: a9 C% N* [                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
/ p  _+ |9 n% U0 |9 b                        part := @.transpOrder;, M6 q7 s5 `# f! v% ^9 t1 ~! g# c
                        part.move(@);-- load part
) N$ J  n0 ^# N9 K& d. s                        @.CurrIcon := "load";! _: V& X9 n' M$ N/ q
                        GlobalDistObj := part.globDestination;
+ G' H8 p  l& Z9 V                        assignLObj := rgmanager.rgAssignL;
( h# ~  [( b" m- [& |1 H/ K                        row := assignLObj.getRowNo(GlobalDistObj);
0 {' `( X& b- N, f) r. `                        if Row = -1 then -- since 70! V( C3 z1 m  C5 A
                                if lan=1 then9 v3 L6 M) \& K; H
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
" p: K# [. b8 |3 H0 Q' j9 A                                                to_str("in der Andockstation: \"",?.~.name,"\""));
3 V4 I6 s4 L+ T" r                                else
9 h# s/ z9 }3 b! R7 e' ~. j. Q                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
$ O; w& J6 X3 `7 i8 M) s                                                to_str("in docking station: \"",?.~.name,"\""));                                9 k. V. I' B! n0 V: i) Y
                                end;1 r1 G4 V  v2 s1 O  o1 e) c1 b# ?
                        else  Q* C( ]# Y" j% \- |( p
                                @.Destination := assignLObj[1,row];# V  {$ A9 ?" m; o0 M2 k
                        end;                       
% u% i2 q( p6 k+ S! m                        newDirection(@);
0 x" R9 h7 N# L  s                        @.HasOrder := true;0 V* t( o& z5 L, S
                end;8 q) j8 i& w) V, i  c
        end;# y; J1 h( V. J, L+ T
end;        -- of the method
2 v+ t5 G2 ^: I4 J2 R
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 - G% \2 x# _) K  \$ R2 m' l% d$ ]4 B

; l5 J9 W. O1 r8 y1 X这是AGV_putin中arrive的method。
' L$ V  Q- c% @6 N$ ^0 G7 V5 {! {+ _* n' y6 `0 r
当到达物料速度越高时,这个报警更多,4 P5 Y. K) j3 {  m
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。4 x8 t* K# y# W8 j7 @
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
% w: G2 p; F0 s- A9 u. s) E
* Z/ f9 `4 @3 U1 H4 P9 l/ k; e另外一个小建议,就是move,所有的move都可以这样
0 y4 r7 k' I; Gif not move() then debug end
; `' n) r8 y: E2 {2 h0 M7 s& T这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
$ j" T$ r* `7 X% H$ D7 vplant simulation中的free libraries有AGV模板,
4 u2 N/ q% B9 |6 L5 D5 d! b2 V里面也有案例。
1 y9 r/ y  `% `  C我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
! K+ d/ C9 J* E* d; s$ d5 M( a0 D8 `: J  ?& k% b1 `; q7 [- H6 C
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
. y+ k) J  `3 r$ L
% L7 \7 m5 T9 H! j9 W7 Z! ~) B那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
5 n, F  ~7 ]9 S2 U  h+ f这是AGV_putin中arrive的method。* r5 g% c3 \" Q( h# O
1 r/ K% f$ t# S* O# O' \
当到达物料速度越高时,这个报警更多,
! ~+ w: ?- ~' _; j9 v5 i' o
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-3 05:54 , Processed in 0.015927 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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