设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8702|回复: 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'- f+ W3 w/ D& N8 a
*/* |2 Y! c( ]; M3 q( U
is
3 A: r; _7 C* c# o, G3 M! {        part, GlobalDistObj, assignLObj:object;row,Lan:integer;% V. [0 O' E/ [# Z  B
do
& }4 G" b; p; N: N  J* \) E        Lan := rootfolder.Internal.Tools.AOLlanguage;
' Q& n8 o; N, T  d; z; m: {        if current = @.Destination -- else return+ A  b! H6 J2 I2 V' v5 ?9 w
        then/ N4 X& }$ X2 x, @1 O7 Y9 P# S
                @.Destination := void;7 w! R9 o5 ^- M
                if @.occupied then
: J+ ?0 q" j- @+ {2 z                        part := @.cont;
9 M3 i$ n* I1 w3 g, U+ A8 z                        @.transpOrder := void;
& h; o8 O7 H% j& H; N5 {                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,9 B+ {0 V3 q! ]' |+ L7 U2 \8 I
                                @,root.eventcontroller.simTime);, l) N$ i0 |1 t
                        @.HasOrder := false;
5 N$ ?1 {& n# p. ^5 `- {7 Z: j. A                        @.DrivingHome := true;& ]; R- s3 J" m5 I
                        rgManager.tryToStartTransOrder;( D* `- u+ Y. Y* x/ q- T+ c7 u
                        if @.Destination = void
& j  e' `- H* v: c0 h                        then -- no transport order for vehicle @; ~1 v6 l+ K6 C. n4 w
                                @.Destination :=- k1 y2 j; Y1 l9 I6 f
                                rgManager.nearestFreeStation(@,track.~);# @$ K2 W; O$ l) y- O, {
                                newDirection(@);   
$ u" k. r( a; Q4 G5 I                                if @.Destination /= void then
3 A" ]7 j* f( o( w                                        @.Destination.NumReservation :=
" T! e" ^2 X4 M: z                                        @.Destination.NumReservation + 1;
$ Z. H) E- r5 N' E3 g                                end;( s+ r$ @. U5 t/ D, F2 Q. ^
                                @.CurrIcon := "drivingHome";, o: c% G  C! a+ @) L
                                @.DrivingHome := true;: |$ d  q3 n. k1 n+ Q
                        end;# o* I' Q; g' p) c! Z+ p! E
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station" k2 ^% s1 x3 C0 d; e
                        part := @.transpOrder;
2 C0 ^# r6 m: _( h; h0 \                        part.move(@);-- load part0 q# M  L. f2 K( @) X) Z8 n/ p
                        @.CurrIcon := "load";
  w* [5 s! ~; \  P; t                        GlobalDistObj := part.globDestination;
* w2 f* H  w0 K  d( a                        assignLObj := rgmanager.rgAssignL;
) {8 C2 X4 H. R8 J                        row := assignLObj.getRowNo(GlobalDistObj);9 `3 y5 @2 R7 N; O8 g# L
                        if Row = -1 then -- since 70  A- \- h& ?. I; p, N2 t
                                if lan=1 then
; V6 o, b) B; ~/ H/ w                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
6 p, u0 C  Y& U. N  i# x6 V                                                to_str("in der Andockstation: \"",?.~.name,"\""));
' m: Y) f" g' K! @/ L7 V                                else
  f2 J; ?' {: j; i7 U: d9 B+ U5 @9 V                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
, ]  y4 D$ A+ Q& h8 D* |                                                to_str("in docking station: \"",?.~.name,"\""));                                * q; T/ @: q: k
                                end;4 C- m  J: ~) o
                        else3 R; t4 g2 a8 g# M& a9 ]
                                @.Destination := assignLObj[1,row];
+ J0 G% x0 @; v# |  I9 g                        end;                       
8 _$ `* z9 f0 J* Z                        newDirection(@);+ O. \2 C6 q% O2 z" `6 H1 ]
                        @.HasOrder := true;5 N  L5 x4 G, T: g5 f
                end;6 D1 x1 Q3 d+ c$ }% S+ q8 [! K8 f; j
        end;9 ^  c- j2 r( t. ~; p
end;        -- of the method
- Q. E, ^1 a. V
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 / `* X" v7 f. g0 f, m& g

+ e  _( d9 p/ q7 i这是AGV_putin中arrive的method。
7 |& y* H' i3 h  \! [2 i' k+ x4 K" ]% ~# O4 Z  u: x; }
当到达物料速度越高时,这个报警更多,/ W- Y5 m# W8 r+ C  I
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。  ^1 O- F9 |5 w% g/ e
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
, a6 W. u# X$ i/ G7 h! r& z3 m2 s  q5 m' W3 _  f
另外一个小建议,就是move,所有的move都可以这样
( M% ~$ s# v- ?' w' Jif not move() then debug end
& a6 L: Z1 a9 d这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
. w' _) s. i! {+ ?( C. g  `6 d- Dplant simulation中的free libraries有AGV模板,
! R* b* D1 x( E7 T里面也有案例。
! w8 d5 @3 a' ?% w: d8 A我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
$ s* E3 i6 W3 S
% u  A+ l4 f- y9 ^/ f我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ! n# }; D! R, @! V; n; {

2 d) H1 u; [9 O/ ~  [& M5 W那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 . j5 |# X6 f) x7 ?0 d( v
这是AGV_putin中arrive的method。% Z0 G; k! U6 Q' V+ i6 U
" x; J$ U4 o  w5 W
当到达物料速度越高时,这个报警更多,

# p* ~) I) u! M另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-21 08:57 , Processed in 0.015594 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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