设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9550|回复: 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'
4 N" w( ^; }8 y* s7 h5 N8 f6 b4 `9 g*/' f1 z% P& B/ D; y4 n. F
is
7 y9 d& |& j! T        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
4 X) D( s+ s% H8 Q) Z6 w4 L% udo% x1 H, X2 F4 T0 V
        Lan := rootfolder.Internal.Tools.AOLlanguage;, Q8 r' w* }$ q: N1 h2 l; b* |
        if current = @.Destination -- else return! A, A2 J( r/ f( o, {
        then
! ~' f/ i6 @! t7 M! I& R! m5 s                @.Destination := void;
% g9 F. O6 ]2 q0 j. ^                if @.occupied then
- g% F! I5 a* Z% D                        part := @.cont;
  a' F+ \4 q) j2 X+ [8 I0 \9 D9 J3 Y4 J                        @.transpOrder := void;
# n; Q' ?- \+ s8 y: w4 g: _                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
( m' @, x/ }- d) M4 F: P                                @,root.eventcontroller.simTime);
  X/ T- e3 _$ Q* D6 v6 G                        @.HasOrder := false;7 A* s2 y# o) |! `! V
                        @.DrivingHome := true;
! L8 \0 Q* Z" g3 ^4 w                        rgManager.tryToStartTransOrder;8 c* _0 L' ?1 `/ V- I9 n! K* v
                        if @.Destination = void6 m( z* w2 G' {+ n( W2 R  }* v
                        then -- no transport order for vehicle @" b# e& v7 j; m- j6 w0 p  N6 d
                                @.Destination :=. V+ y5 s# z8 r2 A) I& h5 ^# E
                                rgManager.nearestFreeStation(@,track.~);
0 y# j8 `+ Q$ f2 S" s                                newDirection(@);   
6 e4 j5 }$ [# y2 [+ A: h% H                                if @.Destination /= void then
# f7 \8 g5 P  z# j7 h3 ^4 `                                        @.Destination.NumReservation :=# m9 _" Q7 y! Q% s% i% U/ ^
                                        @.Destination.NumReservation + 1;
! f' @/ _+ W7 L                                end;
0 _& ]' g& M/ C& G$ T' Y                                @.CurrIcon := "drivingHome";
2 W* H- W0 u* B* e! K                                @.DrivingHome := true;
# T+ t' M) ]6 l$ [                        end;
& J7 \1 d+ n2 h% o/ X1 ?. F$ [                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
0 s) l' K* R" ^6 ^. V& a- ?                        part := @.transpOrder;, l9 ]+ m8 \5 P: r8 j6 u
                        part.move(@);-- load part
) ~& N& N+ Y) K$ r. |1 x" w9 G  ]                        @.CurrIcon := "load";6 D0 K$ k4 l  A' `: f
                        GlobalDistObj := part.globDestination;
! O: P$ M3 ?0 b                        assignLObj := rgmanager.rgAssignL;
4 D% X! O5 T: s6 u7 [0 e                        row := assignLObj.getRowNo(GlobalDistObj);7 o- ^0 G9 a* C7 I
                        if Row = -1 then -- since 70
0 b+ O7 H% n2 y# a% t                                if lan=1 then1 L7 K: {/ X4 b
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
5 ]4 D8 T# z2 h) y, P1 `. e: N) V                                                to_str("in der Andockstation: \"",?.~.name,"\""));
# ^6 f& c2 l2 e                                else
/ n# p$ G3 X( c3 M* ]                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),; f/ S3 Q8 q5 R4 ]* l( B; A0 r; F. c
                                                to_str("in docking station: \"",?.~.name,"\""));                               
0 o2 _. W, d# J9 O$ u8 q                                end;, m1 r. w) f! j: a7 S
                        else( F3 ~* d/ Y! P/ b( x2 n
                                @.Destination := assignLObj[1,row];
$ L( B, [3 F# W+ u+ F7 ~: L2 L                        end;                       
! }! h  t# E8 q( d: i                        newDirection(@);0 J, i% o4 u+ [, s7 ]( _
                        @.HasOrder := true;
" }8 i- H. A( n1 Q5 U$ q2 _                end;! c& _  R" ~- B% `. T! K
        end;
8 y; a0 B+ l$ g5 Q6 dend;        -- of the method8 T4 R$ n* b# q% C
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
& `5 @% A. E5 t
' h: f  J) s- n. t2 T这是AGV_putin中arrive的method。0 S* i+ c/ N  f- e) Q3 d
3 a6 Z) ?' a! X4 y1 }
当到达物料速度越高时,这个报警更多,( v  i# B' h6 ]& c
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
9 r9 W9 Y) a. E' ]2 ]% d程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
' \- n1 Y* p# |& M; I2 o$ X2 F6 ~  f8 Q& M; \
另外一个小建议,就是move,所有的move都可以这样+ ^- Q, M, a3 u( Z$ c2 D2 P
if not move() then debug end  Y' }2 @8 n2 @( H7 }6 _
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
5 H! Z# N0 @6 f, F* E# _; eplant simulation中的free libraries有AGV模板,: V7 R' ~' |! Y3 _6 g) v! H3 p1 w: ^: d
里面也有案例。
' S6 ~* |# @! ]3 G+ C$ m" S" k我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。) c  {/ ?- f7 H& E7 ]# k5 E

- D8 |: R! ]3 }! l我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
  T6 u- J# ]% E) N  R9 z
+ {% Y1 O% D4 k, d那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 3 [6 s. k9 ]$ r9 L3 ^8 d
这是AGV_putin中arrive的method。* S5 b: [2 {1 p. O( N9 D* F

& n0 ?8 @; i, U# {1 l当到达物料速度越高时,这个报警更多,

5 t) v8 Z" B) V3 B- U) k( p# t另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-7 16:39 , Processed in 0.017569 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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