设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9330|回复: 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'' j$ {& v, e+ d+ D# v6 _
*/) D8 H( M' i6 Z3 B! k
is
% z1 _2 ~; U1 D" N1 d4 V        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
" @0 A! {  m- J' m5 d- q; [8 Hdo, w6 e, b/ R) Y3 C
        Lan := rootfolder.Internal.Tools.AOLlanguage;) H1 F" U& ?) M
        if current = @.Destination -- else return% v, ?3 f  F- j& I
        then+ c7 G6 {' d$ k3 F
                @.Destination := void;; ?+ [/ E; H( T- l: ?- {8 e9 {
                if @.occupied then
" s+ D# Q+ k6 c. I7 M5 X! ~! S                        part := @.cont;
3 H8 I! S6 S4 [% }/ r% I! g& K0 f                        @.transpOrder := void;! P4 q  L3 I$ S0 F# S3 Q
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
1 p& B) g( E" y9 `* x% Q                                @,root.eventcontroller.simTime);
) Z9 p; h; u* E* G$ r                        @.HasOrder := false;4 j! ^2 t3 M. z) K+ `8 K9 [8 R
                        @.DrivingHome := true;
% d; F0 j6 e, L. C                        rgManager.tryToStartTransOrder;
4 F- L  M' A$ E. W                        if @.Destination = void
2 V5 _9 Y) k! W6 h7 |                        then -- no transport order for vehicle @* B7 y  i" ?& a( G8 n  b$ u
                                @.Destination :=
/ z& [3 e% V! q/ J" {: P/ E                                rgManager.nearestFreeStation(@,track.~);4 V4 b4 K. \7 t
                                newDirection(@);   % `' L1 l$ J  _- @" f2 e/ g( Y- J
                                if @.Destination /= void then: ?3 w( |# ?+ K: ?& i- j
                                        @.Destination.NumReservation :=
1 S' A  n& E$ ]! X2 k; `                                        @.Destination.NumReservation + 1;
" A: S6 d/ Y* S3 A                                end;
3 z1 k% p3 U5 {3 C. F                                @.CurrIcon := "drivingHome";
) _6 h' E* {$ D+ X6 {7 d. v                                @.DrivingHome := true;: g+ y% O2 Q0 M" Q; e: I5 C% T
                        end;
- B) J; P6 V% C1 w                else -- the vehicle @ is empty, both vehicle and part are in the same dock station' ^% e: w# V( F: T* g
                        part := @.transpOrder;
6 ^- f! n. y% ~. D- N  r) u                        part.move(@);-- load part' t* c' A3 k0 {* X; u- Z* g
                        @.CurrIcon := "load";
6 G- U8 K# }/ `, J6 \. \                        GlobalDistObj := part.globDestination;5 F% R2 \# w0 ^( }: w( d/ k6 F
                        assignLObj := rgmanager.rgAssignL;; u, x* R( R0 S
                        row := assignLObj.getRowNo(GlobalDistObj);
! V8 {( `- `4 q& r' E+ y4 a                        if Row = -1 then -- since 70! H# k. o- h* f6 a) I) U, B  o) y
                                if lan=1 then
# z8 H& i) d: j6 z                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
7 W. U* U: y  a+ P3 {" d; I; O( X                                                to_str("in der Andockstation: \"",?.~.name,"\""));6 a- F# G* \' E& r- s$ d
                                else! Y! C# d' F$ D, A$ D
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),1 a* q/ S1 w9 N+ i  f
                                                to_str("in docking station: \"",?.~.name,"\""));                                ( s: [& o: i6 N
                                end;
+ K- a  s6 C5 B9 W" }: v                        else
% J0 j! U* G9 b! S! a3 u$ J                                @.Destination := assignLObj[1,row];5 b1 ~. m/ B0 _* f, }; k4 V5 z  h
                        end;                       
+ m' O) l- m8 ^3 Z& m                        newDirection(@);
9 c3 q/ W7 w* h! n3 S                        @.HasOrder := true;
5 |2 L4 Y* S. b2 B                end;' r0 X/ x; U  P& ~2 _5 B
        end;
3 P( m' I* n" v1 \" i  z0 fend;        -- of the method# ]) }0 v, ^) z9 b
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
  |5 A6 L8 q/ F! O7 F5 `8 c( S( O6 D8 y+ M
这是AGV_putin中arrive的method。- V! \2 L$ s) W/ Y) ^
- \6 C( F0 U: I2 E  k
当到达物料速度越高时,这个报警更多,
; e- M+ ~/ D4 X  i1 r0 C0 F# d! f5 j可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。& [3 {2 S, Z( |7 c
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
0 e# T- i* X+ r7 B+ Y  g$ s
# Z, E/ S3 l2 B! u, x另外一个小建议,就是move,所有的move都可以这样& X  o. w8 q7 f; q7 g: P" ]0 A" t
if not move() then debug end
, C) Q5 L& t, ~( i9 r9 ?这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。1 ?( g, D; _9 R( y( X) b' H; V! {+ S6 Q
plant simulation中的free libraries有AGV模板,
) q- f2 A$ Q5 B1 [里面也有案例。
3 z2 Q& f5 ^5 u, f我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
+ F( s8 m6 a$ P% R5 ^5 r- v3 @( X) e. c
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
, x3 h5 j6 S6 ~; |& M+ Y, `7 ~7 \9 q
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
; k0 q/ k( k" g. N这是AGV_putin中arrive的method。
2 u) b+ e+ e, B) c' g  Y
" n! y" E% g- d6 S7 T; R7 U8 r当到达物料速度越高时,这个报警更多,
( ]: ?; g* H6 W, V2 w& F/ g
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-25 20:46 , Processed in 0.013898 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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