设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7155|回复: 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'1 r8 S, b" W8 @- u! {
*/- M! R; q- [1 u. R0 C' f+ K. S
is
# [" }$ B2 V; l" e. I, ^, p+ N, D        part, GlobalDistObj, assignLObj:object;row,Lan:integer;0 K$ d& a$ B; x8 p
do; }- M; k: h% ^  k8 V# q+ v
        Lan := rootfolder.Internal.Tools.AOLlanguage;* L8 K7 K; z8 z8 w8 w  A  Y
        if current = @.Destination -- else return0 M2 y: h1 {) D, a! r
        then9 J7 C9 n6 c/ F5 E
                @.Destination := void;
6 o  m' Y/ D% R" g! l                if @.occupied then
- e# ?; R9 {2 V4 L                        part := @.cont;) Q" E- ]% \' X
                        @.transpOrder := void;  g3 U: I, E, l' g" ?
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
# x0 t9 l3 q6 p6 ]2 r1 U                                @,root.eventcontroller.simTime);
! k- R: M0 M2 Y( K                        @.HasOrder := false;
1 {& [9 [* X! i+ h: Y+ r- w                        @.DrivingHome := true;
$ I0 D+ D5 W8 j6 i, l                        rgManager.tryToStartTransOrder;5 G9 Y  B2 J/ W( {8 p* T  _2 H
                        if @.Destination = void
  R: O- Z; \& s( {3 B' d                        then -- no transport order for vehicle @
% f0 u. c- Z9 w" }* x                                @.Destination :=- |6 x, w4 W2 F2 V' W
                                rgManager.nearestFreeStation(@,track.~);& C1 ?; R6 L9 e; J
                                newDirection(@);   6 d7 [6 G- l8 d: A) y6 G
                                if @.Destination /= void then
6 ?; q5 E) n  ?+ Z( ?1 ?                                        @.Destination.NumReservation :=
* `- s9 s$ n, W, P& u8 ?0 b                                        @.Destination.NumReservation + 1;
, n2 |* h+ F: s1 ~                                end;
/ q8 ^9 `) t' v& o  ^; i" `# R( o                                @.CurrIcon := "drivingHome";9 c4 W7 v4 c2 z! J' E' ~
                                @.DrivingHome := true;7 w0 f1 a, d- o5 b
                        end;, b+ |& T: B: p0 D/ h0 U. _. w
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station" _7 T; g3 u' I# K0 a; a# o
                        part := @.transpOrder;* d& U9 r0 a* i5 H
                        part.move(@);-- load part$ k7 i. [/ h0 g6 P" h
                        @.CurrIcon := "load";
) g2 C% D' ]- C                        GlobalDistObj := part.globDestination;. H8 ^' |! |: Z  S' S' O0 v# Z/ A  n
                        assignLObj := rgmanager.rgAssignL;
4 e8 {+ R- N7 `# o2 ?& ]( J                        row := assignLObj.getRowNo(GlobalDistObj);
4 n* Z7 i8 Y! @                        if Row = -1 then -- since 70
  z0 K- J5 H  @0 y" a1 {                                if lan=1 then
) |( I# E. N4 B- |# N                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ v7 a7 V2 H! j& a6 W2 H$ ?; k# ^                                                to_str("in der Andockstation: \"",?.~.name,"\""));
, J6 q# C. `4 v" ~5 @) a                                else
$ I. B! O' r% e5 ]5 f4 R                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
3 E8 u7 e- K# U, i$ h5 k  }5 u                                                to_str("in docking station: \"",?.~.name,"\""));                               
5 z( i) M) }& s8 a7 A                                end;+ B) s& b  D# B! B
                        else8 d# Y1 D: C: w( p0 K
                                @.Destination := assignLObj[1,row];6 ^* j) d3 o- s& j" i; D
                        end;                       
" `: Q5 H! E9 R$ |3 i" Z                        newDirection(@);" Z  t, ~. B5 t7 f2 ~/ f
                        @.HasOrder := true;
% S) A2 j' T0 D' O                end;
& ^8 g' [) ]8 k6 A6 s5 v        end;
1 O, b) G3 M4 |1 m+ j. S9 Q1 ?8 Nend;        -- of the method, X3 U9 ]  g5 ]' N
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
/ I2 i! g" e3 ^% |9 S, d. ^8 j& o/ J7 G( X4 r
这是AGV_putin中arrive的method。
. T8 ?& y) _$ Q0 {8 V2 e5 @
$ q& J/ A% \2 }6 k- Q* V6 p  T当到达物料速度越高时,这个报警更多,
/ H2 W2 V5 k7 f+ s( v可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。8 N0 I4 Z4 o( Z# ], H
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
* \# W5 W: H0 @( t, s" o9 K& [. e" N( J; ~) j5 h( p
另外一个小建议,就是move,所有的move都可以这样8 [" \7 c9 ^; F# W0 _& y
if not move() then debug end4 j& k  g; Y# J+ ~8 i. N" h- I
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。+ ^" l/ U! \* H5 s1 U% E  c6 b3 j
plant simulation中的free libraries有AGV模板,
7 I) _- |* ?7 G" p/ _: U2 u: r里面也有案例。
9 \+ S( R- |* Z2 ~+ n! v* ^我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。) _: l' B9 Z* {2 E6 v3 N2 p. P7 O

6 E( m' X0 p( _1 N0 W* o0 b我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 3 Z3 g+ j& R, s. F, t' ]
9 ?, B* r6 f% S; \# b
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
; i4 T. p# U- t- f  d: o这是AGV_putin中arrive的method。2 I1 B6 \7 o, Y8 }

2 Z& v& U! C3 D当到达物料速度越高时,这个报警更多,
) g. O/ E# m1 K* f" \0 ^
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-22 16:46 , Processed in 0.023321 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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