设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7554|回复: 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'6 U% k0 X# ?7 ?, ]& ~2 V. w: b3 R
*/
, h: F3 u6 D( V2 C' m* Dis
7 `$ K0 X, \6 A' x- j% m1 [        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
3 }. I7 p" q* C; t8 j* Mdo
8 Z% [' S, w. m& U$ R( z* S+ N        Lan := rootfolder.Internal.Tools.AOLlanguage;
, W* C9 t  ^& a& J$ n7 A        if current = @.Destination -- else return
' U0 ~4 x1 a$ I1 b        then
* L# h# L) T. i                @.Destination := void;
5 L# X) P9 N. T, Q& Z: @  \; G& P                if @.occupied then
- t0 f5 b( y; T, g                        part := @.cont;
- [: t7 d; j/ Y% p7 T                        @.transpOrder := void;4 R7 ]  d2 N8 S
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
4 F# I/ l0 j0 l& v$ j                                @,root.eventcontroller.simTime);$ L/ ?& N! n& m" @3 n' u
                        @.HasOrder := false;
7 _  B% E3 s: B+ q5 h6 T                        @.DrivingHome := true;8 c* Y4 U6 m$ v/ k# B! l
                        rgManager.tryToStartTransOrder;  e5 u) O5 y1 A' W& c
                        if @.Destination = void$ {+ G; p6 Y8 }# J' h
                        then -- no transport order for vehicle @" F/ r7 }4 F% z* _' Y. r$ r/ x
                                @.Destination :=
2 n, h" j6 B4 i: x4 ?& ]0 i; W" T                                rgManager.nearestFreeStation(@,track.~);
0 O2 F- f' V8 M                                newDirection(@);   / k9 X" X! s& q/ ~0 o. z" E. w; E
                                if @.Destination /= void then3 _7 @; G' I0 I: S9 a  q- p! Z
                                        @.Destination.NumReservation :=9 T+ x  R2 O, O, b
                                        @.Destination.NumReservation + 1;& @% J% |6 ^  n1 ~/ C3 T
                                end;
5 E; Z$ ~4 P9 [! {+ F: I  ^                                @.CurrIcon := "drivingHome";
+ X! H. n6 P- H, c5 ^7 a' ?                                @.DrivingHome := true;
% Q5 y* T0 g/ M' d' ^                        end;6 ^" N# z7 C% F5 m( T1 B% S6 W" y
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
9 i  A% r/ G% v3 Z% z                        part := @.transpOrder;1 C+ T' R( m: O3 m4 {: f2 i4 e2 M9 s
                        part.move(@);-- load part% Z7 n! J  h2 }6 x/ s$ s
                        @.CurrIcon := "load";
1 W0 K' k* a& c; u1 k                        GlobalDistObj := part.globDestination;' [% G; @6 j* V! O7 L* r
                        assignLObj := rgmanager.rgAssignL;% o' t- w9 R/ K$ v- O- B; o
                        row := assignLObj.getRowNo(GlobalDistObj);
  O3 J* H. R; q8 ?: M, c                        if Row = -1 then -- since 70& R: F& z/ u7 S; c9 Y# C4 z% f
                                if lan=1 then# E/ b/ z3 _  x) ^( B# F6 Q% T4 G
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
/ P( y( R' e, `* n* ]  f                                                to_str("in der Andockstation: \"",?.~.name,"\""));
! C0 z: w2 l/ @                                else
: E' Q7 i: J. I9 d( r( @                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),3 R) k- |8 k$ ]6 y6 c
                                                to_str("in docking station: \"",?.~.name,"\""));                                & q4 _* g! P0 b* m! g1 I
                                end;6 \* x' Z+ c  d; d9 U( k3 W6 _
                        else
# M; d1 E+ y- q3 Z( z+ Z                                @.Destination := assignLObj[1,row];2 o+ G1 i- }9 u; ^4 |, V8 J3 H
                        end;                        6 G: L9 U/ `- x% s4 h9 N  j
                        newDirection(@);3 Q) o4 Q9 a6 f" I' o
                        @.HasOrder := true;" O6 W# q- Z( x! e" F. f# \
                end;
" `9 X4 O# ^  J; @: p: c! [- v0 {        end;% F. j9 k! c; L0 h
end;        -- of the method( p; b, x! w# v( y4 O* [* w
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
) v+ Z9 s0 X5 B* U0 v/ T. z
* _% J; Q' k  I, d这是AGV_putin中arrive的method。1 U, Z$ c% X6 V1 \& L+ o4 H" f
7 h6 G# i( d$ f  V
当到达物料速度越高时,这个报警更多,
3 H# T& w- p+ h8 W可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。' Z$ A8 G- j: V$ w1 m
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
  H% O$ @1 W, H, p5 z0 H, @
+ E, a) K# Q; L5 O! K另外一个小建议,就是move,所有的move都可以这样# b# X2 `9 ~1 H0 u6 t  c! v
if not move() then debug end  e  J! E6 b2 s/ \( r+ V* R
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
+ v( q8 U; x$ n3 G4 E( H2 d" b( V1 Aplant simulation中的free libraries有AGV模板,
+ G9 X% d/ r4 t3 S; e8 Q9 ?  z里面也有案例。  M; c8 S( A: W7 _. K# X
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
' Y/ D2 J* U- @( a, n) o5 c
( [- c( M0 E- p  a, s. V我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
3 p) q* z8 {6 U: `/ M& T
  a' t- p$ _; d& s  s; ]那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
& g4 G4 _' |6 T( X- W( _这是AGV_putin中arrive的method。% o9 Z0 [/ b' K) ^# Q  ^8 e
" s8 V6 _- v5 t
当到达物料速度越高时,这个报警更多,

9 ~, g9 }4 A( P1 M9 W0 |+ `另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-17 16:34 , Processed in 0.018324 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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