设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8286|回复: 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'2 {* w+ c* i8 Z( C0 V+ d
*/4 B( w1 v) o$ Z- h. i+ b' }
is# v1 q3 q: y. ?9 Y7 X
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
. ~. z0 K" N! x: F: o4 T/ Edo
( |/ ~" ?  ?$ {, P& _7 a5 m" @) Z        Lan := rootfolder.Internal.Tools.AOLlanguage;
' J( J+ `' ]& h: A        if current = @.Destination -- else return
4 y3 V8 ?6 F% D- w. Z4 R$ L5 f        then0 G9 X: }2 i. h( ^9 z& ?! ^
                @.Destination := void;( L- t* X* F: Z" m8 y# l/ X
                if @.occupied then
# W4 Y, f) [* t# f! o% Z                        part := @.cont;
) v, ]2 Z3 P9 M! F# Y                        @.transpOrder := void;1 A0 S' n1 @  w% ]
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,5 w& C2 k: g& P, O, N- V4 K9 k. i
                                @,root.eventcontroller.simTime);
0 V( W6 w: P7 o) E+ d                        @.HasOrder := false;  g. k6 |% q5 m! k& S, J
                        @.DrivingHome := true;  _5 e6 s' I) p) M3 G
                        rgManager.tryToStartTransOrder;. F2 h7 d, w* M
                        if @.Destination = void) B5 g% V- n0 l/ {4 m8 j
                        then -- no transport order for vehicle @6 x$ c  h' v9 v: l
                                @.Destination :=, T6 K/ c0 h5 n9 B" K; F# g! M
                                rgManager.nearestFreeStation(@,track.~);- u% `5 M  m: l2 l9 L1 q8 A
                                newDirection(@);   
0 i' I5 P* d0 c7 f6 t                                if @.Destination /= void then
# _! q1 q% H+ Q$ s5 a                                        @.Destination.NumReservation :=# e6 J. h, T0 k; T& ~3 j0 V0 m
                                        @.Destination.NumReservation + 1;
! T3 Q5 U1 b2 J# e                                end;
; j4 C8 A; M  N$ ^) w" Z* B1 ~# `                                @.CurrIcon := "drivingHome";
. i% N( U- ^+ z' @4 \( q& T- ~0 i                                @.DrivingHome := true;+ E# n% c3 `' t5 W: G
                        end;
: M( G* ^8 P) f& ]  B9 z, r3 \                else -- the vehicle @ is empty, both vehicle and part are in the same dock station& D) |0 z$ d9 F# @: ?* r% o& {8 @
                        part := @.transpOrder;
  K, c! }* i1 k9 t& E3 e- x% w% m' O                        part.move(@);-- load part
: f$ {* i1 C, w, X6 J                        @.CurrIcon := "load";
- z0 y( l, K2 w* i! N. e                        GlobalDistObj := part.globDestination;- p8 R" f1 m. K  R: ]5 U, F% F
                        assignLObj := rgmanager.rgAssignL;- _$ q0 ]% G. N/ A1 I# M1 I
                        row := assignLObj.getRowNo(GlobalDistObj);
, ~* R7 H7 C# S4 l                        if Row = -1 then -- since 70
. w% T/ c2 w2 r$ a8 z                                if lan=1 then! {6 Q( o) G) \1 h$ k
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\"")," B4 H: s3 f" m6 Q, v/ c$ ^
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
& @+ \: Q) B4 t6 G" Q3 {' w                                else, K/ K6 L! \! a* [# _& p7 o( O
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),4 ?+ ?$ f! Y, Z7 L- ^% R
                                                to_str("in docking station: \"",?.~.name,"\""));                               
$ F. E8 O/ U  B6 _1 X9 l; c                                end;
, g, T1 T% G8 d6 m5 H5 g                        else" Q$ a5 x( t$ N
                                @.Destination := assignLObj[1,row];
& R) K- {( K' [! J% s( }                        end;                       
6 u9 r4 U; S' H' m                        newDirection(@);
7 x/ j3 g: T9 O                        @.HasOrder := true;
. a( I$ H- F3 U$ u, D5 X! [5 P( _) @                end;! `4 z" f+ _" B8 V
        end;) g8 i; J: t/ X/ B( w! G
end;        -- of the method& H4 h/ _) p) j% G4 m* _0 ]
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 6 N' p3 n, R8 M2 g, |3 s

/ k# i/ v+ R) j8 U8 K2 R这是AGV_putin中arrive的method。
! Y( E( A; K3 D% l" n7 L$ _' H* Q
# e7 V0 @/ S. @7 E6 N当到达物料速度越高时,这个报警更多,
; _" `: x' i* I0 R" U' w3 }可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。8 B1 k% F8 G) t( ?7 T# o  Y
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
) c# r3 _( A" i% p* |& j1 M+ t# M) ]& }( r) j. ]' s  J  i) }
另外一个小建议,就是move,所有的move都可以这样
" q& z" f- v7 L; Lif not move() then debug end
0 |! Y5 y7 m$ I4 D8 I这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
, ^! ]; s! M* T# U$ I% Splant simulation中的free libraries有AGV模板,6 Z; m6 q5 U$ e9 w- B! k% t1 s
里面也有案例。
2 w& T" ]& x2 H我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。  m: \* _$ a9 ?! R! o8 r# L
2 {7 ]2 a. M2 O" E& W
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 % x1 n$ T8 A" H  T' Z4 s) h# E

2 z4 |$ v2 j* l% d- ^+ M那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 . a( H! ], j, I$ P
这是AGV_putin中arrive的method。
. F  o/ G9 ^+ q/ u1 X7 v# E9 R* l! R( \
当到达物料速度越高时,这个报警更多,

8 f5 ~! O+ a. g+ T1 B3 s$ Y# V' v另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-25 11:05 , Processed in 0.020501 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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