设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10049|回复: 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'
8 @0 B0 V6 q$ y( {- }*/" i5 o5 C7 m. j2 y
is( x# P  u( \- h! ^* g4 ~0 p* k( p
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
8 y% i- K# ~# ydo7 z1 P4 `6 f: O; C
        Lan := rootfolder.Internal.Tools.AOLlanguage;4 G' V7 D9 T2 X% p
        if current = @.Destination -- else return5 W7 t8 z+ {' G
        then7 g0 o# q5 E' x9 U2 i
                @.Destination := void;; b# q9 z4 e- `: F- y1 @; q
                if @.occupied then
4 Y4 J: F1 _! p( q" p7 U! g" e0 R                        part := @.cont;3 `$ f9 a6 X: P/ ^6 u" G; ?
                        @.transpOrder := void;
8 d+ ^0 v& {7 L' v- t% w  x$ k                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,' b- u2 u- H/ w+ B- }$ j
                                @,root.eventcontroller.simTime);
1 N; P4 W$ h# V( x( t                        @.HasOrder := false;
3 e' Z) H$ Q7 S                        @.DrivingHome := true;- U3 K( n) u& F5 W
                        rgManager.tryToStartTransOrder;4 R9 Z2 K. L: y
                        if @.Destination = void
1 H" ?% B" e, n# Y. p                        then -- no transport order for vehicle @5 [8 z2 t" B% S$ n/ d- b4 U9 Y1 @
                                @.Destination :=: ^7 m* _5 Z! m5 M% P
                                rgManager.nearestFreeStation(@,track.~);/ b: ?0 A  ?; o# l* S
                                newDirection(@);   
' t/ N7 @& c1 [/ V+ p3 Z                                if @.Destination /= void then
# n) G, w, J8 x* U+ y                                        @.Destination.NumReservation :=0 k0 V' a* D) ?/ j2 S6 V  ^2 S: v# N
                                        @.Destination.NumReservation + 1;
% Q" R8 Q, h" j& P- _7 p. X, ~                                end;, t0 j6 c& n7 T- p2 r3 s
                                @.CurrIcon := "drivingHome";" C/ c0 C7 \2 O+ I/ w8 {6 H% ?
                                @.DrivingHome := true;
6 @+ W, M$ W6 d1 d$ u! z                        end;" P9 X' c6 F# ]% k1 k
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station. N0 b2 C- v  A4 i! c
                        part := @.transpOrder;2 E, C, P- c9 M3 @) |  x$ F9 y0 H
                        part.move(@);-- load part, L! B- {" T$ R1 R; [7 E9 e
                        @.CurrIcon := "load";
+ p: f- d2 X. {2 M$ Y4 j                        GlobalDistObj := part.globDestination;
2 t  G% Q) P7 ]; o2 r7 {! o9 A                        assignLObj := rgmanager.rgAssignL;  A( j7 H2 f7 m9 j# ?0 s
                        row := assignLObj.getRowNo(GlobalDistObj);
. w( M9 x! E5 a8 e$ A                        if Row = -1 then -- since 70+ n' o" B' v  S# D% O( R, f/ a' d
                                if lan=1 then9 Z+ ~4 K% }: g  h
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
. n4 J+ p7 m- g0 c                                                to_str("in der Andockstation: \"",?.~.name,"\""));1 I* U9 b3 I1 Z1 \' X
                                else( E* _6 l; `/ c1 }. ~
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
" r: H5 }, n, y8 a( s+ A                                                to_str("in docking station: \"",?.~.name,"\""));                               
3 x  v6 y; o! |5 F. R8 k                                end;7 }: z& R0 A; U8 H/ D
                        else
9 p6 ~) }  j% @/ |& v                                @.Destination := assignLObj[1,row];# S: C9 Y" h; M( B
                        end;                       
  U2 _. X' f8 }5 B. D$ p                        newDirection(@);
9 [2 g- R# q/ K" \2 g' S& l                        @.HasOrder := true;
0 l  q; Y! z, `, K7 {  j8 w1 V                end;
- G. J* }1 Q& d  Q        end;
0 z0 v$ n- `2 G# |2 D& g1 Yend;        -- of the method
' y! T. C+ Y- P4 B
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 6 D+ d# P1 U! [1 Z- R# E( r

- o' Y: `5 r. y8 q这是AGV_putin中arrive的method。
8 C( e. i' t- [; Y0 j; A! C. s0 g! n2 y! V) ]
当到达物料速度越高时,这个报警更多,* E# ^' J* ]# ~- |, N' V6 J
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。" ^0 _, O& r/ o& J- J" d4 p
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
) ]2 h( R$ r7 v9 S) Q  x
6 z, T. e% y& |* ]1 e2 r) z, ]另外一个小建议,就是move,所有的move都可以这样  t0 l* W* o- O7 M! }. T
if not move() then debug end
: o3 M, l, Y6 S+ o  I. k( r2 u' J这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
6 e! S6 ^; Q* V5 q; n) o, C; ?7 oplant simulation中的free libraries有AGV模板,
9 C: H: |% x* V% z& Z* V1 y- b, [里面也有案例。# O% \) M( b8 I) c8 x, k
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
9 @7 p; z" N/ B* F# G7 p7 @- ]: w5 a" a1 x
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
, [; R# ~# e1 t$ e) |  C* ]1 f8 Y$ a, B# @; D9 ?) {; B% m" l
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 0 R1 E! ]& [7 a0 r: E
这是AGV_putin中arrive的method。
4 w- a, s& U% I5 {+ u8 B4 c4 L' ^$ i+ H
当到达物料速度越高时,这个报警更多,

- P+ B! f( W- R$ ?另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-10 06:54 , Processed in 0.017301 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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