设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6242|回复: 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'
$ c% k3 v5 D# _3 H8 n- u8 ?. B  U5 v*/* W3 Q5 R6 b! I  ?% ~5 ^6 @
is
) p& R7 i& P3 |+ u. M$ C2 g- `$ S% O        part, GlobalDistObj, assignLObj:object;row,Lan:integer;& u6 |" O+ C3 \% t7 K- I* w
do
) Q! E$ n2 j( j7 K        Lan := rootfolder.Internal.Tools.AOLlanguage;
( t9 y0 i2 g/ D% S, m        if current = @.Destination -- else return: x7 O  ~1 `6 [& Y
        then
( }8 ?* G) L. Z1 L                @.Destination := void;7 b  |4 L6 e) F7 `
                if @.occupied then
9 ~6 l! z: x. |' D  U5 }" @                        part := @.cont;3 k, d7 d5 Y' N6 W
                        @.transpOrder := void;
( N0 a; b2 ^7 A                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,3 u6 Q9 q+ a: I& t( `
                                @,root.eventcontroller.simTime);/ r9 x( w" p% V
                        @.HasOrder := false;" j& N" o. ~4 b. S  a" p- y
                        @.DrivingHome := true;
/ G3 w0 A: T' |1 ~9 a' B                        rgManager.tryToStartTransOrder;
7 ]3 N5 Z& V, Z5 N, [/ `% c                        if @.Destination = void
* U* \' S3 D& S                        then -- no transport order for vehicle @
) N+ f$ g4 B+ K; q0 p                                @.Destination :=
" E, x! b( }! J' D4 |6 }, {; y                                rgManager.nearestFreeStation(@,track.~);1 Q- J: Y0 a8 o- d, P
                                newDirection(@);   
& N) |0 w: X) N2 ^" ^8 K                                if @.Destination /= void then
: E5 F1 M+ ~8 e! J                                        @.Destination.NumReservation :=
1 a  E  G! p2 Q7 F( P( O                                        @.Destination.NumReservation + 1;
8 O8 {) j+ c) O9 i6 Y5 d3 |: o- o                                end;4 t9 u6 x6 J$ {8 V6 s
                                @.CurrIcon := "drivingHome";6 U0 v0 |$ v) k+ y" J
                                @.DrivingHome := true;
1 n: d3 x: f$ q0 }5 w+ H! H- K                        end;
: N/ @- H# @* O; \. B3 k                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
. f+ W' U5 U9 Q* t5 `                        part := @.transpOrder;3 E$ ^) f/ z& a% B8 C2 U1 Q
                        part.move(@);-- load part. {/ Y3 q% b4 R& W. {
                        @.CurrIcon := "load";: F$ S6 A7 C, }# A& m' u
                        GlobalDistObj := part.globDestination;
+ o6 t" G& p2 ^2 a; r5 M9 L' x" }                        assignLObj := rgmanager.rgAssignL;  n9 N2 e2 F; V, g& D  P
                        row := assignLObj.getRowNo(GlobalDistObj);. r4 O& Q$ [% y
                        if Row = -1 then -- since 70
3 Q* n5 n& M- y+ D  Q                                if lan=1 then
9 q( r3 A% j. H5 {2 X0 a- n2 [7 Z) x                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),' q/ \& M* ~& U0 J3 N# ~0 s1 i
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
* M; E, F* `# [6 N                                else
6 a8 p2 A# `1 i$ p3 t+ U  A: B/ L                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),- x$ P+ A; b" E) M! m/ r
                                                to_str("in docking station: \"",?.~.name,"\""));                               
+ ?; @3 B/ ]& H* F                                end;* x- E( N1 V0 P3 Z8 K( @
                        else8 i7 p! @$ E7 @9 y* z* B
                                @.Destination := assignLObj[1,row];. ?  M' ?+ x$ P' a: J5 q' ~9 \
                        end;                       
! H0 f4 t! n$ n: @; T2 a                        newDirection(@);+ D0 ]1 }3 d. ~0 h" o
                        @.HasOrder := true;5 p0 n5 u! J" J' }/ ?2 B: t
                end;
8 M; d" D1 Q6 ?5 b, c        end;
7 W+ i3 {9 |' [' d3 fend;        -- of the method
* t) g( u2 u% \9 ?
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 * I6 x$ P! F: f3 ~

# Z% [8 p4 R+ a$ a4 T这是AGV_putin中arrive的method。* ?2 {, O( y4 J& ]! k' e* t

7 n1 P+ N$ ]: M" @9 J1 v0 j* t当到达物料速度越高时,这个报警更多,
  E$ A' N1 {$ L7 k( ]可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
- l  A; }3 x5 G  _3 [. x; T. C* |程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?: f5 T0 _; y2 @/ @  L7 s
/ ~; U' O. |5 b& K7 u8 i4 n8 ]
另外一个小建议,就是move,所有的move都可以这样
$ t- e# f+ b, Q6 z8 Q6 P) mif not move() then debug end( E) K6 }( n9 {: F! y& ^/ i
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。" {5 M) Y; _! S1 a4 _; v1 y+ p8 f6 h! u' w
plant simulation中的free libraries有AGV模板,
( q) h6 W7 {. Q里面也有案例。, b; W+ M/ V- D! L
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。/ h; V) a6 u7 G/ Q
0 t1 L! g% H3 @" z! S
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 , Y* ]' o8 r+ ]1 d4 A

3 s: g* ]1 u: o: D  D那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 # ^7 W+ L0 H6 T8 j2 F0 }$ i
这是AGV_putin中arrive的method。
. e2 ^& R1 @$ F" j
5 h! n: f$ e4 y, o$ ~0 @) H2 H当到达物料速度越高时,这个报警更多,
. Y; M% e3 H' O; ?: Q3 U# y3 @; \
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-26 20:29 , Processed in 0.023235 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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