设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7886|回复: 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'# N" R( ^* U% ?2 S' l3 J* Z
*/
* H8 h  p# t3 ~% t# Sis( @- d4 {1 n. A3 Y! x
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;% B* m: @: I) B1 A
do
0 ]% l! q3 s0 G" ?9 `6 f* {% N        Lan := rootfolder.Internal.Tools.AOLlanguage;
* s$ f" g* Y  n7 {        if current = @.Destination -- else return7 u2 L9 m' C0 M; b- S& Z9 d9 {% Q* [
        then  G, t+ [9 y& q1 k
                @.Destination := void;) g! }; u: V. o* Y# D  Y8 ^* p
                if @.occupied then5 U  _! ~1 y* M& N" U
                        part := @.cont;
$ A4 C9 e" i% ~! ~' c2 x                        @.transpOrder := void;" l; h5 D/ b8 m1 A0 c
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,3 L' r6 x! d5 U6 D1 ?* R- h
                                @,root.eventcontroller.simTime);
% l$ N; @" v* j# y4 N                        @.HasOrder := false;: t) k$ C8 j. T9 {! C: q
                        @.DrivingHome := true;# A: W. m9 h3 r( \1 K. w
                        rgManager.tryToStartTransOrder;
# W5 I" s0 p- b; s& H' a                        if @.Destination = void
- d: @% R# Y: _+ O" ~; z" H: V                        then -- no transport order for vehicle @* ?' o: }# p7 c" X: A+ s
                                @.Destination :=/ b& M9 h% J2 ^% I) D5 z' n' I
                                rgManager.nearestFreeStation(@,track.~);
, T) I6 W$ [+ z2 A( o4 a# X                                newDirection(@);   9 U* y5 G, N% \( l7 M. Z# D3 E
                                if @.Destination /= void then
% ?2 A+ ^( [, v8 x5 n: u/ a                                        @.Destination.NumReservation :=- U) X4 A2 Z2 e1 J: T9 y9 ~
                                        @.Destination.NumReservation + 1;
9 I9 S6 F6 J/ S2 ~+ q                                end;% _8 Q: d. A, b5 }
                                @.CurrIcon := "drivingHome";* ^& d  ]! _5 z% b' X2 N
                                @.DrivingHome := true;
' M! o- ~" H; ]                        end;
# [# j+ U* g" }' K7 R/ y6 O: A                else -- the vehicle @ is empty, both vehicle and part are in the same dock station# ]6 D& _: j. C9 c
                        part := @.transpOrder;! ]# u1 |; Z( v. i3 l& Y
                        part.move(@);-- load part% q1 @* Z7 S" T- q) t. ?& o9 l/ Y
                        @.CurrIcon := "load";
2 d$ e4 @" ]( G& i" z                        GlobalDistObj := part.globDestination;: N6 n+ I4 }6 c* }- ^6 E- l1 h
                        assignLObj := rgmanager.rgAssignL;# h: P9 `& E6 w" ]: L6 M0 |" s
                        row := assignLObj.getRowNo(GlobalDistObj);, K! E' J% U* }; }6 {& r
                        if Row = -1 then -- since 70$ q+ b2 Q9 E2 ?
                                if lan=1 then& `+ v+ ^/ d/ P9 g
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
1 k2 T1 K# N$ E$ x( n                                                to_str("in der Andockstation: \"",?.~.name,"\""));. [3 r, W9 e0 R2 ]$ G" p+ p
                                else
# ^" M- ]8 B/ a                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
# q& E3 F9 i: J6 X/ E* ?' |4 K5 Q                                                to_str("in docking station: \"",?.~.name,"\""));                               
+ _! U4 ]- k8 l* f; i+ t$ N                                end;7 g5 z7 D& E) B; `5 M! n
                        else% t) `7 Q) d7 j8 _% Z8 H
                                @.Destination := assignLObj[1,row];3 `6 W. Q! e. k1 n
                        end;                        # ]- ~, P. y5 n+ `8 P8 q( g( D5 `  `
                        newDirection(@);" \$ ?  L6 u. ~3 t1 O- j+ G
                        @.HasOrder := true;8 l+ c  u# b& A2 P7 B# s
                end;! N: n! M' [0 G
        end;1 e6 G) c4 d  O. a, G
end;        -- of the method4 ~; z: D( g( j9 B6 J
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 % J; _+ ~/ X( h# m& y, I# G

- e. X7 h) n$ R/ a; R这是AGV_putin中arrive的method。" B  N) N& C. v8 h

! Y0 P- k$ ?/ Q& ~6 u" L; B5 Y. G当到达物料速度越高时,这个报警更多,
# m/ `! X: k1 Q' c- \可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。1 e( }: t6 s6 v2 P" I0 U, D
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
2 L" W8 a! G* j# B0 p: ^# L
6 W0 Y' _8 K/ j& U另外一个小建议,就是move,所有的move都可以这样) k0 Z2 M7 W3 q2 `( _; j1 J& c
if not move() then debug end$ e8 r7 T; U$ M1 m
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
. v9 q$ P. ]  Z, dplant simulation中的free libraries有AGV模板," x. `' T8 Z6 ~2 ~. z# U
里面也有案例。/ N8 `. G2 A6 n
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
3 e) l1 V8 C! l, u' i( [
5 v3 j1 F/ x0 c0 p- F我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
# L) _( t: D& h( x% Y7 ~$ T- x# F4 O0 z9 M
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
8 v! R" @+ ~9 p% M! x, O这是AGV_putin中arrive的method。" N" M$ O4 n' l; m
; X2 i0 }4 v( w* F0 z
当到达物料速度越高时,这个报警更多,

! i, v5 h% D. N' s$ z另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-3 11:23 , Processed in 0.018978 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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