设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6427|回复: 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'
$ ?! r3 D# c4 t0 l# u% h*/
- y) j* u; z: N& _1 c' t8 j$ zis
' l6 e3 R/ C% `0 J        part, GlobalDistObj, assignLObj:object;row,Lan:integer;8 K7 _3 [/ m  j2 F% w7 r: z2 K, z
do
5 w' l) W7 [3 L7 Q' X; A: T9 G+ u        Lan := rootfolder.Internal.Tools.AOLlanguage;- K% R3 {% N  ?- \0 V# x5 M$ S
        if current = @.Destination -- else return" a$ @* s( H+ ~- p/ I  X. |$ L' Z
        then8 V/ C# f2 U1 O% d: y/ ~
                @.Destination := void;- Y$ n# z6 p" e$ H+ f  H
                if @.occupied then+ t2 y5 \5 u6 R1 v* ~* I
                        part := @.cont;
# \* {/ Q  N1 ?- t4 x6 L/ J                        @.transpOrder := void;
7 k1 m! m: P4 T  D                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,# }& ~& z1 I8 u, B( `  O1 ]+ S2 H
                                @,root.eventcontroller.simTime);
4 s/ c" o  C5 g, H9 D. D8 w8 n                        @.HasOrder := false;
& E: S. T! Z& |* [/ y3 ~" @: n                        @.DrivingHome := true;& X2 z$ u" _, j
                        rgManager.tryToStartTransOrder;
3 s$ {" B6 B. ~4 L2 |* |- V* P' K# C                        if @.Destination = void* I- j1 F) W/ t
                        then -- no transport order for vehicle @
* U# s( T/ P, U' ]1 s* D) p                                @.Destination :=, F: ?2 x) n, p6 s9 @  v
                                rgManager.nearestFreeStation(@,track.~);
0 |( c+ `8 \0 h7 n: y                                newDirection(@);   6 \8 u# C7 B4 O4 J' F
                                if @.Destination /= void then% F9 Z8 c# A' F+ b& a
                                        @.Destination.NumReservation :=
0 {' [: {; x7 I) r, Y                                        @.Destination.NumReservation + 1;
6 H! x- ?2 q+ N# m                                end;
9 I2 Y" F' _1 w( s2 S                                @.CurrIcon := "drivingHome";  u' @7 C( b+ k
                                @.DrivingHome := true;
4 O, f9 P1 r+ j' b7 }4 x                        end;! h5 J+ Q- C1 r6 X" ~
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
# x* t: G, J$ h6 s                        part := @.transpOrder;8 K, t0 g$ h* k) J3 P  f8 d9 M
                        part.move(@);-- load part
$ y0 S0 v/ Y4 p, p. \8 r                        @.CurrIcon := "load";
" u! S5 M7 Q! S4 c9 B% k                        GlobalDistObj := part.globDestination;
# \3 V2 S0 [* F+ O                        assignLObj := rgmanager.rgAssignL;) B4 |- u% N; V4 |# ?
                        row := assignLObj.getRowNo(GlobalDistObj);
2 v% a% s9 u4 Y& p                        if Row = -1 then -- since 70* w- Y! X( t$ o( G7 Y
                                if lan=1 then/ A% T, z+ K/ t1 T) Z
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ A2 _3 E4 `4 k& y. F+ M) a                                                to_str("in der Andockstation: \"",?.~.name,"\""));/ w+ ^9 c' I; Y2 |9 b9 s# Y6 j
                                else/ U9 \( m; A7 k  X' `& T9 u% p
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
0 U& L( n+ z+ D+ @6 S4 e                                                to_str("in docking station: \"",?.~.name,"\""));                               
- N0 ~/ J$ A9 I/ V" o8 q                                end;  D, W& G* H% C; q5 V# l" q4 ?) L
                        else
1 z8 d5 _' }/ b, v5 r                                @.Destination := assignLObj[1,row];6 S$ J+ r* G4 J
                        end;                       
  K4 [) A, A* @& }                        newDirection(@);) o6 @& Y" ]& u5 B
                        @.HasOrder := true;
! Q, ?/ N: \$ I. y/ H1 x9 k* {                end;; s$ `1 t* w0 B! A7 j  g' o7 w( Q( T
        end;) h8 L$ _! Q& x& _6 x% s" j7 f
end;        -- of the method) ~: e% l0 D3 D/ m
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
" x* @' g7 r- s4 {, e( W7 B
0 ~# r, q8 M0 O这是AGV_putin中arrive的method。
/ X7 \+ W+ m5 R4 j1 S$ X; o
5 r9 }7 k, P% l: X% I当到达物料速度越高时,这个报警更多,% {' u# v9 d( J$ I3 {' q3 O( L
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
# `" _# P+ }. C1 X& l程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
$ f$ F8 w5 S9 _0 H3 a: v. O* ^4 d9 @; O' U" |& x" W9 V
另外一个小建议,就是move,所有的move都可以这样
/ N! X% N7 a- b3 c: lif not move() then debug end4 T$ a0 ?3 j& N
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。% \4 c' H" D5 ?! A1 ?
plant simulation中的free libraries有AGV模板,2 f% j1 K% x: R2 ]2 `" O% J; r  l
里面也有案例。
: n0 k* t" j" a, u3 V* x/ T我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
- J3 ~# X! ]5 S; i; N3 j; w" c( }
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 1 h9 {( E& w3 {/ m7 d0 n4 D+ I

: g2 C8 G  W" G( J2 c4 w9 b  J那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 8 N$ J+ _9 I& O$ ]& A/ U# `7 Q
这是AGV_putin中arrive的method。9 ]2 |$ s/ P/ e0 Z

* R! Y! J1 A. V当到达物料速度越高时,这个报警更多,
, X# w" ^# d; z$ B, }: e
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-6 01:35 , Processed in 0.018093 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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