设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6746|回复: 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'$ U" N9 ?+ N! x6 I$ F
*/! p$ T2 |$ K3 X6 b: c0 r6 r7 g  h, b
is, X5 o6 I5 N+ i; V1 z/ t/ s" n
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;; O/ t. u' w4 Y8 g, N- e' w
do( ]( H1 Z/ E* {5 ^( z
        Lan := rootfolder.Internal.Tools.AOLlanguage;0 I8 Y% G; l$ z  t) v% q+ y" @
        if current = @.Destination -- else return
4 o/ ]0 U' h& V. U4 \# {8 T        then, J$ a& W' X, m4 c/ a
                @.Destination := void;
, U. J) k2 K. a                if @.occupied then
8 B4 K6 N0 D3 g% {# n! G                        part := @.cont;
0 N9 @, q; ^# a5 K( T7 G                        @.transpOrder := void;
( Q+ G2 I; X  q/ D9 r9 K+ g: p1 a                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
2 {# }! `6 `8 S3 M0 Z+ j: o                                @,root.eventcontroller.simTime);
" `. k, \2 y8 {2 N, W2 f* Z; ~                        @.HasOrder := false;
0 K  X/ n' e. F* ~                        @.DrivingHome := true;. g1 N; `$ Q! P- M
                        rgManager.tryToStartTransOrder;
, z5 m- P" r8 p  s& v9 `                        if @.Destination = void, M9 `3 F4 W* l$ a( G( K! I2 Z$ M
                        then -- no transport order for vehicle @
5 W! H5 F* X+ X8 a3 m1 o                                @.Destination :=
+ S1 z2 x# b7 E( O4 B                                rgManager.nearestFreeStation(@,track.~);0 P% Y$ _* P2 U
                                newDirection(@);   
* _" h5 ]" J) T! b! S1 s                                if @.Destination /= void then
- U" K% @+ a0 V- ~) o% j3 c+ g: R                                        @.Destination.NumReservation :=
4 Z1 s* i! l" \3 x% F* H; M                                        @.Destination.NumReservation + 1;
+ H; I. p6 j5 D3 M2 k                                end;$ `$ n6 G" A) |- A: c
                                @.CurrIcon := "drivingHome";$ }! ?1 z3 F  e( S* j! {- A# `
                                @.DrivingHome := true;: `4 V; [9 D$ g4 a3 n' H: L) ^7 a* R
                        end;+ y: @& A: z9 v! ]. d1 [
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
: d: d  H) B' W$ S* L' Z3 L                        part := @.transpOrder;3 w+ ]* l2 ^3 g( \2 @; }: z' u( j8 T
                        part.move(@);-- load part' M1 w; c5 ]  R3 d/ r. U4 [5 w
                        @.CurrIcon := "load";
8 D! ~1 e6 [5 C& D( Z                        GlobalDistObj := part.globDestination;
( d5 q$ C- a$ d: a( W7 j                        assignLObj := rgmanager.rgAssignL;
; o. I' f8 _8 h1 v2 X                        row := assignLObj.getRowNo(GlobalDistObj);
5 W- F! _/ x1 e                        if Row = -1 then -- since 701 c! f  G" X9 [# a/ G# y
                                if lan=1 then) B9 a, n& ]% b$ M9 N4 ^+ v4 W
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),( t' n  e9 s) h
                                                to_str("in der Andockstation: \"",?.~.name,"\""));9 h# u6 B; b5 G3 z
                                else
6 f7 z. Q! \5 z                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),/ [3 I1 y5 X  Y8 S7 t1 [* n
                                                to_str("in docking station: \"",?.~.name,"\""));                               
) ]6 D/ B/ U; h  }9 b                                end;
; z$ Q$ @+ E; _* l/ q3 @% @6 H                        else& w8 \' H. ?9 Z, C3 o; O( C( F
                                @.Destination := assignLObj[1,row];
! k2 n3 L! x5 G8 P                        end;                        ) i: ?% \! T7 W' M& l  M1 M8 a
                        newDirection(@);: `' `% p# l! S
                        @.HasOrder := true;& a$ r3 I/ r- M2 k
                end;% I% A- e9 a" A4 Z7 q& M. D
        end;" p; \: M" G2 u! `
end;        -- of the method
, j6 w6 S4 d( e/ R' N' F& T
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 & K& b' {9 k) A4 ~
: k4 q3 D, D; q( G- d+ u
这是AGV_putin中arrive的method。0 h4 B' p5 \( q2 I$ e7 x) h
6 h7 t. z7 `' q. i/ w) c" f' I
当到达物料速度越高时,这个报警更多,; c& ~: k5 C6 ]! L
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
: Z) V' Z; g3 y9 ]$ H. K程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?4 d- i" }; A- `! b$ e
" T! X* A" T, u- y
另外一个小建议,就是move,所有的move都可以这样4 C, U; N/ A5 {
if not move() then debug end/ f( r. J4 o! K9 l
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
- Z3 P/ K; w0 |- A  mplant simulation中的free libraries有AGV模板,$ D/ V+ F" {0 _1 ~# S
里面也有案例。
: `( U9 O9 {% @+ _4 h我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
5 q: E6 ^7 p* i, G+ q) a3 H0 H+ B+ h8 P8 R! O# A; S& u8 q
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 # R) E: |' ]' h0 A& @3 R

3 \; \9 c( Y, b+ P3 t; y那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ) m$ B% Q# O7 u; E1 H2 T
这是AGV_putin中arrive的method。& }1 w/ y# Z; v; U, l

) L+ ]+ s% S: b9 ?/ [当到达物料速度越高时,这个报警更多,
6 }. ]9 O. c: f% @* {1 g+ ]7 t
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-24 05:34 , Processed in 0.024766 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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