设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8278|回复: 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'
2 K" S& ~+ u6 e, x5 P*/& j3 ^; f6 c) Y* R6 `
is
# V2 [/ t( A. @# X" C        part, GlobalDistObj, assignLObj:object;row,Lan:integer;% B7 G$ K0 e8 M/ e) q5 y, q
do
' p4 v! N3 c- r0 q        Lan := rootfolder.Internal.Tools.AOLlanguage;3 }& K' w1 G7 ]/ H5 K& E% {
        if current = @.Destination -- else return* o* K  L9 f, d0 ^
        then0 F; ]/ a9 E; P$ g
                @.Destination := void;
* p7 P( m) p, t                if @.occupied then$ f2 {( U$ B+ W4 |2 h9 K8 |4 a
                        part := @.cont;: S0 P7 z: @3 M" ^4 A
                        @.transpOrder := void;4 m2 u4 V; w) Q! h
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,6 c- p* @  ~/ q4 u
                                @,root.eventcontroller.simTime);
. {+ Q1 v7 {( u% x/ w8 q8 s  F; b                        @.HasOrder := false;
7 d& o1 E+ Q3 L/ |$ \' ^                        @.DrivingHome := true;
3 \9 P' }! w) w5 M4 G6 S                        rgManager.tryToStartTransOrder;
9 p# V' v' V8 W9 E- n                        if @.Destination = void
2 a  {9 {  d( M. ?                        then -- no transport order for vehicle @
, G' t- P4 b1 W# t  u7 P1 p1 b' g5 x                                @.Destination :=  Y+ H& h# C/ g. V) ]2 L
                                rgManager.nearestFreeStation(@,track.~);. \; f/ U5 e+ p7 s* k+ i3 J' h& u
                                newDirection(@);   1 A3 o/ V( A- ?: s/ S1 D- O0 E! c7 @: q9 l
                                if @.Destination /= void then
+ a# i1 {9 l' P6 l                                        @.Destination.NumReservation :=: _+ y. `9 s" F5 L$ d" C2 C! h
                                        @.Destination.NumReservation + 1;
% [, _9 P9 V4 k1 V! M  \                                end;( T: d( ~; K' d" O( @% ?5 W
                                @.CurrIcon := "drivingHome";8 y; J: j2 R. H. e6 j+ c
                                @.DrivingHome := true;5 v+ V1 A6 p0 m& [: f0 r
                        end;
4 H% L' i; ~) k) ?* Q4 d/ S. Z! P                else -- the vehicle @ is empty, both vehicle and part are in the same dock station3 t: F5 o( K0 ^: |8 D& o: Y
                        part := @.transpOrder;
2 ^% z! D8 }. o6 s0 _- q1 M. _                        part.move(@);-- load part! R( T( J7 P4 c  f% X
                        @.CurrIcon := "load";  l3 s! q. x  k/ _. q  G  D
                        GlobalDistObj := part.globDestination;
( ], Z! W0 o- Y9 K                        assignLObj := rgmanager.rgAssignL;& J" t+ y9 V  ]& Z1 r+ K
                        row := assignLObj.getRowNo(GlobalDistObj);
+ c3 r' m, @3 H' x( C& k4 _- M                        if Row = -1 then -- since 70
2 Q" h! M: Y6 U                                if lan=1 then! N% M2 m; ~- r$ B
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),- e$ n% k& H( t& w+ B" }
                                                to_str("in der Andockstation: \"",?.~.name,"\""));9 _6 W: |. `1 y, `) r
                                else
" t/ G( y+ B* p0 {# k: U4 E' B                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),; s; u9 r6 `2 g; X( W5 r" o! J' D
                                                to_str("in docking station: \"",?.~.name,"\""));                                3 a6 m( u4 m! F3 {1 Z: m
                                end;
4 f; l% G* o1 A7 K# r                        else
! X3 I0 P4 O! C7 M! y* M5 U                                @.Destination := assignLObj[1,row];4 ]$ N6 G& @3 [; I. [& d5 k2 O
                        end;                        ' k; A( A% W9 |  F
                        newDirection(@);
9 y+ H$ z$ J& Z. K; G                        @.HasOrder := true;
- s; Y2 a9 F+ _, }+ q6 A* p                end;& ?) F$ F; e! J2 d# h2 ]% ?/ N
        end;* j: m7 y, }7 ?/ @0 u2 w
end;        -- of the method
( p' X( j5 V3 @- X1 v/ E0 B
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
  ]( ]1 f8 |5 D& D6 K% y
8 |  C4 E- i3 |; _  y3 c这是AGV_putin中arrive的method。
+ {* ^& K! ^: D  o/ D, t6 M; L+ R3 I4 K' ]6 |
当到达物料速度越高时,这个报警更多,8 H& @! H8 h7 P! F* V1 H* V6 ~( v1 y
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
3 V" O7 k' f  B: [2 S; W程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
  ]4 ?* z: q9 F8 q7 r
! q. |5 @0 q2 K4 ~- r另外一个小建议,就是move,所有的move都可以这样
* x9 {0 ~# r8 n* G" iif not move() then debug end
* F! {+ G# |9 C  Z8 i6 `0 y; w这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
  O7 P" X# X( h8 @+ y  Xplant simulation中的free libraries有AGV模板,8 ~3 _( N9 N5 {
里面也有案例。8 z4 S- n3 f7 X1 |  W
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。2 B7 U& S5 T5 T0 x

6 z% J$ z: C* i4 v; O( a1 }/ k! s我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
5 s0 C+ `- O9 f9 f7 @% O! B  Z) B3 }. h
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 + J5 |( e6 Q6 X1 T+ U
这是AGV_putin中arrive的method。6 g5 ~& N* f, _3 h

7 O6 q; G; c) P# S2 h当到达物料速度越高时,这个报警更多,

6 x! ], D1 m( o4 W5 f8 t另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-24 20:56 , Processed in 0.021133 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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