设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6106|回复: 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'9 s8 U& [+ n$ v
*/9 F1 u- U  L1 ]9 I& n$ X2 |/ o+ E& t
is. C; B+ n' a- d
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
1 Z/ H7 p$ i% udo, t) [9 K" L  D! B
        Lan := rootfolder.Internal.Tools.AOLlanguage;) q9 p1 {: o/ D+ T
        if current = @.Destination -- else return2 Y8 {# K  `9 p3 j! D( f+ t
        then; w' r  Y- [; O$ C2 H
                @.Destination := void;
# u  F% Q/ t9 t2 J% P, I                if @.occupied then6 C& W- k" K' _3 T
                        part := @.cont;5 W* u/ f2 @3 a9 {
                        @.transpOrder := void;2 F8 u8 b7 q1 s0 k3 R
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
8 s- D/ p( z5 n$ q% W1 \  W                                @,root.eventcontroller.simTime);
# T1 m. P: X" A! G1 t" I# g4 E5 Q                        @.HasOrder := false;
6 ]1 b+ U. b* U$ k1 `1 w$ j7 g9 h                        @.DrivingHome := true;5 r, G+ Q3 v3 F# S9 k" S
                        rgManager.tryToStartTransOrder;( y7 [! ?3 u: {
                        if @.Destination = void1 d" Z$ e) o! m3 }
                        then -- no transport order for vehicle @0 v# S- m+ i) M0 v+ {0 c5 |/ ]  N' j
                                @.Destination :=0 ^# H5 ~! }& _! E6 H
                                rgManager.nearestFreeStation(@,track.~);2 U. p+ O$ ~( n. V) X1 F0 z
                                newDirection(@);   % c8 ?$ k, w' |  N- w
                                if @.Destination /= void then1 @, L& l) M4 ^3 \' |
                                        @.Destination.NumReservation :=' O- Q1 U2 ^2 q3 I7 I+ E) @; @
                                        @.Destination.NumReservation + 1;9 X0 B, M9 e3 I, i: R
                                end;0 G  G+ X. `4 S" V
                                @.CurrIcon := "drivingHome";! [' J9 R. Y& ~, d
                                @.DrivingHome := true;  ~5 j( |9 t! s, `, |* D
                        end;4 ^# D& E) q& Y1 c# z" _
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
$ l" c4 g! h) j7 f% ]                        part := @.transpOrder;
7 [8 L5 P: ?- i                        part.move(@);-- load part
$ c# h: Z+ g" I" x: h3 T                        @.CurrIcon := "load";
( h: s( ~4 I5 ~0 L# S                        GlobalDistObj := part.globDestination;8 J% w: O8 {" F! E% `! E; a. a: d
                        assignLObj := rgmanager.rgAssignL;2 ~, `# U$ q: d* N4 i
                        row := assignLObj.getRowNo(GlobalDistObj);( }6 P, r2 E$ S8 w
                        if Row = -1 then -- since 70
( k& n' a1 Z, Z1 y; S# T                                if lan=1 then; ]; i# t6 Z% Q9 G! z0 E
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),+ a: ]1 G  j" V0 ?9 m
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
# q& ]4 n6 I: Z- d4 j                                else7 S5 n) m3 U# B2 }/ `  L
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),' u! `1 j, S4 B% o% _# ~
                                                to_str("in docking station: \"",?.~.name,"\""));                               
: b$ m1 f- }1 r6 C8 D& m" C, V                                end;0 F9 @2 J1 d# t- y1 b+ V  e( D
                        else
# k% T9 ~% ]# ^$ i: T, r# u                                @.Destination := assignLObj[1,row];
, |; X- C3 W' a9 j                        end;                        9 o' k; o, w  q4 I' w7 b: h% V
                        newDirection(@);
2 Z9 B0 M/ Q9 P+ a8 |. h                        @.HasOrder := true;. E2 N; ]# M; Y# U2 P; C2 |
                end;
3 n1 I/ U9 V* x: J" l5 @; u, V        end;
5 n5 a' x* n4 M: y/ \  z8 q& z3 Uend;        -- of the method4 I9 S: s" }, z. v
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
# X5 J5 S; G0 b% A% L" u- o" p' V/ s# l7 z
这是AGV_putin中arrive的method。% {) Q1 f; A2 A  J: Y/ `" Y
# C* W8 B4 p. j. K) q( T- D
当到达物料速度越高时,这个报警更多,
1 E$ m+ m, ?# Q) M6 z可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
/ c; m2 {5 d2 ?  K* G: E4 d- t程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?' b( `  M0 {  C, b; S+ g. ]6 D5 Q

, c: @. Q4 i5 P% C, U另外一个小建议,就是move,所有的move都可以这样
8 x4 k  O' m( N/ \4 v- B# Tif not move() then debug end
9 C0 \: i# r- s: J3 g' G2 q, q这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
0 j$ a: |3 |: {: ?! M* @% hplant simulation中的free libraries有AGV模板,/ p0 i9 M; h7 `( V+ X5 C" l
里面也有案例。
' B0 D; R) @8 c- i. @我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
/ c  Z4 i! k1 r/ N+ J7 s7 \% G: M0 Q3 q' A5 k) v
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 2 P0 Y$ _% R7 L/ B- z6 G# p# C

+ O5 \" q! l. ]( {( a0 r那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
- y% _# A- W  K* |4 y这是AGV_putin中arrive的method。0 }! z6 x/ Z" L# }( Z
7 C% ?( z1 K- s' q7 E6 W- C
当到达物料速度越高时,这个报警更多,
: [7 B( D( }1 i( w( c8 h, O
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-18 20:51 , Processed in 0.019553 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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