设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7901|回复: 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'
- ~/ G, |  [( i" J: w2 b; \*/. S7 h' A( f) X! a: J9 Y
is2 j1 ^4 v5 R- b! P/ a; _/ m# N) \
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;+ ~" \6 P, V( e  t( c# d$ s2 ^5 `
do
; z4 E; j! ^; f, O0 C        Lan := rootfolder.Internal.Tools.AOLlanguage;! f& p' K/ i$ X6 G. L4 r3 r$ S9 @
        if current = @.Destination -- else return4 P6 T$ ~: N+ g2 \# y) I8 c8 k
        then" |8 V( _& ~) o6 f( x* L0 j
                @.Destination := void;1 W# [3 Q6 {/ \1 s2 K
                if @.occupied then2 W' u! z* P# u. y* F. f8 B
                        part := @.cont;
* ~8 W) _' K4 Z5 y: d, p  Y                        @.transpOrder := void;
$ ?2 c! ^# g  j" A                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,' ?% H/ j0 n9 @7 f9 Z4 E. f! S
                                @,root.eventcontroller.simTime);. F- I$ {1 Z2 B( T
                        @.HasOrder := false;. S( ^; x" M9 J. ]
                        @.DrivingHome := true;
; ?$ ^% b# }5 b) U9 Q                        rgManager.tryToStartTransOrder;8 Y" f$ R) `2 _0 R" A8 J0 ?( `
                        if @.Destination = void
7 v* L3 j6 f; O9 o- \  r6 o+ S! F/ ^                        then -- no transport order for vehicle @8 z) ^8 v' l0 q- I4 @" |3 v8 b
                                @.Destination :=
) |0 B: \2 E- ]! f4 j                                rgManager.nearestFreeStation(@,track.~);
* K( J* s/ u5 V+ X2 W6 q" s! ?                                newDirection(@);   , i" N  ]5 p& N9 [2 @$ v; a! U
                                if @.Destination /= void then
  X' A$ L  Y$ E( v) L7 j4 g                                        @.Destination.NumReservation :=
1 z: X' y; o+ O8 X6 Y- @0 ^3 b0 x                                        @.Destination.NumReservation + 1;9 e! m% N7 k. ~8 s- A
                                end;; i- K6 {6 W: I- X# J3 H
                                @.CurrIcon := "drivingHome";% F+ L1 ~8 U& ^2 c( }
                                @.DrivingHome := true;
  I4 q$ f6 Z1 q! ?' W# Y( s- z                        end;
$ V' p& n" D& ?8 p5 a) Q1 e                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
$ I2 p2 S7 h  r) E: {' X                        part := @.transpOrder;
1 e+ r* Z7 u0 [  Q9 ]7 c. [                        part.move(@);-- load part, F7 q& T) X; D$ F: J$ h. E
                        @.CurrIcon := "load";$ r+ Q2 F/ M  f8 D( P
                        GlobalDistObj := part.globDestination;
) k. O' V! [, Y6 ^; i8 a                        assignLObj := rgmanager.rgAssignL;
' y4 X6 `* y5 ~, m                        row := assignLObj.getRowNo(GlobalDistObj);
2 u9 ]2 T( i+ O* d; H                        if Row = -1 then -- since 70
" B5 m6 H! V9 M! B' f  z                                if lan=1 then
2 N2 k! q# s" }0 r3 _3 S                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),' V. J% t# e2 H
                                                to_str("in der Andockstation: \"",?.~.name,"\""));2 C1 U; ^! r0 I' S* H) y
                                else- K% m, g8 u( ~2 k( Q1 v6 W& _
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),8 K5 V+ h4 W0 G2 l+ P9 `: L" {
                                                to_str("in docking station: \"",?.~.name,"\""));                               
( }3 g$ ]: }. z( T  Y8 Q                                end;5 g7 J5 e: q) _' y6 t- S9 L
                        else$ y$ f* [1 b9 @# Z
                                @.Destination := assignLObj[1,row];6 V* p9 p, ]- h% g  d: T/ I
                        end;                        9 [/ O$ J  }- N8 b+ b- w
                        newDirection(@);
9 E7 |0 b3 F- s                        @.HasOrder := true;0 o) Q4 I! `( B; U* x
                end;
9 Q6 J6 o$ k/ @* ?        end;/ F- I# c/ j  m5 p$ u% Y  s+ ?' c
end;        -- of the method
/ i, Q. j8 [3 s% M- j0 o
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
- m/ d: n  X$ L: x! a* h
6 g* \8 b  O0 a3 v这是AGV_putin中arrive的method。) a6 B, P  p. |8 `& z- S

" p# B8 L1 _6 N; }5 q当到达物料速度越高时,这个报警更多,! P# ?& M* |4 e6 R
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。: ^5 X- K6 g8 q
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
! Y/ M- A5 w: R3 x
( W4 }# ]1 ~5 g' Q. G3 X0 _% i8 C另外一个小建议,就是move,所有的move都可以这样
' i2 I, q$ c+ a9 l- Wif not move() then debug end4 e6 t% }$ z5 q0 a
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
8 O: w* ^6 Q# \( wplant simulation中的free libraries有AGV模板,( T+ K0 V2 R$ t* S" o
里面也有案例。
' l7 y- }5 J$ ~' g+ {  d, z$ @我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。# }4 I1 \: p9 Y: w8 f0 K& U

: c7 j  L& Z# V! a' t- _2 O我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
& S- h! R9 n3 W3 |3 E& ]& R) Z; Q  Y7 b* C6 x5 S  j2 L
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 0 q6 r5 d* m) f2 I& m3 s9 R8 Z
这是AGV_putin中arrive的method。
! O$ {8 F0 \9 @- b
" d* ?0 N$ R3 B5 T' `当到达物料速度越高时,这个报警更多,

6 o7 B0 P4 ]  S6 d4 L/ O' m另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-4 03:54 , Processed in 0.019484 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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