设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9450|回复: 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'8 R. r# o# D. X& S4 z" u+ m. ]
*/$ S% I( f4 X1 V# {; i1 Y
is
, Z( y; l3 `: k1 |2 M. E        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
0 J! v- Y; S$ Edo8 T! b2 ?& n% X/ t
        Lan := rootfolder.Internal.Tools.AOLlanguage;8 h! ~  H; O6 u/ G( b! O
        if current = @.Destination -- else return
6 a! a* ~6 W3 d* n        then) M. j: y( f6 t7 {
                @.Destination := void;/ h$ v. D; F; u+ F6 l
                if @.occupied then: n/ [0 r8 ~+ ]1 E
                        part := @.cont;
. ~: q( p7 z# n8 Y                        @.transpOrder := void;6 r- I; E6 i! D( j6 r
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,& o" q( N- H/ F, E6 L, {; a. T
                                @,root.eventcontroller.simTime);7 P( l: v, @9 v7 d$ n, c, w/ w
                        @.HasOrder := false;
5 b. i4 a$ J% O$ X                        @.DrivingHome := true;7 _8 t* J# C( T9 _  s( t$ K) g/ Y
                        rgManager.tryToStartTransOrder;
5 q% H, U% x/ Y4 P7 K                        if @.Destination = void2 i; k: T2 K! @2 @5 b$ c
                        then -- no transport order for vehicle @/ O8 S6 B5 {; B; a3 m- E& s
                                @.Destination :=/ U5 e0 \0 T/ T6 ]$ M) d
                                rgManager.nearestFreeStation(@,track.~);
! M  j4 y, r' x2 f2 r                                newDirection(@);   
4 G- b0 J  B" X4 @                                if @.Destination /= void then
6 ~$ ^& Y( D  w  w; R                                        @.Destination.NumReservation :=( j; D2 |, P; A5 v! V" N
                                        @.Destination.NumReservation + 1;. v+ E+ q: p2 j; D- w% C4 o- p
                                end;
( r9 u/ O, c4 }2 A$ e! O, `+ ~                                @.CurrIcon := "drivingHome";
/ i, X1 u5 g. x& `3 N$ @' Y                                @.DrivingHome := true;
& ]* D- _4 b) t+ T7 G) n; ^                        end;" J) s' Y7 S2 C6 i
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station4 e2 D/ T7 q5 X; f2 V# h! G/ e
                        part := @.transpOrder;
7 J) p% O; T- [* d( k: q+ v, y                        part.move(@);-- load part
/ E' t- L. P6 ]- r2 b7 O  y                        @.CurrIcon := "load";3 T* W2 v7 y- U5 w6 o8 p
                        GlobalDistObj := part.globDestination;
- s6 v* C# w1 Z! Z! V1 \/ r                        assignLObj := rgmanager.rgAssignL;
$ u* k) `% W9 O! r( C: o                        row := assignLObj.getRowNo(GlobalDistObj);8 ?/ k9 X0 K4 U9 E
                        if Row = -1 then -- since 708 b( P/ h+ h& C* A$ ~3 q
                                if lan=1 then
. F3 y' E( Y- k/ t" t0 A. ?                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
! T8 {* {+ N" `# V# t# L% |                                                to_str("in der Andockstation: \"",?.~.name,"\""));) d$ k. B, M! Y/ y: |  B
                                else" Q& G2 H$ ^: [. R: B. }0 R  z
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
# z& I0 N; ~" v7 L9 m0 M1 W                                                to_str("in docking station: \"",?.~.name,"\""));                               
8 T  A" T: |8 N, n& G                                end;5 b& ~! J5 L0 N( q+ t' e- c  n
                        else1 f: [6 h. \  {
                                @.Destination := assignLObj[1,row];, ?; Y7 N. B# E# I' r5 s6 Y
                        end;                        * k! i' d6 o0 v( k2 U& S8 o3 l
                        newDirection(@);6 p- E' }) P6 [, e) k8 J8 T3 G
                        @.HasOrder := true;
1 `) Q" @6 Z( y. y- l                end;; u- B/ _! u+ D/ U. N" q# e; O+ E) v
        end;
- }" t$ V+ Q! C, F' aend;        -- of the method
1 o! ^/ `* B1 h  i8 K# a& R
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ( `7 G0 |% B- n' z3 p0 ^' C- u

! O8 Z( q% y4 G) C& A这是AGV_putin中arrive的method。$ @! i% y4 O/ `( ^
& |$ s5 G0 S! |# B3 |2 g) _1 S4 [
当到达物料速度越高时,这个报警更多,
7 h8 a( b3 X1 i" X8 D可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。" P' T  z, U' y, {5 L9 w
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?# s, }5 ]+ ~. F  W) @* R1 [& ], o
+ F0 ~  r* x! ]0 u
另外一个小建议,就是move,所有的move都可以这样
! X3 B" Q# J+ ]7 F8 o" J! A: _if not move() then debug end
2 L( ~! u, t1 {1 D这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
, C+ n5 F7 n5 h  p) B$ [7 n$ A- Lplant simulation中的free libraries有AGV模板,; p. G+ }( f& R$ d
里面也有案例。
5 [/ p( v6 O6 v+ L) ~; \我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
3 g& H6 \) T) q: Q  S- M$ P0 S; ^  s$ a" _# I' B2 w: K
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
0 K% W6 t2 C0 w6 s( W0 k! \. b% q& J! d- c9 ?+ _9 D  R
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
5 c+ R$ ], S0 w) N9 W这是AGV_putin中arrive的method。. L' ?1 V6 W+ `+ G/ |. e0 K

: \/ _$ A" {! i8 z; F5 {$ p0 G当到达物料速度越高时,这个报警更多,

' b9 x( K* o; B$ [5 S5 l另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-1 16:10 , Processed in 0.016527 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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