设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8764|回复: 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'
9 n6 L/ k) y! S# X*/2 s! K3 P) I% x3 n# m
is
, R$ j8 [3 j# O1 Z0 h9 e* ~: O        part, GlobalDistObj, assignLObj:object;row,Lan:integer;7 E* K# P: m! o
do+ F7 V; O  w0 l! w4 F# o( K: B
        Lan := rootfolder.Internal.Tools.AOLlanguage;+ {2 J# ?7 i) p# Q5 c) X
        if current = @.Destination -- else return  W7 }% {3 }  C5 N8 H
        then2 L6 e, d5 h( i4 Z9 I* C+ ?6 A5 M
                @.Destination := void;
3 k) c! q2 n# }0 Q                if @.occupied then4 L& `/ m9 m& j- S, t
                        part := @.cont;
  J- l" l. m; |) W( s                        @.transpOrder := void;+ c% e! I7 m0 Z
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,0 \1 N: W* P" {! [$ k/ K
                                @,root.eventcontroller.simTime);
0 y4 r, O. [# T+ T                        @.HasOrder := false;1 s1 r9 p, {" V6 m: `5 g( a
                        @.DrivingHome := true;
% a2 X6 z4 W8 {1 n8 v                        rgManager.tryToStartTransOrder;
* p( O3 n. l* o# Y! @& s$ w1 R6 m3 l! K                        if @.Destination = void
' _0 ?" n% G! \" t4 P                        then -- no transport order for vehicle @
# F, D; ?+ `2 a, K7 g" K                                @.Destination :=/ Z1 e- N5 j: |! I0 y! e, q5 Y
                                rgManager.nearestFreeStation(@,track.~);/ a! r0 }! i0 m/ u' j
                                newDirection(@);   
0 e- d9 q# U0 o5 u$ `                                if @.Destination /= void then
1 `) y( H8 l0 g( K                                        @.Destination.NumReservation :=
# Q, _/ K  Q6 O6 R- P* j2 W                                        @.Destination.NumReservation + 1;
# ~  |' t. y. H  C4 p* E                                end;
; ^+ ^; }. B. T- w4 B                                @.CurrIcon := "drivingHome";
$ x' G' ]% H, ^# A                                @.DrivingHome := true;
) u1 j; `- o# t, Q+ k& T. J' m                        end;
! }' k7 L$ c& j0 l                else -- the vehicle @ is empty, both vehicle and part are in the same dock station$ K" S5 X8 H7 Q8 @
                        part := @.transpOrder;/ x" R/ V3 }8 c: |
                        part.move(@);-- load part& f/ U( x! L9 a% I6 V, w% C
                        @.CurrIcon := "load";
0 ^& \1 J4 r% l, o/ K. _/ U                        GlobalDistObj := part.globDestination;! E! k4 s& p6 ]" t; i% @/ i1 G7 @
                        assignLObj := rgmanager.rgAssignL;  [, h* b( ?$ [0 C, J; K# C
                        row := assignLObj.getRowNo(GlobalDistObj);. N" [3 V& o( m9 n- [: [. r* u0 N5 J" |
                        if Row = -1 then -- since 70
0 S2 z2 L3 _0 s+ e, `% ?                                if lan=1 then
3 [$ h& _6 @2 x  u' B4 H9 Z) h                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),# d& t1 Z9 W" s0 D8 `+ {
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
; B' g) U, ^7 F                                else
& Q3 a3 R2 g+ }8 k; m* U                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
$ u4 F& o' P5 K% d+ ]( [                                                to_str("in docking station: \"",?.~.name,"\""));                               
7 _& n) p- T. Y4 A$ f                                end;
3 q# D" F3 P- V0 J) \                        else
: H- O9 q2 r$ U/ S( Z, q( l0 O                                @.Destination := assignLObj[1,row];
# e  ~- r6 u- I                        end;                        4 X6 `# _, l/ r1 ?, s0 _" [
                        newDirection(@);
: e# C8 y/ ^1 N7 E- a9 N- A                        @.HasOrder := true;
' G/ W$ n4 d( a                end;
! H9 I# P2 g& C7 J' J* p4 M        end;) N+ W9 {8 o4 p; M5 ]; G5 r
end;        -- of the method
- F3 c4 }9 B% O) {' k* {# t% w; _
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 : q3 w5 B, I( [& ~) B# r( n
8 a: y- W0 o) k/ z
这是AGV_putin中arrive的method。
7 U2 i" Q' o( O0 X9 H
. [9 q2 _7 t0 \- M/ q: y! D9 _当到达物料速度越高时,这个报警更多,. W6 z. }, f5 d2 s
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。+ Z: J  u. @0 e' s( F
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
/ x3 V- S; M' n  E, F5 e4 @
! U8 c, u& O0 @. Z5 i另外一个小建议,就是move,所有的move都可以这样1 _$ S1 f% T  Z8 S
if not move() then debug end1 D- _. {: w& z- r+ [: M. v" ], d5 B
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
" f) j, y. z1 Q) a) r) J1 Eplant simulation中的free libraries有AGV模板,
7 I/ I9 k$ A* D4 n3 @4 [4 n' K6 E里面也有案例。
6 E0 o- Q  x* n/ I+ ^2 J我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。& G4 Y3 C2 t2 P4 a  i+ G

* G3 Q4 X2 H# c9 E& q6 R. g7 Y6 B我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
9 Z# L. ~9 w2 [+ W& I: h: w* i; |; @* i1 L$ X
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
0 C$ H& E$ v* f9 C$ c这是AGV_putin中arrive的method。
0 L+ a- F; \) e" ^" u' [2 e
  Y1 v4 h5 S- x+ q* ~0 p0 o4 h当到达物料速度越高时,这个报警更多,

( Q# }8 o" N% Y% G( {8 ~$ p- Y另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-25 01:28 , Processed in 0.016515 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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