设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7471|回复: 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'
' I  |* Z# ]9 W. a8 R*/+ r( {& D4 g* [  Q4 S1 \6 m1 M
is
  [7 n( _) P8 S; `2 m        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
6 d. V* }& @/ C: X2 f5 B: Zdo
- e, z" O3 \5 a% U        Lan := rootfolder.Internal.Tools.AOLlanguage;
( F9 x5 r3 h) v6 M0 b3 j" A        if current = @.Destination -- else return( ^' |) H+ C' A( b9 {
        then  |) C3 G0 ~2 i
                @.Destination := void;. ~% Q) P" ]! ~. H- p! R
                if @.occupied then
/ d/ a) ~( A3 u3 [( d) H& e                        part := @.cont;$ Y( `1 l8 S, }
                        @.transpOrder := void;' N' i! R) u+ q4 Z2 C! c" i
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,$ ~) \2 P% t1 d0 a8 \
                                @,root.eventcontroller.simTime);$ X  S, ?1 t# K' i
                        @.HasOrder := false;
/ T7 q# ]: }9 `! s                        @.DrivingHome := true;- G, z4 X, i. b# Z# ~% N# p- t' Q
                        rgManager.tryToStartTransOrder;" |) [! ^% E2 I: i& F+ f  ^1 [
                        if @.Destination = void
9 l0 C7 T# l8 ?0 @1 g( E2 K6 K                        then -- no transport order for vehicle @
4 t. O0 c% w& D, c  J                                @.Destination :=% @: z" a$ ^1 g; W
                                rgManager.nearestFreeStation(@,track.~);9 b+ F8 b# I  c; t8 z+ _
                                newDirection(@);   - Z- f. M. N6 _
                                if @.Destination /= void then8 h+ Y2 d! H! O) f
                                        @.Destination.NumReservation :=* P' t, G& o) h* P/ @  m
                                        @.Destination.NumReservation + 1;3 w1 y2 D( w( O# r% v
                                end;
2 ^3 s: q; u2 m5 a+ p7 R4 x* _# O                                @.CurrIcon := "drivingHome";
, _) N' \1 ~6 j1 @" N* e1 n: ?                                @.DrivingHome := true;4 ]: {: a* ~* }, r% c9 ~; \
                        end;$ i3 ?$ Y# s; U* j
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station* T4 E. c. }8 e1 Q5 Z1 V
                        part := @.transpOrder;) i/ Z) l! R# r" B# D( x
                        part.move(@);-- load part, I! {; w4 O' p
                        @.CurrIcon := "load";1 X  h6 G1 w/ i8 }
                        GlobalDistObj := part.globDestination;# m( Q! a  T$ {$ s
                        assignLObj := rgmanager.rgAssignL;
% v9 i6 W: ]# e1 Q: q2 d( [                        row := assignLObj.getRowNo(GlobalDistObj);+ ?% t& ?2 ^6 @: y! P) a. ~+ g
                        if Row = -1 then -- since 70
( A! W! W5 f$ _, Y9 a5 B                                if lan=1 then
1 A' [4 x& J% `4 i: o' |% s- d, h                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
1 q* [' [* j) {( ~# s; F+ [1 A8 S                                                to_str("in der Andockstation: \"",?.~.name,"\""));/ C+ ~  ?" |$ V& s/ R( [  u
                                else
! Z7 Y- t; R. h: p  I: p                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),! x9 H  y# j% \4 \4 J- s, M
                                                to_str("in docking station: \"",?.~.name,"\""));                               
' d. c6 l4 c% T1 \% Q3 M                                end;, L# k: D- d% k% o+ c
                        else$ b  c- _/ y  L
                                @.Destination := assignLObj[1,row];4 F. Y* y7 E+ ?$ s! y
                        end;                       
7 ], ^: Z% K2 j. t8 ]+ C                        newDirection(@);
+ a. \9 m* q4 N7 J8 J6 R8 G6 p+ ]                        @.HasOrder := true;! w5 S& o0 g- Q, m* N
                end;
) y! T' V9 F4 y# c: ^/ d7 X& J5 c        end;: F4 k( e) f1 J6 R$ h; d
end;        -- of the method0 N) m, T& g! Q7 V
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
; T2 |/ c6 e, K0 C% T  N( x9 a* ^5 C: }- [. I6 b: _
这是AGV_putin中arrive的method。
1 `# I; k3 r2 Q8 X5 i' }0 h, q  v8 V8 R# q# {
当到达物料速度越高时,这个报警更多,9 O; D! c% ?% O
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。6 P8 I" }! {) i2 J( S6 k4 s' D* U
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?1 U, m( m; E$ m1 c% E4 B

- ?# |( o4 J6 I  x' m& B6 r2 ~另外一个小建议,就是move,所有的move都可以这样0 |" J& l+ C6 H; g, R5 b
if not move() then debug end5 g7 b; P6 {. G: {$ s3 B$ {2 s
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
% C/ _' _) N" D& ^; |1 mplant simulation中的free libraries有AGV模板,
# m0 i1 E# m+ |' `6 _  o里面也有案例。9 U+ _5 i6 |1 I" @& c9 o9 h
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
0 X) n1 j* i* U8 |. L( c4 E( b' V) R) H% Y
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 . N! D2 ]( B  h8 o: _/ _# f
0 P9 K) ^8 e8 d$ c3 b4 h
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
9 v& {4 M# h, d) `  l6 }7 k; E, _这是AGV_putin中arrive的method。
3 E% F5 t, a9 H- Z0 E, }9 ]" E8 L8 `+ l$ t! v8 c; Z
当到达物料速度越高时,这个报警更多,
- I. n( D# i- ^! ~2 v2 @3 {( `( x
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-13 11:12 , Processed in 0.020834 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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