设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6224|回复: 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'/ S& f% p4 \% R6 q" ]/ _
*/' B! j/ J2 q" Y" s# k
is
5 ~3 b% R3 g/ N+ A* A, M, n        part, GlobalDistObj, assignLObj:object;row,Lan:integer;# c+ J' K# t, Y8 R
do
. y  l1 A  B* w! N% z0 N        Lan := rootfolder.Internal.Tools.AOLlanguage;5 V- m  `. C# V7 o" p7 v0 U
        if current = @.Destination -- else return
% i' n7 c3 @4 Y8 T$ k( y; A: I        then2 N' m5 c  f' F  W2 N2 ~
                @.Destination := void;
) q. \( v% t  e/ r6 O7 b  r( b                if @.occupied then
1 b: j' O9 T1 M6 v' J( a                        part := @.cont;- @* E3 f7 R9 e) N! D+ J
                        @.transpOrder := void;
9 ~, q( s/ W+ z/ N# q2 D  u% T                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,+ C$ L0 H2 b4 S- b
                                @,root.eventcontroller.simTime);
9 W" a3 r8 F) {- W* }                        @.HasOrder := false;
' M' R+ S. Q- m" l7 Z                        @.DrivingHome := true;
# p$ n6 z8 K/ Q& D9 b& ]1 L& A" N                        rgManager.tryToStartTransOrder;
/ e! ~5 x$ C3 o; D                        if @.Destination = void: N2 J# U1 F% m4 k
                        then -- no transport order for vehicle @
5 O6 a9 R3 R" Y& T) b                                @.Destination :=( a9 G4 e$ i/ k, z. |2 N
                                rgManager.nearestFreeStation(@,track.~);
0 T" I& ]; A' j, y" r                                newDirection(@);   5 n* ?- B7 s' V9 P# [9 S
                                if @.Destination /= void then
0 ~# D" R- u0 D; n3 p                                        @.Destination.NumReservation :=! H1 p* [4 t  ~3 c& ~3 w9 P
                                        @.Destination.NumReservation + 1;8 N$ U( u  x; Z$ W
                                end;
- |- n/ g/ I. T$ J) K  R                                @.CurrIcon := "drivingHome";
+ o3 a1 t- ~8 a$ O2 w$ C                                @.DrivingHome := true;
9 G6 b7 G! |8 h1 q* c% |5 T                        end;. a) `6 h+ ~  s5 i7 l" e
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station- B+ [# x# z: J! J
                        part := @.transpOrder;
, b3 V" }% n' j                        part.move(@);-- load part
; F* F5 }2 {- U# b  y* p2 T8 T/ s                        @.CurrIcon := "load";+ h2 H: L7 e$ u- n/ Z6 W
                        GlobalDistObj := part.globDestination;7 N2 g: ^+ j6 N- z
                        assignLObj := rgmanager.rgAssignL;
7 U. m2 I& T! R$ S" i                        row := assignLObj.getRowNo(GlobalDistObj);: o% |1 D, r4 A% ^- V
                        if Row = -1 then -- since 70
, L. O1 g& c9 Y                                if lan=1 then9 Y4 |5 H2 B2 N; k% }% y" c
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),5 D. _# w, Q1 n% o0 V9 g
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
9 F; f/ T9 w; M' L1 Y$ i% W! ?1 ~                                else
/ d1 Z0 U- p8 M, M) E2 d                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
9 |1 M$ i; g. ?7 [                                                to_str("in docking station: \"",?.~.name,"\""));                                & S. d3 ^: k' e2 a/ s
                                end;
/ i7 a- [! J5 `) b8 B, Z% V2 `                        else
  @! ~4 G. C9 J: ~, |" A" _                                @.Destination := assignLObj[1,row];
) B1 g+ Y# p1 C                        end;                        0 u/ s3 a9 u" L9 [2 z
                        newDirection(@);
1 ]5 o7 c' Z& s  K/ U! A                        @.HasOrder := true;
5 h. K  x" T0 D$ P9 G                end;& l# f( v+ o2 i1 t
        end;+ I; B3 I# ]( Y2 Q! K: m8 \; W
end;        -- of the method. Y2 J- X: W/ i. S' N: Q% y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
$ [6 |! C& G- ^  ?# ?6 u% T
, M- [) `5 @4 b% G( Y1 O9 W这是AGV_putin中arrive的method。
/ @9 }2 \9 A: C3 ^! Q  p4 D% t5 M* r. e+ Q% J) F' [3 [7 O  A
当到达物料速度越高时,这个报警更多,
( M! t& B( d+ l9 P( y可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
/ G6 K( O& w5 M程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
$ L: ]3 X, D( l5 [. A6 r, q
1 P, H( h! t" p6 h% K; J' J另外一个小建议,就是move,所有的move都可以这样
7 |9 q7 P3 s- i2 t( T8 x( Eif not move() then debug end
8 j7 I# d, ?# w这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。" r, |: g$ d8 E
plant simulation中的free libraries有AGV模板,& t$ M% m' {+ ]. W
里面也有案例。6 a" b# U8 Q. a
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
* d5 e5 v$ @6 {  I, P
/ E7 d/ J( `* O' {- ~  n6 D3 i  `我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 3 _: l/ y' V) ?! r

; N! W: C, _1 s) ^8 I那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
0 p) ~- L6 j& I这是AGV_putin中arrive的method。
* c5 g5 E: E: ?- E
1 V  c9 Y; K* g$ i当到达物料速度越高时,这个报警更多,

% S% a1 L# `1 V3 q$ U2 ~+ C; `另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-25 18:47 , Processed in 0.020594 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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