设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7701|回复: 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'
; h8 f9 g; Y; P$ v*/
8 X1 P8 M: \% }/ G7 Uis2 x, a4 ?$ _1 A; G* x2 R7 v
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
1 e. V( B2 c+ [0 Ido/ c. v# O  o# f  m4 I/ f$ D6 Z
        Lan := rootfolder.Internal.Tools.AOLlanguage;
3 ~( s7 ]6 A3 H! t8 X        if current = @.Destination -- else return
7 z0 [  o# E  y9 y1 A1 ?        then
9 Q& q' P; U# Y# G                @.Destination := void;4 n: u, S, A5 n7 K  E0 u
                if @.occupied then
1 a8 L$ |2 F, D* u                        part := @.cont;
( c) f- r, H2 d                        @.transpOrder := void;% a: S5 T: g% r/ C9 S2 D8 k  [
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
) [1 f  S3 T" f5 E' _6 i6 b4 P3 [                                @,root.eventcontroller.simTime);
( N/ E8 h4 {. W- e3 B& f/ U                        @.HasOrder := false;2 P0 `2 W6 ?; E
                        @.DrivingHome := true;% i0 N3 _, n# D% z% ^( L
                        rgManager.tryToStartTransOrder;5 E. S1 v* d! G. ~5 o  F- F" W
                        if @.Destination = void
0 U: A! C9 w/ ~8 {9 H6 \                        then -- no transport order for vehicle @
) |& Q2 z+ V0 d5 Z8 d. ?) t                                @.Destination :=
1 N3 G) _1 w+ s6 ]                                rgManager.nearestFreeStation(@,track.~);
. K* c. V! L1 C5 J- \/ c                                newDirection(@);   , \$ N+ R2 z$ k
                                if @.Destination /= void then
' O6 Q: U1 j- p9 z; n' Q                                        @.Destination.NumReservation :=+ t  j6 s& a1 \0 S6 }/ D
                                        @.Destination.NumReservation + 1;$ l8 l+ C" q' P: D8 S0 u7 n
                                end;% x& ?4 ?9 g- |$ m) O
                                @.CurrIcon := "drivingHome";, e6 {; E" }/ [) O
                                @.DrivingHome := true;
( I5 A# H1 X; j! t2 M1 C                        end;8 p8 y, J% d# f: |1 ?
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
9 Y" `2 l  @, j1 ~2 W* h* w                        part := @.transpOrder;- O: r0 S* g; L* n0 \9 O; p" {
                        part.move(@);-- load part
+ x7 A: M. Z, \$ N; |8 c                        @.CurrIcon := "load";* ^% o; Q: h/ R' D% N+ _
                        GlobalDistObj := part.globDestination;1 l5 Z' f0 j  v. D- R
                        assignLObj := rgmanager.rgAssignL;/ B  T& n4 p+ J" p/ c3 N
                        row := assignLObj.getRowNo(GlobalDistObj);
; a& O9 N4 t3 W5 E                        if Row = -1 then -- since 70+ J5 t* z0 y" T' s6 b: g( a
                                if lan=1 then" S* D& q( M- W3 @) P. Q  x* k0 J
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
8 e9 v2 W& m' Z( W$ t+ ]                                                to_str("in der Andockstation: \"",?.~.name,"\""));8 X: A  x5 i0 D% y* C5 _
                                else& ~3 ~3 N) v9 i. K% r
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),9 p; }! X% c! t& W
                                                to_str("in docking station: \"",?.~.name,"\""));                                ' ]) i6 ?- ?' c1 ~
                                end;
1 K7 F6 _7 h& Y6 p; G$ N0 P) H                        else
8 `% P2 F% W3 |- T$ @9 \! R! H8 R# L                                @.Destination := assignLObj[1,row];( s$ u2 D! v: U9 {4 }" k
                        end;                       
0 A0 b' W0 k  P; [) s* T                        newDirection(@);
' i8 k+ H" P. o8 B/ B* ~                        @.HasOrder := true;' o3 L8 V) u8 X9 l) T! T, m: W; d4 M
                end;! e& S8 h6 D9 _
        end;
2 I+ e8 X3 b; G" w$ b. Send;        -- of the method
5 y  R& C8 X( n: t' C
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 % T6 `0 B& ^; x; S& d5 Y6 u
- y4 y5 j* Y# X# L# N  {0 ~
这是AGV_putin中arrive的method。6 q! o2 |3 ?5 y
0 f; Y- P8 n: h
当到达物料速度越高时,这个报警更多,
" {3 q, n! A- ?6 |6 D4 `可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
2 K  J7 \+ Q" v% z1 `1 b: R+ A程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?# \% ~' V4 ^- S, @8 i3 o+ a
& k- |1 O$ |$ Y8 G* y3 q; h
另外一个小建议,就是move,所有的move都可以这样$ b0 J9 R/ \- h/ m! Z) Y: o
if not move() then debug end
+ x) L9 P+ j2 {* B5 g  l, e这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。7 @5 K7 z" s5 A0 y
plant simulation中的free libraries有AGV模板,% E# E; S9 \7 `' W  n: r
里面也有案例。  o/ P" W' D& w$ V' f8 g
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
' v9 K' B5 f, C7 z9 h: G7 S8 a' R4 U- B# A2 e3 w0 v
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 3 a1 o# ^0 q, y# S. z
$ A: n& v8 d0 X* X1 h: A1 K
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
- q% z- \" s9 Z4 A8 P! g这是AGV_putin中arrive的method。: i( |5 L- z4 H
7 V  i6 h9 b: N1 F
当到达物料速度越高时,这个报警更多,
" w  t+ T3 t% P2 s& i* T" T! g
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-25 05:55 , Processed in 0.023587 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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