设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7954|回复: 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'( C0 `% _8 W% o, G: m0 n
*/6 S# N/ Y$ u' {; o( _. C3 I  v
is
3 `# a( z$ C3 C- p+ N/ i# U" H# F: G        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
( d2 T( U. r1 Z7 E  edo- `3 r5 y5 m5 c+ i8 m
        Lan := rootfolder.Internal.Tools.AOLlanguage;! |. m) ^3 N/ D$ f, L( ~
        if current = @.Destination -- else return
- c6 g0 \& _6 i+ r* ]        then
9 F% s" O  v7 Y( ~$ _$ z: F* ?                @.Destination := void;
/ C" u1 d8 {) J" a0 z% g                if @.occupied then. K4 I8 ?; z8 E9 P( o* Q  G
                        part := @.cont;
! z* l" I$ p" P& B                        @.transpOrder := void;
) \  C; a& _2 L+ G                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,3 @$ p7 j* k+ w5 Y
                                @,root.eventcontroller.simTime);- r6 p" ]5 B4 K3 T6 F
                        @.HasOrder := false;* \% p; S2 E1 ~( n( H4 ~$ M
                        @.DrivingHome := true;% c) a' a% n7 ^5 \- k6 G# B* o8 m6 ?
                        rgManager.tryToStartTransOrder;
/ j# Y/ p: v& C" g: w8 d# l0 x                        if @.Destination = void6 u- i) R, S/ t" R; k* |
                        then -- no transport order for vehicle @; @  d- Y/ X% r* [) G- j
                                @.Destination :=
7 y+ T+ J. J+ X9 D' h                                rgManager.nearestFreeStation(@,track.~);
( D( F$ p+ j" \/ w5 k4 @                                newDirection(@);   6 o3 X+ }( v3 K( m% {. g
                                if @.Destination /= void then# B$ r3 b7 O, q1 o/ e7 S
                                        @.Destination.NumReservation :=- Z8 _1 W& L. ^, V3 J
                                        @.Destination.NumReservation + 1;
3 |5 P' H9 {" N5 Z5 c! S+ H) ]                                end;: d9 Q9 l% g% L' h
                                @.CurrIcon := "drivingHome";# ^: {. }4 ~5 H( u
                                @.DrivingHome := true;, s% J8 s% q) p* W* Q# P+ f# M
                        end;9 a" S# x' L; E6 N, z% z! w) ]
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station& l) V* Z1 S: w) U' J
                        part := @.transpOrder;1 A5 X* a7 h$ V( U; Z* x4 @7 N
                        part.move(@);-- load part
9 f% l0 q$ x, @! @9 n                        @.CurrIcon := "load";
# i! F5 R& t2 C6 ?: R" [$ \& Y, g' B                        GlobalDistObj := part.globDestination;! s* i) r( h+ ?; Q! f6 O
                        assignLObj := rgmanager.rgAssignL;
; e7 y8 S- M' b) Z$ z, e% X                        row := assignLObj.getRowNo(GlobalDistObj);; k1 X. W8 Y2 J, g4 s: }6 L
                        if Row = -1 then -- since 70
4 k( y: D9 q# c* i4 V  F                                if lan=1 then
/ a$ W: T& K) [) _                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),2 [' D6 u- u0 ^( z. k: R7 A
                                                to_str("in der Andockstation: \"",?.~.name,"\""));# M& i0 m, b9 x
                                else, K- D* g4 {. C8 U. N/ E
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\"")," w. y( A" }* z8 P: U, ]! l7 z
                                                to_str("in docking station: \"",?.~.name,"\""));                                7 T- V7 _' z4 B5 `8 z* l, ^
                                end;3 ~! ^! \: q' I2 o4 G
                        else" A: q9 Q- V& n3 p% W1 T8 u% S
                                @.Destination := assignLObj[1,row];
; N' w5 p  ]6 m% |$ M8 u0 J" H                        end;                        6 t  m' }( o4 D2 f
                        newDirection(@);/ J/ @1 p' i* A) A- m6 R
                        @.HasOrder := true;
* N7 m( y* {! K' {* d+ n                end;
6 |* E" E4 Y4 j0 e: L" C        end;
, Q0 Q" r/ A& q# W. c  N! R9 Lend;        -- of the method
) Y& G4 H2 D. n. S
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 9 T8 b0 x# ?  M
# I( Q# W" C3 q+ I% d
这是AGV_putin中arrive的method。
1 p8 T1 j5 H* ?) z# S- N; t5 R' W# I* ]8 O5 d
当到达物料速度越高时,这个报警更多,
9 ?2 g1 _+ d) A可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
" [* N6 z: ^1 j2 B程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
& z+ F* l! F' v7 E4 J# p% e7 W* X0 D' a0 h
另外一个小建议,就是move,所有的move都可以这样
9 L! _" R' k0 |+ X3 u7 ]8 Iif not move() then debug end# i3 T" M+ F7 e4 C7 W
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
" `9 Y, O$ w0 Xplant simulation中的free libraries有AGV模板,
2 D6 e1 L6 Z! K$ Q. L里面也有案例。
8 B9 R3 H9 c! n: p0 ]我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。: c: s. ^8 v2 i8 l9 }  j
4 O' t! [# E2 c; A  J7 T7 i
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 & |: C/ C( e) r4 }: _% m
8 ]" ?1 p4 K) l/ C
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ' u1 Y( x' U, |( G
这是AGV_putin中arrive的method。
4 O1 `7 _/ s# ^4 f! ~; Q) ]: q
9 {$ P: Y: t" m( k3 N' J当到达物料速度越高时,这个报警更多,
9 {- I0 ]6 W, y0 g# p
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-7 10:01 , Processed in 0.017270 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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