设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6080|回复: 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'
. |2 E) T: s1 b/ J( Q- \*/
( P5 N( e' ]5 j$ Y/ [7 Kis
; O- W0 |9 [3 E+ V4 r        part, GlobalDistObj, assignLObj:object;row,Lan:integer;0 i6 p8 @4 o: U" b
do$ V6 T1 B8 j2 c6 `- n0 n, f
        Lan := rootfolder.Internal.Tools.AOLlanguage;) O( l  X3 a# h8 z9 z4 Z9 ^& M: ?
        if current = @.Destination -- else return
7 w: o4 G1 b' Z3 i! D        then
0 y0 M, r4 h2 I2 |, ^: _" |                @.Destination := void;+ V% W2 _8 z  g, S. q1 d
                if @.occupied then+ T" E& F: ^4 u" l% W1 I
                        part := @.cont;% q& [+ |2 `/ ~4 P  B; V
                        @.transpOrder := void;5 r6 ]/ M; Q2 ~* N4 m
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
: G: N) l! {7 e. o) K6 W/ M2 a                                @,root.eventcontroller.simTime);0 S  h* D, }+ S- T: R
                        @.HasOrder := false;
$ l4 I2 a- S6 ^0 U  Q                        @.DrivingHome := true;0 {! L! x- j; o. ]
                        rgManager.tryToStartTransOrder;
' |! i1 j7 v9 ?, Q3 Z4 u                        if @.Destination = void$ \( c9 ~4 h  C" M" l! S& t
                        then -- no transport order for vehicle @
) Z  p! g' ]; G! a7 l6 x8 u0 b. Q0 c                                @.Destination :=
/ q  {) {- o: s+ _                                rgManager.nearestFreeStation(@,track.~);8 {9 o6 s+ T! V0 e% y7 t: l2 F/ I5 e
                                newDirection(@);   
; i# t" p& j0 J+ L( a                                if @.Destination /= void then
, B+ ]4 x: R  D                                        @.Destination.NumReservation :=7 Z& w' t0 ^& y, i4 F* K* z# R/ Z
                                        @.Destination.NumReservation + 1;+ V% t, T1 q- X  h# H6 d
                                end;1 V. b( i3 z+ G7 l% |
                                @.CurrIcon := "drivingHome";
# V- x; ?# G7 l" L                                @.DrivingHome := true;
7 ^# h$ J, O) Y) h$ f                        end;8 m. c! m, _/ X) w4 E8 X
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station3 P! U7 R9 Q9 ~; U4 N3 w1 p
                        part := @.transpOrder;/ a6 J2 g% \0 q- r+ Z
                        part.move(@);-- load part
2 c$ K# m% B. z4 Z                        @.CurrIcon := "load";
. y/ p2 ?: K3 m: X0 ]# H; N; Z                        GlobalDistObj := part.globDestination;
$ S8 l; [% X: l& T# \, x/ j& V                        assignLObj := rgmanager.rgAssignL;1 y; N4 W: Q0 y1 A
                        row := assignLObj.getRowNo(GlobalDistObj);" U- w( W% U* a, ^' ]% A
                        if Row = -1 then -- since 70
9 o! ^" i3 G5 `* q( `* g9 p& |                                if lan=1 then6 X4 q" Y7 l) p) n" F( o
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),. R2 B% A4 w( y8 U  W# g
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
) F: Z& Y) O& Z% r* Z! F9 F                                else1 Z- z9 |+ P' A! j) g+ {6 d. {
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
* p* I: p' ^8 A. H' j- B                                                to_str("in docking station: \"",?.~.name,"\""));                                . c" ]+ ^1 ]( o6 x
                                end;
; {; c5 B0 A( M5 Z                        else( M( f  r. ~: f2 E% n6 ^( M7 l" H
                                @.Destination := assignLObj[1,row];9 X* ?0 l1 c5 a) N4 b9 t3 g
                        end;                       
8 W7 |1 `  l. S, a                        newDirection(@);
" p9 }" j. X( D+ T9 R2 k4 [                        @.HasOrder := true;# j+ H6 l. `% q
                end;
2 E* ]+ b$ g: k) f0 |2 s0 @        end;
# R- x# N# ]2 ^# send;        -- of the method
2 Y% W3 d) V- l  f, E7 j( h. I
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
) y: `- n, }. r1 i+ p3 B+ ^
' X; ^$ ^: L5 H% e这是AGV_putin中arrive的method。$ y# ^3 ^7 [' W
3 h  b- w- N3 R* |! X% V& ^5 g  U
当到达物料速度越高时,这个报警更多,
. V( V+ [5 S6 g可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。5 @9 d, j; X! _* @
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
8 x5 f3 G) v  s( R. u, n/ Z
$ v- T( \5 Q1 W( m' V2 }另外一个小建议,就是move,所有的move都可以这样9 E# _9 D7 W4 \, b
if not move() then debug end
& L7 w4 `1 F3 J9 F; y这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
' B4 ^: N) F; ]' l( Z' Vplant simulation中的free libraries有AGV模板,( L1 ^: }& V# C5 ~9 |- x
里面也有案例。& a5 S" i' P% c! f! C
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
6 U# M: o0 \6 v/ W- @
7 ^% H3 G+ t9 W$ Q" X. {$ a我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
  u4 w. x1 D. Q- j" g. k7 V& K2 z9 w. p0 L
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 6 G* Y$ ?% X0 R% u
这是AGV_putin中arrive的method。
) j6 k$ }+ k) x5 \) k# b
) j( Q6 H+ O8 t9 f& V当到达物料速度越高时,这个报警更多,
6 D7 M- D! M9 f  Y1 B4 e
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-16 19:58 , Processed in 0.024026 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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