设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8752|回复: 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'
% r( A, }! d7 i9 k9 }; j*/
& B/ Q' e, @" r; wis# K8 j# ]$ k+ ]5 Q  z, G2 Y
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
# E& b' ?, y& J' N2 f6 ?2 sdo1 p9 n" u3 W+ y2 @1 [# s7 c) t* X
        Lan := rootfolder.Internal.Tools.AOLlanguage;
$ S0 A, y! }5 h. M9 y+ l# L! X9 L9 I        if current = @.Destination -- else return
9 l6 ^1 W- l# k: {        then
- ^2 R4 W4 g+ I, A                @.Destination := void;
6 @0 a, d. [0 V/ b3 w& k4 Y                if @.occupied then* |8 D" ~1 Y- O* W% j
                        part := @.cont;4 Y& W7 f) x/ g8 X  d! @
                        @.transpOrder := void;: B9 F7 h  Y" n* `* a
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,4 I% r) F( V5 B5 v. Y$ U5 P
                                @,root.eventcontroller.simTime);$ E, U4 \1 U: ~- @3 F
                        @.HasOrder := false;
4 p2 b6 i" v  z6 z                        @.DrivingHome := true;/ `2 a6 G- t2 Y; ~- C
                        rgManager.tryToStartTransOrder;
- T, [, ]/ \) l                        if @.Destination = void& C; g8 a8 ^( T, g: s8 M
                        then -- no transport order for vehicle @' _  {/ X( p  W( d3 k; V" u* @0 V
                                @.Destination :=
: X! m; {' P: c. r! K                                rgManager.nearestFreeStation(@,track.~);
/ d! l* v- u- E9 D' v+ Q* B' s5 Q) h                                newDirection(@);   8 \. s! }9 x/ x& ?. _$ |# i- N
                                if @.Destination /= void then, y  b% B9 s% ~0 F: K. F8 J) A* d- ~; o
                                        @.Destination.NumReservation :=
0 c( ^* _0 p( w, H; {0 @, e4 [                                        @.Destination.NumReservation + 1;1 T& I/ y# R6 y7 h
                                end;
, e" q; m4 I* v3 P% e8 T! G                                @.CurrIcon := "drivingHome";5 ~, N# N0 V7 p2 B
                                @.DrivingHome := true;
0 J0 b- R! x  [* m) f6 R                        end;* X# X/ x4 K7 c5 N
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
- h# Y2 |/ \" z9 v# }                        part := @.transpOrder;. Z9 p- M  I, ^" I
                        part.move(@);-- load part
2 |% M+ F& ~4 A2 M* B( ?) F                        @.CurrIcon := "load";1 f# J% F7 o- P# _
                        GlobalDistObj := part.globDestination;# f, u% R' n( l
                        assignLObj := rgmanager.rgAssignL;
2 j# d. O) U3 k2 Q: R* Q                        row := assignLObj.getRowNo(GlobalDistObj);9 R5 w0 P( Y( j$ R( y5 X8 {
                        if Row = -1 then -- since 70
; H+ [/ g/ A9 H( I                                if lan=1 then# N6 c% }( \* S# \8 n4 J6 L# V: B
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),# E1 ~0 M: k+ Q! R
                                                to_str("in der Andockstation: \"",?.~.name,"\""));. u9 x  l* v* B# R) |2 {2 q
                                else
* q4 }$ z, J7 S6 b: Z) E# D$ I                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),2 F( Y  b7 N* b  N% j
                                                to_str("in docking station: \"",?.~.name,"\""));                               
+ k0 m1 c$ D0 K* @- W' f2 Z* u                                end;
6 O0 n6 O3 {% k                        else* ~( j, d* F- x
                                @.Destination := assignLObj[1,row];
3 T% U6 n2 C) X8 C5 d. J                        end;                       
; m. I, r; T) D5 b$ M                        newDirection(@);
  b8 t9 `: c1 w                        @.HasOrder := true;0 L$ f; H% F: u7 k
                end;5 s; i4 w; N) y  I7 a
        end;" w' `6 {8 R- `# a
end;        -- of the method3 |/ a7 M, Z& N6 ?* {
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ) x8 M. d7 d! H2 c
( b- l0 }9 A- ?. o
这是AGV_putin中arrive的method。/ B2 e! Y- R0 Y! K. F8 h
! H# {" L! ^- o6 ^; X
当到达物料速度越高时,这个报警更多,
$ f: r" C$ X5 B可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。3 [/ a4 T3 j0 L7 f8 m1 f1 r2 ?* w
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?1 L4 Y1 Y. d' X! [1 V& q, B

* b+ ]3 s: V, V! b9 \. k- k另外一个小建议,就是move,所有的move都可以这样% ^! u6 e- i1 o2 Q, H
if not move() then debug end$ j: j; w+ M3 d5 T  o5 `% w
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
7 f. o, ?5 @$ W% pplant simulation中的free libraries有AGV模板,/ C; T9 K' H. i6 l
里面也有案例。
, [6 t; O) x' ]  O. \# e/ h1 G我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。" q2 `. G* r7 k8 ]" N3 R% O0 l* V
9 o% g4 `  k+ }0 n4 n4 C
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
) ^9 t, j% e9 l4 c
( s# ]4 D9 j+ w9 |那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
$ p8 a, x0 s" @. P: c7 ]这是AGV_putin中arrive的method。
# M* R1 A% R4 T  U+ [% ?" x3 ]( [: ~  v7 C7 k  e2 Z$ W0 N
当到达物料速度越高时,这个报警更多,

" M9 x& X( h( @4 b, Y0 V另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-24 10:04 , Processed in 0.016579 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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