设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6327|回复: 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'; v  D' G. Q# K  ~: C
*/! P% w$ O' Z1 o2 h2 B* w7 Q
is
+ K3 s. w% {. y8 R3 G0 U        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
# }, a' e0 Z1 Z5 ~) Ido9 K# R" Y8 w9 N: Q4 J
        Lan := rootfolder.Internal.Tools.AOLlanguage;% ?4 Z( y# B4 `- `' V
        if current = @.Destination -- else return
# y0 ?+ s6 P. \# `9 o5 d        then- e; U  n( u/ K& m7 d: \
                @.Destination := void;# W* L7 s7 U9 ]  H1 o
                if @.occupied then
" _' s( j3 [$ h3 M$ Q                        part := @.cont;
) t3 H1 {3 L6 R7 J) |# ^                        @.transpOrder := void;& u$ H/ x. H$ ?2 C9 Q6 {2 t
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
0 T! W/ O/ h7 x3 L                                @,root.eventcontroller.simTime);9 d! w% m, H6 U" V* |' e
                        @.HasOrder := false;
1 b$ K( i7 i- L2 u/ T* k* X                        @.DrivingHome := true;; w; h0 i4 x* P& I7 q" A- B
                        rgManager.tryToStartTransOrder;+ @6 N$ z* p4 H! V( J* ?& F% ?6 U) m
                        if @.Destination = void
2 D* _, l- G; E+ t. z                        then -- no transport order for vehicle @, Y) C5 P+ Q. L
                                @.Destination :=
' y$ x' ~  I0 {& ?                                rgManager.nearestFreeStation(@,track.~);) j2 [+ K: `/ S" d3 w4 ~
                                newDirection(@);   % M3 W! l9 z; w6 c  i; ~+ {
                                if @.Destination /= void then
, i  u; @% |; m. m1 l! ?( r                                        @.Destination.NumReservation :=& ]: F1 G( }# r& `& l; f
                                        @.Destination.NumReservation + 1;
- k; i% Q( r8 g0 O  O0 o1 |; w                                end;0 |+ w) q3 t0 @
                                @.CurrIcon := "drivingHome";  f% Z2 f. B5 S) }' U  @) M
                                @.DrivingHome := true;6 P& N2 v; c/ X7 v9 O
                        end;
0 R. g# n( G! L. g+ b                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
" |" J1 \! j! T: ^" [4 @% G                        part := @.transpOrder;
& j. V8 x  R3 D& P                        part.move(@);-- load part
4 i9 z- p+ B9 y( C" B5 p, {                        @.CurrIcon := "load";5 L9 Y7 {% {. h% i1 B0 X- j* [1 s
                        GlobalDistObj := part.globDestination;
+ a8 R. u- s' m+ n                        assignLObj := rgmanager.rgAssignL;
0 \, j9 L) b( u8 |                        row := assignLObj.getRowNo(GlobalDistObj);
% X+ M7 ^( Y& M7 `# L! q) Q$ @1 Y2 \                        if Row = -1 then -- since 70
& q! m9 ^3 y. G% i6 P- w% Z, K5 q: k                                if lan=1 then
. u/ q/ W7 |8 ?; e& K1 c% L4 }                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
2 q8 B) `7 `6 ^; P1 Y- y+ O, i                                                to_str("in der Andockstation: \"",?.~.name,"\""));4 x2 f  [" X) v8 M* ]
                                else
/ L6 ~0 g% n, y9 _2 c                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),& }) ]  P5 `, t7 y
                                                to_str("in docking station: \"",?.~.name,"\""));                                . ~. j3 ~, i$ Y% `
                                end;
7 G. p( ]+ U- W# y- ~4 s                        else
+ `8 F4 w5 A$ c# @& U                                @.Destination := assignLObj[1,row];. g) |. o' ]; R& k5 K9 S9 w
                        end;                        . @) Q# w3 v, m' y& C) C/ t# H2 \
                        newDirection(@);
* n9 @. Y! [* \4 E. ^) ~                        @.HasOrder := true;
+ }9 m" }! `" _                end;
8 d- T# o6 ]8 b7 i& Y5 Y        end;6 A# X5 S7 X0 [9 \7 ^4 J
end;        -- of the method6 w$ t8 [! g+ w7 J
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 2 ?5 W  U2 G" Y* B$ w4 U

& t2 ~' u4 O# I9 i' V7 T这是AGV_putin中arrive的method。
9 h, f3 ^' e) |) a+ s" i. V
, q8 B( ^0 b+ }; U4 X' k当到达物料速度越高时,这个报警更多,1 n5 `/ r( {* R# E. p: k. l: v2 k
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
' v& |* N3 P5 H/ [5 D+ P, N1 n程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?5 U; ~7 A" d4 D) K0 Q

0 [' F, F& p  Y另外一个小建议,就是move,所有的move都可以这样
$ I4 Y" r. R' o# nif not move() then debug end
8 d" s! E5 E5 y, E- Z8 ?6 B2 j& O这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。* P6 [& M% T+ C3 ]2 ]  B
plant simulation中的free libraries有AGV模板,1 f' L$ b6 \: B' x" K3 u
里面也有案例。
3 p9 R  T( @& t4 u9 Q' H. q6 \我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
& e) _8 v% n  m8 _! `
* e4 Z6 U! L0 s, m( ~4 q/ x我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ; W/ L# ~+ p( p1 J

7 r: l& U2 o* V( V+ V: _3 w那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 - F* t5 ]5 ^' }- V, `& e0 Z3 [
这是AGV_putin中arrive的method。3 u. s! x/ q8 }4 m( e: n- f- K
& d+ a2 O( X/ g. Y; {5 i; J# s
当到达物料速度越高时,这个报警更多,
' |$ D9 @5 P' S* v5 T5 {' I2 C
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-31 02:51 , Processed in 0.016178 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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