设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4608|回复: 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'9 f: }% t8 o/ l/ r
*/
! x4 |! s' {& g, V4 v: k+ tis7 S" d' l4 @7 Y" F  q
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;) W  a1 S, Z  H# N5 k
do
# ]3 x# J6 q5 e- \3 C        Lan := rootfolder.Internal.Tools.AOLlanguage;8 [5 N6 C8 Z! K5 O* W: O
        if current = @.Destination -- else return
1 I. W, W: z: ^8 Y        then
0 A% o$ v8 w0 r0 r                @.Destination := void;( e; n. A+ T6 H
                if @.occupied then9 [! o7 `* Z* W  |' T7 R
                        part := @.cont;9 m- F( _+ K$ i- y8 k
                        @.transpOrder := void;
3 W+ S3 y1 [0 b' y( C* ?2 |7 G8 X/ V2 p                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,# n9 `8 m1 X8 O. k
                                @,root.eventcontroller.simTime);
4 k( t- g. |* v, R. u4 s2 S                        @.HasOrder := false;5 P6 V7 o2 f  @9 I, ?7 N! {& @7 n
                        @.DrivingHome := true;
% y8 }% T& J" f! P% D: L" j                        rgManager.tryToStartTransOrder;; p1 s1 u# W$ ?0 P
                        if @.Destination = void
+ F$ w0 R) g* f/ \" n! l. E/ t                        then -- no transport order for vehicle @" A, c* `; P& y" Z0 n1 K3 Q. N0 R4 j
                                @.Destination :=
& k) s9 P, b/ M4 v                                rgManager.nearestFreeStation(@,track.~);
- `3 u8 U4 r1 }( U% l! u0 p                                newDirection(@);   & o* @# {/ F: s% y- `& y
                                if @.Destination /= void then8 ?; `( U! D9 D  e. N  h" |. G0 \
                                        @.Destination.NumReservation :=
& J2 x7 o4 c: X                                        @.Destination.NumReservation + 1;- C8 r3 m: M* X
                                end;
8 ~( a. S7 T5 G$ v- e+ L$ Y% W                                @.CurrIcon := "drivingHome";
# x$ l1 S5 L: K* X7 e                                @.DrivingHome := true;, z) C# m% Q% a& ^8 w4 u
                        end;
* n) o3 U" F; r1 Y5 m( ~                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
& ]; N3 R, u2 f6 a" b" Z* `# L                        part := @.transpOrder;6 r, }9 V1 W3 f0 d1 K' N! _
                        part.move(@);-- load part9 w0 m% E6 k+ A$ k7 E( ?2 M- r! m2 K
                        @.CurrIcon := "load";
4 O3 \% D# z; T0 f1 j0 h; ?  c                        GlobalDistObj := part.globDestination;
) z9 i* z* F1 W2 L                        assignLObj := rgmanager.rgAssignL;
" g1 k6 D1 F' m4 T( y- S6 K                        row := assignLObj.getRowNo(GlobalDistObj);* p# h" k2 P+ P% t
                        if Row = -1 then -- since 70  d: s. d' x0 P. m$ S7 }. @
                                if lan=1 then7 A% {6 K7 f8 L# ]7 M& F
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
, \# G: K1 W& q5 s: O  g. O                                                to_str("in der Andockstation: \"",?.~.name,"\""));
! G& i$ S) g4 \+ i4 k* j                                else9 i4 W5 ^9 G- }3 t2 U; X3 ]) ]
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),% l+ k! _' I8 k( P- E  e
                                                to_str("in docking station: \"",?.~.name,"\""));                                % K9 O  C- D5 l4 v+ h; E
                                end;
8 C7 |0 H, y  y. ?* ]( G. `0 T5 l                        else4 p: {) @* Y2 K7 D9 ^
                                @.Destination := assignLObj[1,row];
  y5 n' c, o2 ]9 Y5 Y/ s                        end;                        $ Z" d4 H& `3 B! i9 _! [
                        newDirection(@);
. ]0 \" x8 c: B1 V4 j  D# Q                        @.HasOrder := true;0 z- N8 T$ L, ~! z3 C6 z
                end;
2 o0 P% l, W( G; h4 {        end;
3 v) S4 @7 J9 z, F9 jend;        -- of the method
: a: x1 c% ?$ w
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 0 D/ C2 ?+ l. h3 d& f$ k3 J
/ H8 g, t9 T- ?5 k1 c8 m7 p
这是AGV_putin中arrive的method。
+ \4 r4 w; E# d) g' N; r" _4 I
; i  @1 B0 u3 w; B: f4 }* d当到达物料速度越高时,这个报警更多,. g  e- Q8 K# w1 n0 W6 K
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
0 g1 @+ N9 P: M+ N/ j. L程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?* c6 f$ }0 Y3 v" ]

# C/ L! V3 L" P1 f, v8 Y另外一个小建议,就是move,所有的move都可以这样
, R" r% O# l, p0 V  t- \4 Kif not move() then debug end
- b. d: N9 r1 b4 r5 z这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
# b' @5 V; U( t* x, i* j" [plant simulation中的free libraries有AGV模板,
% V, S/ `- P. T4 P里面也有案例。* h1 B" C6 q0 ?+ d& T  A
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。* g. D) |5 _+ e5 S4 U" i

4 i% Y- P0 H9 B9 ~" c3 g* R我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
1 h* K9 `* O3 O* ?
' U- K* }/ Z& {$ j5 k) t  h那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
5 j$ E* n# e' \$ r, ~( p这是AGV_putin中arrive的method。
4 N+ W2 _6 _4 O8 v# ~0 m! _4 G
* D6 u0 F6 a' o5 Z2 ?# \$ V" E当到达物料速度越高时,这个报警更多,

( ?: T4 r$ {' v+ r! o2 u: P, Z另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-8 11:06 , Processed in 0.017956 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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