设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5869|回复: 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'
# f& q! m* z8 g8 o*/3 d& u- Z& N4 g6 v7 R4 {( T
is/ i# o- \' ^# F0 S/ A
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;- q7 ?3 t$ d( T
do. B& o, l7 s$ P: E
        Lan := rootfolder.Internal.Tools.AOLlanguage;; s$ M3 i" _1 M
        if current = @.Destination -- else return
" P; s7 g# Z7 _- A1 u7 T        then
5 F4 f1 a: u6 S3 i                @.Destination := void;/ X3 l* u" G( `2 w0 s9 B
                if @.occupied then
: O) d* U: m+ O' B( P' ]* M                        part := @.cont;
' C& q! ~# B8 N( J' y) G+ i                        @.transpOrder := void;2 N0 V% N# ^( I" r, [$ r  M( _' ?
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,- c" B- }+ r7 o- ]) e$ E+ _3 b
                                @,root.eventcontroller.simTime);/ f# G6 }2 i/ U# |6 Y" u
                        @.HasOrder := false;2 \6 F3 ]) m2 @- {
                        @.DrivingHome := true;) O+ J+ B7 ^& \$ ]( b
                        rgManager.tryToStartTransOrder;5 s4 c& g/ i( I- j0 G4 R% o. X
                        if @.Destination = void8 I( W# j3 g" i7 ?5 G! K) W4 J& i
                        then -- no transport order for vehicle @
( ]# i6 T5 `. A5 a8 {                                @.Destination :=  c0 E9 x4 U3 y8 o/ k* B! r6 K
                                rgManager.nearestFreeStation(@,track.~);1 b& r" a3 w- ^1 k0 ?, d
                                newDirection(@);   + M- h- z8 l, u7 `2 O- |
                                if @.Destination /= void then
; _+ Z: ~/ O0 s7 N8 U4 s# g+ q                                        @.Destination.NumReservation :=
( U( S4 M3 Q6 a% |# `+ q2 H0 w                                        @.Destination.NumReservation + 1;
6 s$ c- [6 N  Z2 j- j" g( K                                end;
' d7 Y( M2 t4 H+ ]                                @.CurrIcon := "drivingHome";1 s: H/ Z8 F5 m4 h5 T
                                @.DrivingHome := true;/ Z$ _2 O" {& l( c, U
                        end;
% Z7 ~* z/ k/ E7 O4 H                else -- the vehicle @ is empty, both vehicle and part are in the same dock station* P) Y% _% Y' d2 b$ v9 r
                        part := @.transpOrder;
  s) N+ N6 u* w' b                        part.move(@);-- load part, t7 Z0 m. w' J  i( j( s$ G  ^5 z/ V! b, s
                        @.CurrIcon := "load";
; h3 Q8 x' K# o: c" E& T, U, d* P3 V                        GlobalDistObj := part.globDestination;
- p$ M' P5 {7 ]0 A/ `5 C                        assignLObj := rgmanager.rgAssignL;; \+ S. i( E" c* e
                        row := assignLObj.getRowNo(GlobalDistObj);8 I0 B6 c+ C" Y9 ~. K1 u
                        if Row = -1 then -- since 70, K/ B, T6 l! r  i6 c; }
                                if lan=1 then
, X* b' ]0 I( Q' l, r2 S% f0 ~                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),% M$ w% H( ^- P. I2 H$ u
                                                to_str("in der Andockstation: \"",?.~.name,"\""));9 [* [7 _2 R# f' j( f8 _1 O, M
                                else
. p: C: W2 ^$ ]$ n- @                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
' e/ ?3 R0 l2 X- l                                                to_str("in docking station: \"",?.~.name,"\""));                                + `; M  p& o8 {3 z, Y# e( `: B2 K
                                end;
3 S' r/ i0 t6 J# m* l- d. G" J1 I                        else
3 k( k- A3 i& d5 |                                @.Destination := assignLObj[1,row];
) A  Y0 n% k. r- Y% {                        end;                        9 [; G) C1 e! J* C6 ^( {8 S
                        newDirection(@);
. s# F3 Z! W3 U* x                        @.HasOrder := true;2 q/ p6 E! A8 O! i) H* y
                end;- G- a6 \0 ]  z4 T: ?
        end;! u( e8 D; m# q2 |0 _) Y5 o
end;        -- of the method
- I/ r9 \/ u( g/ a
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
( |4 S% d) a5 R+ k) ^/ I# J7 H# H& l, [+ G8 B: \
这是AGV_putin中arrive的method。% Y% [' H+ Z5 u8 ^+ b7 E3 [

* j8 d) Y' G( @, h3 B当到达物料速度越高时,这个报警更多,
. c0 ?; c, I  }. n( Y可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
0 s  t9 n, m5 c0 D程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?9 O0 t5 e4 Y8 Z; Q$ b

& W( E5 v: b7 p! l2 y6 b另外一个小建议,就是move,所有的move都可以这样& N  v7 a& C* q' a
if not move() then debug end
; Y2 W9 `: M# J, V+ {这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
7 i; M" N# Q: J1 G+ `plant simulation中的free libraries有AGV模板,
: ^" C3 ]+ U; K" n' E- _里面也有案例。5 O8 |* [1 r# |: _& K) P- A
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
) w# [( k9 q9 z' g* w7 q! z& I2 ^5 W
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
9 Z% ~& b1 s4 m- w7 s# d! r0 a/ }
7 x$ Z% H8 g9 h8 m; x那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 7 r( c. e3 [. t: `- g& D1 u
这是AGV_putin中arrive的method。
/ O0 D, M9 {% r- w
6 {' v) x. [7 C* [( d当到达物料速度越高时,这个报警更多,

) j2 r( g  ~) u另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-27 22:19 , Processed in 0.023544 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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