设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8361|回复: 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'
7 E- Y! |: {- M* J8 b; \*/- {+ p- g7 ?$ b
is( N9 l3 L/ w  c3 A0 Q3 X4 t) m1 _
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
" m, B3 S; W! o) vdo9 c- \" X4 X8 s8 U- Q+ f' Z
        Lan := rootfolder.Internal.Tools.AOLlanguage;+ {6 }3 R+ k. j; n! \4 d) |
        if current = @.Destination -- else return) [& ?, j3 A  B$ [) u+ b
        then, Z: g: }* _: p  @7 J# ?
                @.Destination := void;
& ], I! u# V% T; A                if @.occupied then& u3 K1 `9 D* T
                        part := @.cont;4 M* v& \  J) k
                        @.transpOrder := void;6 F( e0 g8 C3 [% K( Z  v" P; q
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,1 o5 U& g' U- S7 W7 M; E" b1 i" U1 M$ S
                                @,root.eventcontroller.simTime);; A( P8 I% c8 [3 _' E
                        @.HasOrder := false;
( A6 c3 v4 k9 V/ e2 P                        @.DrivingHome := true;
/ h# v2 ^) u8 w9 l                        rgManager.tryToStartTransOrder;% L0 ?( \; s$ \8 c* b7 }7 X
                        if @.Destination = void* X: u6 n, `& c( Y
                        then -- no transport order for vehicle @, p8 X9 O, I; `3 f
                                @.Destination :=6 J: I4 l2 {. g2 |7 K
                                rgManager.nearestFreeStation(@,track.~);
! F7 F- z# Z* F  z                                newDirection(@);   
! H1 C; D. U7 d: p- l. E; G3 U                                if @.Destination /= void then
" l( O) Y. s2 S$ U* Z                                        @.Destination.NumReservation :=
1 B' P' S* J5 t' I# n                                        @.Destination.NumReservation + 1;0 c" I& Q5 s: _+ E' V8 D
                                end;# v% J: B* m5 `2 s% |
                                @.CurrIcon := "drivingHome";
9 n4 ]6 Q/ Y$ X# K8 ]% k                                @.DrivingHome := true;
7 P. W" R' d, P; f) c                        end;2 u2 s+ s  m3 H# q6 `$ l
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
7 l- W4 R+ o$ q" `) F                        part := @.transpOrder;
9 o0 g0 N$ `# Q& r) \) R. F( O$ N                        part.move(@);-- load part
1 t' |- d* y% z6 T, V                        @.CurrIcon := "load";4 Y# c: O4 X/ u. i% h8 w
                        GlobalDistObj := part.globDestination;5 x8 q2 @2 d6 c2 Q; G1 ~# e% k
                        assignLObj := rgmanager.rgAssignL;
4 a6 g( |2 \1 F4 k# h# z* i8 a0 [                        row := assignLObj.getRowNo(GlobalDistObj);
2 r5 W3 x, C0 n9 j                        if Row = -1 then -- since 70
$ ~  }& g+ r7 \' l                                if lan=1 then
/ P- d- K" X9 \+ u% j                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
- n! c  v" i# ]* J9 b                                                to_str("in der Andockstation: \"",?.~.name,"\""));! [5 Q% u% X7 p& e
                                else2 k2 m) t: L# M3 W$ t, s
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
3 `2 i' p% C+ c6 H, B9 M! p                                                to_str("in docking station: \"",?.~.name,"\""));                               
& e: J, ]4 R% _+ W% _0 D$ ~! M                                end;2 @  Q, x8 M% G6 P' Y
                        else9 M; }9 G, A7 ~9 {4 ^
                                @.Destination := assignLObj[1,row];
" i, s" Q  K1 h1 c1 @3 l                        end;                        " x8 x  J8 [4 N6 u; Y; z, x7 ~
                        newDirection(@);2 r0 y+ J/ P8 a  m( T9 {; x
                        @.HasOrder := true;
) M" M3 c, q% l4 R; N2 `                end;
: C2 d9 u- I- |- K2 @2 i5 N& Q. R0 g        end;
- ~$ s$ w9 o/ k& Jend;        -- of the method; H/ k# H/ d" I, f9 j
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ( i5 R6 Z; a4 @1 [0 P- g

& e8 H& k0 c6 z4 n; o( r这是AGV_putin中arrive的method。% T5 @4 x; d- i( {8 Q4 c3 D
# f: K4 X1 u- t
当到达物料速度越高时,这个报警更多,2 ~+ a6 W7 |' h1 h9 h; Y" r6 J
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
; D% J- Q+ v. Y& T* g# ]程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?+ S/ Y; S9 T8 r) v2 L5 s6 h! T
8 U% W- a! ?' c* a5 `
另外一个小建议,就是move,所有的move都可以这样5 }& E4 l8 L: ^/ y3 f
if not move() then debug end4 `1 o$ A- J, h; F5 [* o7 \+ f
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。/ T+ M! F: w" e
plant simulation中的free libraries有AGV模板,* a4 j6 t3 C6 p! ~! t& N% F  q
里面也有案例。
! u; T/ e( Q; f; H  c7 X1 c) e" L我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
- y# |# b- F& V
8 n: ^8 O4 o- X, {4 b3 `/ f) K" z- U我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ( G5 ~) f0 N. i
' {) Z% d% v. S6 h7 B9 K
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
; I7 e5 h& T" v0 z这是AGV_putin中arrive的method。, ]& K, b) d* W3 g) e/ ~
& l2 z, [, \% n& x+ A3 u
当到达物料速度越高时,这个报警更多,

5 q  F. P" @: p7 A另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-30 12:26 , Processed in 0.019846 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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