设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8078|回复: 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'
9 B& X0 \: W" u*/
5 c# f4 \9 R8 v$ V& h5 C0 zis2 Y/ M, N3 k1 {4 p+ e# @" y, d
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
( s2 l7 l6 W( F3 Zdo0 Z  B* }5 U$ S+ w6 t1 R) ?% O
        Lan := rootfolder.Internal.Tools.AOLlanguage;4 y1 Z2 J  u8 j
        if current = @.Destination -- else return
8 u4 L; ]1 w+ X  U        then2 O: W# E' S# o. ~4 a* W" M# ^$ p
                @.Destination := void;
1 ~, v8 t1 c( [6 X8 I2 t& z                if @.occupied then
$ [2 Y0 o  [+ k! [& Y                        part := @.cont;
, \7 T1 D, K" Q' z                        @.transpOrder := void;
, ~1 l) S% @. m/ [/ `5 |                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
8 ~3 R4 _0 R9 W% _                                @,root.eventcontroller.simTime);
) }, W% ]/ _1 f4 f$ @7 m( K5 ^* i                        @.HasOrder := false;1 W$ p! `$ p3 j$ y# n
                        @.DrivingHome := true;
6 \5 t1 u8 c+ i3 _                        rgManager.tryToStartTransOrder;/ p- J9 D! H' }$ V3 \" t$ x
                        if @.Destination = void- u/ V# a; o* E! h
                        then -- no transport order for vehicle @# q& ]$ C/ W; x3 r
                                @.Destination :=1 q9 I6 @# i, l) B0 A
                                rgManager.nearestFreeStation(@,track.~);3 ?/ p. M+ o/ O. d+ g
                                newDirection(@);   
) z% H  ^. d. L8 z" V3 Y                                if @.Destination /= void then* H, i! s& g8 s% ~$ V
                                        @.Destination.NumReservation :=
1 n5 z, m4 A1 P: G- R- P; L9 q                                        @.Destination.NumReservation + 1;
  |) X2 R+ z) u" p: z& E: m: M                                end;4 o# X) e8 K( M5 w' s9 @
                                @.CurrIcon := "drivingHome";
( @. C/ t+ q$ W# z0 ~3 N- x                                @.DrivingHome := true;7 m' H- d  d0 w
                        end;
4 i% u5 A5 }( a3 Y9 E" ?+ c& d                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
4 g" |+ n2 U6 S- n                        part := @.transpOrder;
' ]' Z3 ^# ~8 D5 z, q8 i* F, j                        part.move(@);-- load part. Q% u3 l& q* s
                        @.CurrIcon := "load";, T( e( L* q3 R6 p' M
                        GlobalDistObj := part.globDestination;
* M9 S7 o* V) b  R% o$ t! ?                        assignLObj := rgmanager.rgAssignL;
3 s# n3 ]" w, M9 n+ I                        row := assignLObj.getRowNo(GlobalDistObj);
5 T1 a' `3 A) \: M& }                        if Row = -1 then -- since 70
! ]( y: s1 x+ E! {7 z( f, t                                if lan=1 then
; F4 m9 M* V! A) `7 T9 r                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
1 _+ u( d! _* n: r                                                to_str("in der Andockstation: \"",?.~.name,"\""));  S; F5 T" T$ b" |4 F# w
                                else# }7 u+ N$ i+ G2 M" h1 M7 ]
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),3 z2 V' a6 l0 f- Z/ D9 [; Y8 T+ o
                                                to_str("in docking station: \"",?.~.name,"\""));                               
. R) s8 A& C5 E( L                                end;
) e) Q5 _. |' g                        else# H4 S9 \' k9 P% z8 h$ _
                                @.Destination := assignLObj[1,row];
6 h7 d" _7 u2 S8 i: ]                        end;                        4 f: T7 Y; `) e
                        newDirection(@);
* C8 E# [2 e  I: L; H+ R                        @.HasOrder := true;3 q+ Z9 a" O, ^! K9 H. l9 T
                end;
  k1 j% h0 R! [( W* q        end;  e& a" c8 M$ ^+ ]# D+ j
end;        -- of the method
% i6 `3 s" V. R. a1 c2 j8 s
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 1 b' ~& D+ E7 Q$ x$ ^* v1 c( K
8 r: z  _) ~6 w0 Z
这是AGV_putin中arrive的method。
) i2 T9 T5 {5 r: s# S: ~5 g' x* u
- |. ]! T( o( P1 P当到达物料速度越高时,这个报警更多,) r0 O5 p/ u* @( o* k3 a
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。4 v* }8 c% t3 ^* C+ G& r0 w5 v
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
3 L( r' I& Q( k; {  u' Y
# g6 @: b$ F8 N; D: G另外一个小建议,就是move,所有的move都可以这样+ A: e5 r, q+ a, v) ^; Q! I7 H& ?
if not move() then debug end
9 y. `: x) R% P; n* o) _& R6 z, V这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。2 `# p& o4 w) w+ Q: o. z" b
plant simulation中的free libraries有AGV模板,
0 _9 S( l4 p) ~5 P# w里面也有案例。
5 D( k: {9 g; w5 D) c我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
6 A: j- B7 L3 v7 Q& S
1 v# V$ |' {. E) _! B7 [; M我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
3 h. r4 h) _0 C  Y
+ {- ]6 l3 r( F那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
5 I) i( z3 z/ F这是AGV_putin中arrive的method。, F, c! p) E$ R+ E' w
$ F7 ?: V* A1 x/ j9 }
当到达物料速度越高时,这个报警更多,
8 h1 Z# z# U( I! d- A
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-14 02:00 , Processed in 0.017529 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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