设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7430|回复: 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'
" w% S- w6 N3 F- j: S  [" a*/5 R' d* M  d) K- Q
is5 E) K3 w' `5 w0 r# K
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;0 ]; i; d6 {6 m* M4 Z0 p
do
2 Z0 Y0 Z) j: D& y# P3 @2 Q        Lan := rootfolder.Internal.Tools.AOLlanguage;
* _% T1 k/ K" e: L, v7 t        if current = @.Destination -- else return' |4 G* Z5 U" c; q3 ^
        then# {, P1 E; ]. K- D* ]
                @.Destination := void;
  ?2 s% j% z' F/ i: P4 y                if @.occupied then
- Y* R, \4 V& x8 N# t9 Q: B& s0 V                        part := @.cont;
# @- Y$ r' _4 @2 `1 k7 O                        @.transpOrder := void;6 l# a9 E0 Y# w: V' p$ J
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
, j3 I, ]. ~3 i' Q/ C                                @,root.eventcontroller.simTime);6 A- L6 Q8 y9 M4 O' r! I
                        @.HasOrder := false;2 y& ~) p$ c) F& J8 Z) H) _
                        @.DrivingHome := true;+ {$ n# |$ q2 P* ^! ?
                        rgManager.tryToStartTransOrder;5 }( C" F$ T! q" O: B- {1 |0 q
                        if @.Destination = void* `6 L3 k# F$ }! F3 h( ?; |
                        then -- no transport order for vehicle @/ K" z& Z* |6 L
                                @.Destination :=& D6 ]  L3 ?& I+ _3 x2 e2 @  T
                                rgManager.nearestFreeStation(@,track.~);( \" z. c/ `1 B# Z" i. [
                                newDirection(@);   # {# x5 D+ s# J/ k
                                if @.Destination /= void then9 X1 T3 J/ a, L- n
                                        @.Destination.NumReservation :=
5 E6 J& p3 X( r1 t& C  y                                        @.Destination.NumReservation + 1;0 e5 T! |7 j  Q, @9 R( B* `
                                end;8 F( J. K& U3 B4 i3 S
                                @.CurrIcon := "drivingHome";2 q4 f$ \' O/ U6 q6 s/ ~. S
                                @.DrivingHome := true;
" i+ W5 I' w+ b1 e                        end;- I1 s" U5 @/ j! O7 X
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
1 r/ d' }& U* D# q                        part := @.transpOrder;. v8 \9 n' i1 z
                        part.move(@);-- load part
+ C, |4 f  v( A+ ]                        @.CurrIcon := "load";
% R% S1 p9 O+ M) x) V$ X                        GlobalDistObj := part.globDestination;
  t6 |+ X3 @! `/ B$ O, o                        assignLObj := rgmanager.rgAssignL;
* t: W/ Y, c/ l  _/ D                        row := assignLObj.getRowNo(GlobalDistObj);7 @( y& ]# l3 p5 X5 R1 }
                        if Row = -1 then -- since 70
- v0 H/ g6 F6 A8 L6 Q: ?% C                                if lan=1 then
% y' e& T1 L. V; l( I0 }# B                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
& i6 o$ k+ \$ k1 h5 ?                                                to_str("in der Andockstation: \"",?.~.name,"\""));
+ E& m9 E* r) T7 e2 ?                                else) L2 B; w' ~3 D; t7 k; Q7 v+ L
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),# |6 F& i2 p* Y! n. c4 }- ?. ?5 d
                                                to_str("in docking station: \"",?.~.name,"\""));                                * f# o% S( S! d' E2 f8 G( [% m
                                end;; v/ ~& R8 X6 W# g$ K1 C
                        else
  C* h; C3 |3 ^% F0 `- c% A% B- Q2 G                                @.Destination := assignLObj[1,row];
; I. C8 u" ]8 B  Z( y. [- Y- H                        end;                        8 c/ _6 C& X# u+ S. e
                        newDirection(@);7 H( ^. I* v, l# Z  K+ R
                        @.HasOrder := true;
: k) E- o' F0 `. Z                end;/ ^1 W. m9 X- Q$ i! G) U
        end;
) R! c8 F1 C# w  q; m+ j" Wend;        -- of the method
$ A3 u* N; P; A8 R, G
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
" f$ }7 h0 j7 _& `0 A6 v, H* W
这是AGV_putin中arrive的method。
7 G8 d- W* m& y+ [7 G, G) Y
( c# `6 S0 W9 Z当到达物料速度越高时,这个报警更多,% q' `/ S0 ]  `5 D* [7 _
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。- Y; |2 ^/ t: h9 W+ c( F
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?' Z4 o% ?8 Y) `1 T7 J* V
! Q/ M9 p2 @1 G4 \" p$ m
另外一个小建议,就是move,所有的move都可以这样
$ ^8 G2 W6 C* H2 N! ?& \4 _9 `" vif not move() then debug end
! ^1 t# ~6 k9 x0 t( r, C# w这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。+ |/ \1 F% n1 o- N+ d: ]: Q
plant simulation中的free libraries有AGV模板,
8 k0 R' u1 h9 {0 `; k5 X里面也有案例。
/ s  \+ `' ]3 s我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
" _2 u9 I2 ~8 E- ?( @' g* Q8 n/ F# b4 K5 `. a* P) D$ y2 V/ c9 X: l
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
# q7 n' @5 ^2 D$ f5 W5 P; h
' J  N, i! ?/ o* M0 F那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
# R8 ^: {/ |. v+ u8 R8 C这是AGV_putin中arrive的method。+ g; {- H9 M: a% y
" y* O) @7 q- f% B/ K4 Q5 l3 Y
当到达物料速度越高时,这个报警更多,
% ?# w9 r! M+ c2 @5 j* z9 f
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-11 00:51 , Processed in 0.019905 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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