设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6675|回复: 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 R# f1 J3 k: g0 H8 w+ E*// l* j+ f, m& }: E
is( m1 ~! E* `8 e
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;5 B  V; @/ x" ^+ o4 J
do* S4 O0 `9 m/ X
        Lan := rootfolder.Internal.Tools.AOLlanguage;
  S: y" P8 R+ H. l; i        if current = @.Destination -- else return
7 h9 k  C* ^3 T  u  _$ w/ A9 _, K' Z        then
2 c; t/ S  d6 Y3 H& m7 j                @.Destination := void;
+ l: i$ B% u8 L  ?& W% K                if @.occupied then0 S3 U; W9 D5 n0 d0 B5 M
                        part := @.cont;
( N# G5 D. N; c3 u7 R$ b2 f( `4 |                        @.transpOrder := void;
( Z3 ?4 _) ~/ e7 X                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
# b% V6 C: J- V9 t9 k                                @,root.eventcontroller.simTime);
/ a4 C/ W" h, l                        @.HasOrder := false;
( u+ o. a2 l. G/ ?                        @.DrivingHome := true;" R7 r/ r; ~4 [; z& X
                        rgManager.tryToStartTransOrder;
2 m% C! \" T6 t6 O0 P  o1 w                        if @.Destination = void
. B) Y: H0 L/ e% v                        then -- no transport order for vehicle @# u2 y) [; `5 v" L- s. h
                                @.Destination :=
, K% W) o2 R# }. i4 T' k                                rgManager.nearestFreeStation(@,track.~);. w! ^& @, q% d1 Q7 Y
                                newDirection(@);   : j. z9 Y# z  o1 W' C/ n+ \  z
                                if @.Destination /= void then
& ]7 p$ D* u, M4 H  T9 b                                        @.Destination.NumReservation :=. U1 {' Z6 C3 s! y  d4 ]
                                        @.Destination.NumReservation + 1;
" |7 m8 s4 ]% y& F& h9 K                                end;
: q& Z1 E3 }8 K# [+ R                                @.CurrIcon := "drivingHome";+ y$ J* z: |5 f# C' O- w+ @
                                @.DrivingHome := true;
- x& `! E) ?4 f2 J                        end;1 ?3 i2 p7 G0 G; s6 l" a
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
" O/ c' y2 J  S0 M# B2 t0 m5 H4 N                        part := @.transpOrder;7 B$ W, V. M) s+ W& V9 k$ o
                        part.move(@);-- load part# _# B3 S1 i  n# k# M- a& J
                        @.CurrIcon := "load";3 I( @5 D8 o8 V: R+ J3 H
                        GlobalDistObj := part.globDestination;1 ?6 a+ p: E" S# a3 L& r
                        assignLObj := rgmanager.rgAssignL;- t# F, U) {7 Q9 M% K
                        row := assignLObj.getRowNo(GlobalDistObj);3 W1 r! o& _  w7 T9 H
                        if Row = -1 then -- since 70
5 d1 `! i, f' n, W+ i; ]                                if lan=1 then: q/ }5 m6 B3 J) {
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
( V/ t6 W! ?0 v' t( K                                                to_str("in der Andockstation: \"",?.~.name,"\""));4 ?/ G( J, z  s' V" v- A; L: K0 b
                                else
5 J8 x, B# e8 Z% ]                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),7 g4 g, c! N4 `& C! D7 X
                                                to_str("in docking station: \"",?.~.name,"\""));                                & C0 A6 ]  X/ y, ?+ g" j
                                end;# p  t  E" M% d0 \% l- A
                        else
& a/ m# l; n; z7 O/ T                                @.Destination := assignLObj[1,row];, v" ~3 c, _: R% X, B
                        end;                       
1 l. V+ }8 J& Y2 [8 \$ i                        newDirection(@);
4 B6 Q! e; v" R$ `. |) q+ l9 a                        @.HasOrder := true;3 w& q+ y6 A: E9 D' s. J0 G* H
                end;
( x  |, A" i( r        end;% `' C( H+ @; ^$ F
end;        -- of the method3 A  H9 v2 {7 i4 B/ j" n8 b3 `% B! A
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 8 V4 c$ L+ E4 D5 k/ l0 a9 \
* k/ ?7 V2 {# J! p% C/ k6 a1 w
这是AGV_putin中arrive的method。4 F/ `& {' b/ z

4 M& z2 v- T% p% ~当到达物料速度越高时,这个报警更多,- V2 H3 A) n" c9 r: n* w) x
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
$ q" m! t2 ]" c4 _( |2 p, `( B程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?7 p: ?5 i8 l3 I! O
( C# ~# ^/ Q1 u' Z- J2 B, U
另外一个小建议,就是move,所有的move都可以这样
5 b) B9 I& R: k; n& K0 }) G- E5 Hif not move() then debug end
. Q0 k  T4 v1 o' b; [! W这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
; v. N+ j% T3 y# V; Lplant simulation中的free libraries有AGV模板,
" _% i3 M/ u* N$ @5 H0 [里面也有案例。
. x6 W6 v9 ?0 j我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。$ N5 f; I0 t( l' P

; G/ `" O' j* l$ A# w我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 / x6 G+ q1 |1 U$ H# [! z+ @
/ b. Z" ~# Q' p3 S) z; o; G, x
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 : u# T( x; V3 x" n( ]
这是AGV_putin中arrive的method。
% O! O$ g9 W# w- w5 r" B/ |7 C% ~# L* ~: d6 l& Q  T1 Z" b
当到达物料速度越高时,这个报警更多,

" ^( r1 l8 x" Z* y# K: R% u4 K另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-20 07:03 , Processed in 0.018892 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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