设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8560|回复: 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'- s0 I( y* _5 d- |$ a+ |" q
*/
- w, D8 @5 B0 R) H4 ois
5 N$ L& X' l5 \8 [1 v8 ^, L        part, GlobalDistObj, assignLObj:object;row,Lan:integer;$ M; R6 F; t  g+ S
do
4 [+ s2 L" `2 j  {        Lan := rootfolder.Internal.Tools.AOLlanguage;: Q5 \  K' R- y
        if current = @.Destination -- else return" E, Q3 \5 N0 @! ~- b
        then
0 A1 R( z. j: i/ A( n; W                @.Destination := void;0 |( n7 T, j! I- O7 y
                if @.occupied then6 J3 z0 d' I+ i8 o5 ^5 F- W- w9 l
                        part := @.cont;& U5 s/ j9 ^, q- I5 o; B
                        @.transpOrder := void;: Y* s% I! K+ Z
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,! y! g1 ^/ P/ k* M2 h3 Q" F
                                @,root.eventcontroller.simTime);
& n/ g4 H& j( T: R- c                        @.HasOrder := false;) G+ U4 |9 k3 J- W. I: S$ L, J
                        @.DrivingHome := true;3 L. X5 i' G1 e6 h) P* O" I5 _! {( l
                        rgManager.tryToStartTransOrder;! |' x1 ?( {( A
                        if @.Destination = void
6 V9 v( }3 B8 Q% F* y! `& J                        then -- no transport order for vehicle @
7 B& [5 w" u: o% M                                @.Destination :=
( Q* l$ n3 Q; {3 o' @! n, o! r# [: {                                rgManager.nearestFreeStation(@,track.~);. G# N. m. @4 r# N! {) ^7 [
                                newDirection(@);   $ F6 L6 G( W- k+ R  G
                                if @.Destination /= void then6 B* |2 g# u. k8 F- m+ A
                                        @.Destination.NumReservation :=+ l! s7 y  f0 s& n/ ~
                                        @.Destination.NumReservation + 1;& w* A1 n, {$ S' V8 b3 {
                                end;
$ s# s( l4 l4 A, w6 x+ S5 n: J                                @.CurrIcon := "drivingHome";. q4 Z/ L  {" d. ^! @2 `) s
                                @.DrivingHome := true;) s! X4 g% \: s
                        end;
: O7 i. V: G9 q- S2 U' M: A3 T                else -- the vehicle @ is empty, both vehicle and part are in the same dock station2 p$ E/ Z% F. M/ J5 F2 j4 d
                        part := @.transpOrder;
  J3 V% l/ L. x4 H  n& _                        part.move(@);-- load part
+ n( `. g8 W3 ]5 n7 w                        @.CurrIcon := "load";
3 O1 a% T0 Q: r$ F                        GlobalDistObj := part.globDestination;
6 N1 N- E) t" g6 z% C. Z                        assignLObj := rgmanager.rgAssignL;
( F  \. O7 n  F9 W                        row := assignLObj.getRowNo(GlobalDistObj);/ T: u3 G. Y1 ~9 [1 V+ I, W
                        if Row = -1 then -- since 70
  @- m( i0 G5 m6 _+ |: ~* u                                if lan=1 then
' m) ?5 B/ D$ A% U6 S) U: }                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),4 h3 E- Y  O6 \: v" w& g3 c
                                                to_str("in der Andockstation: \"",?.~.name,"\""));% Z+ L& L) o9 C+ Z# P, E9 }" k
                                else1 A4 E1 v/ A, Y# E  u7 G
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
" m  `6 A4 D7 N# f! i1 m                                                to_str("in docking station: \"",?.~.name,"\""));                                . ?+ l' g8 |# P3 W8 z( b
                                end;
; z9 y; g4 \4 _                        else- m/ T$ x5 f0 w0 I8 m' V& S6 `
                                @.Destination := assignLObj[1,row];
5 r" G* a6 R/ {9 n6 X. i2 V                        end;                        ) O; [7 x- q' d
                        newDirection(@);
. w6 s2 l; s% d8 C4 b( `0 o! S                        @.HasOrder := true;1 w9 ]9 g6 Y: E4 z+ @: q+ c0 l7 x
                end;
; t/ Q$ P" B1 M; k. `        end;6 q! ]9 }7 r" R% h3 S
end;        -- of the method/ @- x: t' J. Q+ J
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 3 d" X* r" u$ ]! g9 l) T( t

) |$ Z# `5 P9 \& B* U这是AGV_putin中arrive的method。7 f, ]0 y( n0 d
8 q2 X- L' ]. L
当到达物料速度越高时,这个报警更多,
+ o8 ]) j' l4 [0 k* l" ?! w可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
6 @1 L6 p; D$ Y7 H7 z1 x. a  D程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
. n0 f" W: a4 h2 @0 ^- L1 f6 t0 M4 m+ n
另外一个小建议,就是move,所有的move都可以这样
" l( a! b  o: t4 l/ a3 y" N# l) E; H2 Lif not move() then debug end
7 R  J/ X7 @8 _; O这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。  q" g! G3 k  ]& a7 N: K
plant simulation中的free libraries有AGV模板,
+ O5 o' k4 g7 C. A1 v( {$ X1 g里面也有案例。$ f# e7 T2 B* _& _
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。6 V. R. H# U) X& k0 E
. ?1 _; F: c; u
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
1 S5 Z$ ]( Y  a% A$ x0 C9 ~& T# s( m: v3 Q' F& M
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
8 {2 ~. i! j) r9 X这是AGV_putin中arrive的method。) {; y: P$ f" f9 t# |" @0 g& n0 _! y6 n% k

  _. f$ n# p. I3 U& M7 m2 n当到达物料速度越高时,这个报警更多,
$ K0 G; b( q& E
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-11 21:18 , Processed in 0.014352 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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