设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5415|回复: 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'
0 }+ ~8 l. S3 ]+ ~, X4 R/ o5 d*/
9 w# J5 T5 b; n% Y4 Y# `is
& `2 ?8 u' X9 f. T! K        part, GlobalDistObj, assignLObj:object;row,Lan:integer;  d- x7 }. G* c" b, Q5 R. N
do
: y. i4 c* c5 s" n/ O" S# H        Lan := rootfolder.Internal.Tools.AOLlanguage;0 e' T7 E. [* S  n  P
        if current = @.Destination -- else return
: H/ ?4 A& c. u, o        then
6 E# l! g+ w6 ^: h7 ]                @.Destination := void;+ B; H5 y; e' ~  C# S- D3 {
                if @.occupied then2 j& _5 S0 ~) m7 N) W
                        part := @.cont;3 M- V) u6 B9 W) ?) P: f4 q5 b; y& h
                        @.transpOrder := void;
$ V; q$ j6 C- T* J( {7 \8 r                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
5 c; z3 }5 I" N0 r                                @,root.eventcontroller.simTime);5 s: S! o- u1 @0 T' ^
                        @.HasOrder := false;0 p* H* P* t0 H3 T
                        @.DrivingHome := true;
2 @, {4 Y. c) l/ N! o. o                        rgManager.tryToStartTransOrder;
; {( n6 v( r% x1 q                        if @.Destination = void$ |( x3 ^8 \% M& E$ T' k; f
                        then -- no transport order for vehicle @1 m4 t1 X3 v) ^7 Q( {8 n; @, j
                                @.Destination :=
  a* Z( p: q% w- p1 F9 w4 ]                                rgManager.nearestFreeStation(@,track.~);
! r% \# r: [# o' {5 `* e                                newDirection(@);   2 U% s& ~0 q0 k0 y: Y
                                if @.Destination /= void then9 Z+ ^# D& a: y% ^; r% R4 Z
                                        @.Destination.NumReservation :=
+ ~+ w6 \6 k3 [$ ?- z                                        @.Destination.NumReservation + 1;
6 @& y4 y7 h7 H1 J! p+ a2 h) x                                end;. z" ?/ O- ~* q) S1 Q, r
                                @.CurrIcon := "drivingHome";7 @3 R  ?9 [" q1 ~9 W
                                @.DrivingHome := true;
( d: T6 F1 O, a2 D8 T( ]                        end;6 t9 ?! m) D- Q6 l6 m, K
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
! w/ H+ n# y1 ]% p; X, L5 _3 O                        part := @.transpOrder;
" @4 D& Y( z" i) [                        part.move(@);-- load part( q/ w5 {. T3 _6 ^
                        @.CurrIcon := "load";
6 H  W! c5 {& B9 D% O9 L8 v2 Q1 }                        GlobalDistObj := part.globDestination;' r. B# c  v/ N6 S
                        assignLObj := rgmanager.rgAssignL;
9 W5 t$ Z+ \4 N0 h3 q' Z: v                        row := assignLObj.getRowNo(GlobalDistObj);
' C# y4 F! ^) j1 {/ E9 Q+ v                        if Row = -1 then -- since 705 k0 X0 G, h3 [& {
                                if lan=1 then
9 \4 d+ O8 V) P0 J' e  B. ?                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),6 c( ^, v$ z( z5 N" b" \
                                                to_str("in der Andockstation: \"",?.~.name,"\""));5 p3 [. g4 W; e% L; Z) g# \
                                else2 F$ z8 U  ~( R  f8 ^0 s, [
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),% h6 i+ M! q1 t; k" k7 N
                                                to_str("in docking station: \"",?.~.name,"\""));                                ; Y$ V6 b5 A' {8 @, Y: l
                                end;
3 z: ~8 V* t; U2 p2 j                        else
' a* t4 F8 Y7 R) n9 v" }# e                                @.Destination := assignLObj[1,row];
' V5 ~- Z: M+ p3 p( Z                        end;                       
" K' U. |6 S, E, i- D! E( `                        newDirection(@);
( C  C' V  f& B9 H9 x4 R                        @.HasOrder := true;* ^$ }5 G3 d- o# F# F! f
                end;5 L0 B$ A6 ~9 M6 G$ A0 @4 ~
        end;
* _, {' I: n3 u9 p8 f6 {+ Pend;        -- of the method
* Y  o1 o! J! h7 x- N2 n
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 7 ]! N2 t6 i  g$ R* z; k7 O
' y: P9 }( e% f* a
这是AGV_putin中arrive的method。$ h% ]$ y( m! K; o

+ y0 l- y; M: W$ L' E9 ?. W当到达物料速度越高时,这个报警更多,
5 J4 S" Q& }* I* g' p- C8 D可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
8 v9 O/ W6 o5 i; [1 u程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?# C' l6 N" }2 j2 i% b' m

$ _0 I  M5 N" E另外一个小建议,就是move,所有的move都可以这样+ t- s" ?8 |9 ~
if not move() then debug end
: O& q! i, n) u- Q- P+ \  @2 J这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
, a; F( H" k# D: Rplant simulation中的free libraries有AGV模板,
0 K* Y' k. L7 I( o1 F; x7 L里面也有案例。
7 R: ?$ Y3 S8 W, s9 r9 J我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。, _1 `- v7 j3 ?5 _6 `

8 ^! ]4 `$ A% H! {& z; K. w. F我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
, _+ X9 q3 m5 J. Y1 l
( g, E/ f% b- a7 u; r) I0 h那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 $ ^2 @1 ]5 ]. {8 A. ], a) w
这是AGV_putin中arrive的method。
) e- H7 Q) g3 H2 C: @$ \; \( F( E$ C3 O- N- l$ B
当到达物料速度越高时,这个报警更多,

" A3 Z9 `1 _7 j2 v1 r( H另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-22 09:34 , Processed in 0.020858 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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