设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5493|回复: 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'
( a2 J1 c. j! w. P  }* y3 G1 @*// I. a  K6 g2 _
is
2 i* o# J, r- b' i6 |5 N" {& B        part, GlobalDistObj, assignLObj:object;row,Lan:integer;! ]+ T; Q3 _  T, v* E' U* B
do* Z; C1 }5 \6 c! S
        Lan := rootfolder.Internal.Tools.AOLlanguage;. L9 P% e! u! Q5 J# `
        if current = @.Destination -- else return) Z: `2 o- ]$ Y1 R; \- e
        then
, \2 i# H2 `3 T7 k                @.Destination := void;
5 a  y: L. ]1 R- s1 K                if @.occupied then& C9 p. z1 o" W7 h4 J
                        part := @.cont;8 [) t0 M6 z- R9 g- h/ J& ~
                        @.transpOrder := void;
7 K: N0 u$ E! @  z' g                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,& C) f7 P( F) x" A
                                @,root.eventcontroller.simTime);
* a; Z6 M$ o4 Q# H  |                        @.HasOrder := false;5 z# x+ T: Z7 m2 f: H
                        @.DrivingHome := true;
  |2 i9 `+ O. u5 q$ P8 k                        rgManager.tryToStartTransOrder;
' X. ]& o  G) x9 M                        if @.Destination = void: Q( q+ n% l- _2 }, O
                        then -- no transport order for vehicle @
: t1 Q& i- p1 A- @$ Z1 O                                @.Destination :=
* {4 D( V9 Q. A8 }  ?2 o                                rgManager.nearestFreeStation(@,track.~);
1 @: I$ Q$ Y/ R0 f                                newDirection(@);   7 b/ x, r9 }8 y0 b' \; _
                                if @.Destination /= void then
" Q- W0 _* ~6 ^* N0 O5 {" j                                        @.Destination.NumReservation :=( h! L3 m" M' M9 u4 G. v. g% w% E; q$ M
                                        @.Destination.NumReservation + 1;1 O2 R0 n8 ^( R8 W% O  ~( G' G
                                end;* p5 G; {2 @0 {7 F
                                @.CurrIcon := "drivingHome";
$ W# y* j& I  h9 o( V                                @.DrivingHome := true;
1 B$ o/ g, F4 u; }                        end;" g2 Y# c# N; {0 e* J9 M
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
$ \/ v2 Z7 a5 I$ S4 `# C                        part := @.transpOrder;
; _7 U" x1 o& V9 E3 A9 m0 O* N                        part.move(@);-- load part) Q/ U! c& T" V7 S6 \0 Z
                        @.CurrIcon := "load";6 _" T9 U' E" `1 [( ?% K
                        GlobalDistObj := part.globDestination;/ u  y9 M' a2 V
                        assignLObj := rgmanager.rgAssignL;0 \6 _* d% F. k2 r8 k+ @
                        row := assignLObj.getRowNo(GlobalDistObj);
+ h5 F8 Q2 v' Q2 g7 J& F: M" e                        if Row = -1 then -- since 70# O: G2 G: t- l! o6 f7 A
                                if lan=1 then
  j& i) e6 I+ l& q                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
3 ]& F" T' o9 h$ i1 S$ w; |                                                to_str("in der Andockstation: \"",?.~.name,"\""));1 l* E( G$ ?9 h0 P
                                else6 h; l' ?$ `  i# M! X! h, S9 T
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
5 I8 e$ A( V% w! ~                                                to_str("in docking station: \"",?.~.name,"\""));                                ; @+ K# s& E- b4 f0 t/ d
                                end;
: j$ ]1 O  T/ `' @2 I8 P                        else
, O7 O6 i6 X1 d8 ]# B                                @.Destination := assignLObj[1,row];% H! _6 `4 f3 P* h5 O8 `
                        end;                        6 v- w4 C2 M# P7 n- E1 v' z$ [0 l
                        newDirection(@);; `# w' `' ~( M" d. \$ A+ }
                        @.HasOrder := true;
, h; g/ X( w- A! k$ C                end;
+ ]# m; F0 a  g; z0 y        end;% v( B+ T4 `  I& K0 ^3 K7 u
end;        -- of the method
2 _1 F" V0 ^' T- v5 b5 U/ `
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ) F8 x' |- Y/ O2 ~$ Q/ P% e
6 l; N; J5 e0 x1 m: b
这是AGV_putin中arrive的method。7 C3 j6 l6 C6 l: W; R! ~
8 O2 I6 v7 b5 z6 f7 V8 V2 m& P
当到达物料速度越高时,这个报警更多,! Q! y- z( r+ u0 S6 G* m  Q
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
( ?$ S: E  \5 r' q# h% L8 i# N+ w程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
+ I; b) w" m  X0 b8 I+ J7 x- _7 q2 `
1 a# a; J0 v( ?" O另外一个小建议,就是move,所有的move都可以这样
+ G+ C& E& J, O! z. \: yif not move() then debug end
0 D+ F$ ^/ w7 e9 u" T* @+ G3 h这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。7 U1 M) s- b* _5 L3 R7 v
plant simulation中的free libraries有AGV模板,+ m% }! _9 L. G4 h% h. J6 t6 A" R4 ^/ h
里面也有案例。0 p3 _" K0 _) \) \2 R
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。, M6 B- g) O  S: m8 v" }4 r& E: z; ]% l

0 d3 G5 l$ `$ H我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 7 k. t$ _& a: R  t, F- @2 t
% [0 u4 Y9 p9 P- z) f: |7 n
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 " @8 n5 D* Y7 q( U$ p. K
这是AGV_putin中arrive的method。0 A. y( Z7 i# X) {* @$ F" e7 J
+ ]/ @! j' U- q
当到达物料速度越高时,这个报警更多,

4 Y" C* ~* q6 m! ^9 }另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-27 15:26 , Processed in 0.021094 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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