设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8327|回复: 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'
8 D0 [! D$ Q. Z4 ~/ S! V2 X*/: W) L5 n2 Y3 {
is' R5 \/ u) w; @& ?0 @. I
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
8 Y, p/ E5 z; s7 p# p, ]* a& ^do
, T" D5 I  u3 `. {        Lan := rootfolder.Internal.Tools.AOLlanguage;, c" Y* y+ P1 T  A3 B
        if current = @.Destination -- else return! R: ^$ h. j; G) \8 N# g; r) y. O
        then
# H4 |. e7 k- f5 i7 ?( [% Q& P, z                @.Destination := void;
* U& L" O- x8 r: ~: r7 o6 O8 }                if @.occupied then0 o& x; c, i& S+ E- X. M5 L( I
                        part := @.cont;2 ]! }: s* \- m' p4 J4 @
                        @.transpOrder := void;+ F* U# w4 Q- ?
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,6 I: e! ?: D2 g+ N  ~4 U) ?) Z
                                @,root.eventcontroller.simTime);
9 R) O& ]- o8 I                        @.HasOrder := false;
: _9 v& [6 n& O& c( _, T                        @.DrivingHome := true;
2 ~8 U2 V. g6 `8 I: ^! z0 {                        rgManager.tryToStartTransOrder;( \; u! A) r5 J7 t* k* ?
                        if @.Destination = void
) |8 m5 z6 G4 Y( p- o1 p                        then -- no transport order for vehicle @' T" _  y/ k; ]: b9 o2 x7 ]
                                @.Destination :=+ q0 K. S/ _3 K4 M% E6 ]5 y
                                rgManager.nearestFreeStation(@,track.~);
6 T; I  e4 X# ], d8 F4 U                                newDirection(@);   ; ]) z) p1 F# H$ ^
                                if @.Destination /= void then* e- o( O, b3 v9 T; L6 w
                                        @.Destination.NumReservation :=7 p9 l; }2 {+ a5 o0 B2 ^
                                        @.Destination.NumReservation + 1;
& g. T. A0 M4 D$ y7 A8 g/ b9 n                                end;
+ @/ o  B7 b- ?0 a                                @.CurrIcon := "drivingHome";# a# j2 i7 ^" O# {
                                @.DrivingHome := true;
/ I  Z5 U" K! Y$ s! n! q                        end;
+ c- @$ E; S- V( {3 y. }# N                else -- the vehicle @ is empty, both vehicle and part are in the same dock station# l0 C3 t. h, b9 G
                        part := @.transpOrder;
; L! D- r- a9 K6 T+ G                        part.move(@);-- load part! [4 F; o* F/ R2 v3 G  `2 |- ^
                        @.CurrIcon := "load";
* L  [# o) k# f$ A0 R                        GlobalDistObj := part.globDestination;
# f; C1 V1 T# a5 c1 n- ?                        assignLObj := rgmanager.rgAssignL;, z$ b( x% o0 ~3 d
                        row := assignLObj.getRowNo(GlobalDistObj);
, H8 ~/ ?- |/ y/ A' I5 C; G0 S                        if Row = -1 then -- since 704 O6 `0 X  C- S/ _5 N2 h8 b
                                if lan=1 then
% e9 \  l: k+ N; H1 A- W; P1 q& K6 g2 `                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
% [" W' j$ m% e1 ^  b                                                to_str("in der Andockstation: \"",?.~.name,"\""));6 t, Z: n$ u, T0 I
                                else2 u( k$ l2 d0 {& W% d7 B: W! x7 `
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),/ ]. q- ?# z) L. P/ J
                                                to_str("in docking station: \"",?.~.name,"\""));                               
& a0 h3 ~" Q: G, E# B                                end;
6 \1 W* q5 S( L/ k                        else% G# B4 I! j& |+ [- s" p  W' E
                                @.Destination := assignLObj[1,row];$ o4 m; k) _' h! R0 U0 w
                        end;                        0 O- Y  p. Y$ K9 h
                        newDirection(@);
+ ?) q4 O9 A' S                        @.HasOrder := true;
  w9 W/ r3 s( Y; G: M, p: k' y                end;
. O7 L* t2 {3 S) O# ?        end;
& P* H, M; U7 N! s7 Lend;        -- of the method
" b" J2 v4 ~; z8 R4 f- d& O' S
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 $ K2 m5 x7 T* J+ W/ B2 F" F
2 O1 C9 x& Y( q4 G
这是AGV_putin中arrive的method。
5 A; R0 z4 _7 c$ ]2 N* d
3 M9 E# `  b7 D1 R  M5 \" m: e' F当到达物料速度越高时,这个报警更多,) j( c1 Y: v. T4 n# `5 y3 o% \
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
0 V) u& I, |( @1 m1 D; Y4 S程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
9 \' g( L. K& c+ t
8 W! w8 h: \, Q8 X另外一个小建议,就是move,所有的move都可以这样: A7 n' u& x2 o" O% f5 C1 d
if not move() then debug end
( b$ q  e6 u/ x/ F' F这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
* S% Q* ~' q. Y- \) dplant simulation中的free libraries有AGV模板,9 j) p( ~, p9 T/ `* ]
里面也有案例。
0 |" F5 w% o: p+ y3 A6 s, i& P我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
# D5 O. F, x; g- ~7 K! Q, l
* V. C8 T: z. y) [& L0 X4 k我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 3 h3 j- D! X! m! q% O# e
$ S$ [0 |! z$ X5 M
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 1 }5 E, x# I1 M5 P1 J! n
这是AGV_putin中arrive的method。$ Z8 B: H3 [: T8 Q. E; n; H
6 {1 c  n# e" q4 N+ g1 v
当到达物料速度越高时,这个报警更多,
- q& C  v) t# z0 L: w' T) J9 a
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-28 01:36 , Processed in 0.025351 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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