设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7476|回复: 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 a0 U, F9 Y4 `. `7 X
*/7 f1 y  y  R& w: E5 ]3 T
is( I) `) p9 w; C5 o  i6 ~
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;, @5 W0 p) h, U6 I8 q; A( U2 Q
do
2 c2 B/ {1 h, E6 r. x        Lan := rootfolder.Internal.Tools.AOLlanguage;" x2 M- h+ Y! C; X
        if current = @.Destination -- else return: Z" g7 U; t" O$ q% b. O
        then
7 F: J. y. ^7 n4 k                @.Destination := void;& `6 U- `& K/ E3 D$ ~
                if @.occupied then
. K* y" W$ v. b                        part := @.cont;) I6 w$ i$ Y: m
                        @.transpOrder := void;
4 X& M( ^* O$ ?; l" c                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,& k( h5 x3 m0 g- \& z7 C0 U* _0 F7 ^4 @% T
                                @,root.eventcontroller.simTime);  M) l/ j. Y( @2 m% V# e  c6 e2 p
                        @.HasOrder := false;
# \; _5 p& C- A. @5 B  o% }0 e8 h                        @.DrivingHome := true;+ J2 `0 I. ^% T2 J
                        rgManager.tryToStartTransOrder;; q( W% ?9 p' \) p- S
                        if @.Destination = void. b6 B/ z7 @; ?1 V3 o6 p
                        then -- no transport order for vehicle @8 ]' j0 }# w# k/ h6 B
                                @.Destination :=
# d9 n' W! K- X- l7 h                                rgManager.nearestFreeStation(@,track.~);
/ I" z- C3 e& Z3 {5 V2 s% @                                newDirection(@);   5 x; Y0 A4 D4 q: d( U( _9 B5 K
                                if @.Destination /= void then; {2 ?8 W1 w' a
                                        @.Destination.NumReservation :=/ @4 W9 N! Q  s0 Q, k9 y
                                        @.Destination.NumReservation + 1;+ a% J) R; O' ]4 f/ P
                                end;
! N! D1 L$ V3 `) N: |) J! w( a4 U! I: L                                @.CurrIcon := "drivingHome";
# H1 [( w; [  f5 v. O3 y5 E- s0 v3 K& ^                                @.DrivingHome := true;
% n9 q' r& G; Q$ t+ A" ]: `0 Z                        end;; X: X+ L) }+ f0 P+ f0 W
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station" J8 U* _: b: W% r: K1 B: r
                        part := @.transpOrder;
/ D% W1 U& Q/ N5 u$ _                        part.move(@);-- load part7 N1 _' M9 w  k% k( c
                        @.CurrIcon := "load";& X8 x& ^: a% l* y# b: [; L* b
                        GlobalDistObj := part.globDestination;. ^! E! Z& K& B/ k" B9 q! r; ]  ]
                        assignLObj := rgmanager.rgAssignL;
0 ]# `" r  r1 b2 k6 @                        row := assignLObj.getRowNo(GlobalDistObj);1 T1 l. I* X/ v. G& b
                        if Row = -1 then -- since 70% Q& y& Z4 t1 c8 e
                                if lan=1 then
. `2 B) @* s' c+ F+ g" E" L                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
: @  d: |. @7 G: x6 s4 e) }                                                to_str("in der Andockstation: \"",?.~.name,"\""));
$ W* L6 [1 }, [) D# r$ b                                else
/ ~2 j- y; [4 A& j/ l0 u% |& K                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\"")," l! u6 F/ C# v+ r( M: C; ^
                                                to_str("in docking station: \"",?.~.name,"\""));                               
  k( e4 z( |& _: h; }0 F- v7 t                                end;3 U( P$ [. l! ?" d: P
                        else
7 e1 r0 g1 a4 V                                @.Destination := assignLObj[1,row];
  K' F" h2 X  u+ W5 i* @                        end;                        ! ~/ L, u( j* F% |6 {" i
                        newDirection(@);
  f) g3 L' ~* M& Q) f5 `  Q& o" k                        @.HasOrder := true;* h8 z6 [$ [+ R( {/ k
                end;
2 ^: l" f$ y& t1 x        end;) \' @* U% J5 Q# i4 X
end;        -- of the method1 b; Z6 x$ S/ k, B' O+ X$ x: {
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 % |2 y! o8 H( H2 v# ?0 h

" t% R. y2 K3 Y8 |; e这是AGV_putin中arrive的method。
% u" b8 B7 |; U: S( ]+ f: I& y2 d  k2 e* n$ g) r
当到达物料速度越高时,这个报警更多,
' E) T$ q8 R! V+ ^- h. @可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。: m: @# o/ r/ C
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
  {( r  }0 a! u! Y0 ?: g* A" V+ G! \1 S  x
另外一个小建议,就是move,所有的move都可以这样
+ `. N7 }5 `! [0 C4 fif not move() then debug end
3 v- a1 {) m1 S+ _- c这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
( ?* F/ F# \5 v6 _) b4 T$ mplant simulation中的free libraries有AGV模板,6 q0 G- I4 X4 w( d9 ]: H; }0 l
里面也有案例。# E5 f% w, C$ {& b5 q6 Z: s
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
! O" k4 a. i+ b, H& K0 K7 s* g" Q; o1 [5 ^
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
8 Z: h) g0 v  W) _
* D, ~( G# v1 G9 Z那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
+ q9 k2 M& B( Y+ X% p这是AGV_putin中arrive的method。# p. ^# m4 P- B

: g' A( V+ \' P3 b- t2 y当到达物料速度越高时,这个报警更多,
, T5 N* f9 Y) a$ b# y( B4 v
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-13 16:58 , Processed in 0.030987 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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