设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7608|回复: 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 S6 G: r$ J; J( @
*/0 g. X2 G5 V% N3 Y- Z& w( k& L
is. i  U0 U2 F1 |' l9 y  r! i" z
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;: ?% H9 q  `  t0 l4 `1 w$ u' u
do
1 J0 y& F6 a, i7 d' T" _/ c: s2 G8 x        Lan := rootfolder.Internal.Tools.AOLlanguage;. m6 @  o% r& y
        if current = @.Destination -- else return
- o7 W1 f2 s+ ?3 p2 a- R0 _        then( M1 y$ a, P. A- J- V
                @.Destination := void;( f1 I* K* P5 R8 G+ ~$ E8 h( z
                if @.occupied then
4 {4 D6 ~4 A& }* f; G                        part := @.cont;
; g. B7 F0 M+ m7 b                        @.transpOrder := void;1 {4 V+ @% P1 j6 k
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,7 K( N6 l" E6 |% u
                                @,root.eventcontroller.simTime);- A; n" h' b& [
                        @.HasOrder := false;
, f1 a6 j& W& b) C                        @.DrivingHome := true;
; |; ?$ J  o8 k# U9 N; {' c: A* B  ?/ g3 K                        rgManager.tryToStartTransOrder;3 u" E. V* G( b$ M& h) f5 t0 @/ n
                        if @.Destination = void( d" |' N. r5 O6 P! @
                        then -- no transport order for vehicle @
5 u/ M& |2 q: e7 \/ V                                @.Destination :=
2 ~* P  b8 r0 V; g/ a. \: T                                rgManager.nearestFreeStation(@,track.~);
  v- d( h" `4 E, \9 {                                newDirection(@);     ]. ~8 K8 J: f0 H4 B- B
                                if @.Destination /= void then  D- d! `( n) X
                                        @.Destination.NumReservation :=
9 N' W( e) l, {' z$ h" g# m. k                                        @.Destination.NumReservation + 1;" P) A3 F1 _- v2 U' J% _9 H
                                end;  V! ^: u/ f  y) P. T
                                @.CurrIcon := "drivingHome";) s3 h* V$ |: g: p
                                @.DrivingHome := true;
! p& B9 [$ m0 B/ v! h                        end;
! Q" `7 H" N. n; T% Y# g/ e                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
" a& _+ [( H* t, m+ E( H8 e                        part := @.transpOrder;$ [- J$ _- G0 o  `2 l
                        part.move(@);-- load part
5 z. l9 U* n% y+ L. ~% t7 h                        @.CurrIcon := "load";% @# u8 O) @' v! v. v$ D
                        GlobalDistObj := part.globDestination;
! g. C* i; N- i  W9 e                        assignLObj := rgmanager.rgAssignL;
: l$ }2 T$ U  I3 r1 S: ~                        row := assignLObj.getRowNo(GlobalDistObj);
, p% i- b1 P9 p! [- ?                        if Row = -1 then -- since 70* Y3 Q6 `7 e6 E  _5 e' p8 x
                                if lan=1 then
+ F: j$ r5 `$ h* E5 v; Z1 J                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
' j! B! ]. |3 V                                                to_str("in der Andockstation: \"",?.~.name,"\""));5 A# W/ f( `5 ^) g& o# |7 M
                                else
. m& _; c4 g/ u& d                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),6 v' G5 U7 l: A$ q( P
                                                to_str("in docking station: \"",?.~.name,"\""));                               
2 u: s2 L& q3 g7 o( E1 [2 ?! P. M                                end;
' |$ V6 E3 p! W6 z8 E3 N                        else
, A0 J" q) N" o! v. N% S! Q                                @.Destination := assignLObj[1,row];" f+ z  n% p9 h0 V( c" ]
                        end;                        - `, N4 g2 F2 g4 f" ~4 U4 u
                        newDirection(@);
* B- ]5 p' Y. g                        @.HasOrder := true;
' P$ h. U" M0 z" {* i                end;* u/ F- J( p- W2 S, G* z
        end;) \; d  G: S$ f
end;        -- of the method
2 O% d$ T) @8 r) K6 P5 B" z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ; t/ O; L( a0 w( A: e
7 Y9 R/ N7 ?7 f, L. p$ k, r
这是AGV_putin中arrive的method。
- @" N0 o; O3 L) ?( B2 W
% [; O* j( x7 y: p/ }当到达物料速度越高时,这个报警更多,
! \& A9 P  d/ e4 @% A可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
. D3 X+ ^2 @* E/ d: ~! e& A2 F( B: v2 @程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?! m% s$ N. m( g) F# M4 ]. Z% l
! p* ~! K/ t% Z$ Y/ X
另外一个小建议,就是move,所有的move都可以这样! D5 G2 [9 T! ]
if not move() then debug end* o9 A+ \7 m" o& k+ @# @) H1 H
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。1 [* \) \) p7 o( k5 w& p1 b9 T
plant simulation中的free libraries有AGV模板,
- v5 S: x4 h/ q+ f里面也有案例。& j$ Q7 M$ [, @; s9 e3 V9 w7 `
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
' u* J& j; ]- |6 f8 ]
" y* J5 N. X. S- ?. J& I4 R; y我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
; N" ^3 G& i/ i* W( l3 m( t" Y) R0 K+ a
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
2 k0 J; B  C, o/ T9 X这是AGV_putin中arrive的method。
3 P1 u* |+ W6 F
9 @/ u: Z6 ]# ]当到达物料速度越高时,这个报警更多,
. @7 a/ I  L' z/ w* ?0 p3 B% g
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-19 21:13 , Processed in 0.021548 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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