设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8957|回复: 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 T' X* m9 _! S( ?
*/4 v9 ~& _7 I0 N- L$ d
is
3 T8 B  f* t" i6 G9 c7 e        part, GlobalDistObj, assignLObj:object;row,Lan:integer;" h; s, W: s  k. ]4 j  e( l
do
9 U! D. w/ M$ c3 K! I        Lan := rootfolder.Internal.Tools.AOLlanguage;; t; N1 I0 C" @, A$ e+ ?
        if current = @.Destination -- else return
6 r' B5 V, ^, l- T' C% J5 S* Q        then4 R2 u% b' e5 E5 P- Y
                @.Destination := void;
* t! U/ G. m2 M% E                if @.occupied then
/ `. s* `+ A) `  @- ~' i                        part := @.cont;
7 G; H* p6 y2 A: F1 t$ X8 H                        @.transpOrder := void;* z/ w: X% o) D; L
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
5 R2 W7 n6 N* Y! @                                @,root.eventcontroller.simTime);
/ o9 q/ C& Q$ ?% z2 f( M8 p6 X                        @.HasOrder := false;
# w- \9 d+ d" z6 m                        @.DrivingHome := true;
7 m/ B; K+ Z7 I2 O8 L                        rgManager.tryToStartTransOrder;4 Z( A% z9 [' w6 u
                        if @.Destination = void
) i* w: _7 M4 I% F3 ^                        then -- no transport order for vehicle @
8 t9 B5 s+ F  N9 a8 Y3 c; [                                @.Destination :=
- U9 ^9 t2 t- W3 S* j- Z                                rgManager.nearestFreeStation(@,track.~);) h8 r  U. x; m! w6 Q5 z0 l
                                newDirection(@);   : S! j1 J; |- g
                                if @.Destination /= void then# P* F1 A% v) Z) w
                                        @.Destination.NumReservation :=
0 g, w( u- k2 h8 p+ a                                        @.Destination.NumReservation + 1;/ Q( Y" Y2 W% \' l
                                end;1 j. d* M& l" H  S1 ^; u/ {& T
                                @.CurrIcon := "drivingHome";
! E+ i- L: A+ Q& L, k  E                                @.DrivingHome := true;
6 ?6 R9 a, y* K) I                        end;* ?* I. d( A5 s  B$ q4 d
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
6 @& H) v, E8 o0 W  L; o                        part := @.transpOrder;
. t/ U$ b8 I; g- A; `                        part.move(@);-- load part
5 d* J, F: _( H; {                        @.CurrIcon := "load";$ g; r0 T) m, V5 s/ z
                        GlobalDistObj := part.globDestination;8 v/ n3 V. f5 \) h7 r
                        assignLObj := rgmanager.rgAssignL;
8 J# ^* D; ]# C+ Z1 p& S/ I4 U; M                        row := assignLObj.getRowNo(GlobalDistObj);
/ o; h9 v4 a1 U% c9 Y8 U# U                        if Row = -1 then -- since 70
1 U+ F% V  p' y% e8 A                                if lan=1 then
" {' J  ^- C. L1 W5 E/ R% J                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
9 H6 f% e! u4 m2 \                                                to_str("in der Andockstation: \"",?.~.name,"\""));
/ G8 w; B) Z' m! i                                else" b1 D  W9 W' p$ r; E" g* u. f9 G
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),6 @/ x& N  N, D: ~$ T' S
                                                to_str("in docking station: \"",?.~.name,"\""));                                - Y- G! c5 j+ i" c( D
                                end;' f4 E3 r1 m. q( u- e
                        else! g. V0 k9 m$ p5 ^
                                @.Destination := assignLObj[1,row];$ b+ o, H8 O2 ]5 \1 j7 `) E5 ]$ H& ?
                        end;                       
6 P/ x2 F- E4 h% Q2 X8 c. e                        newDirection(@);
" }% N" s* K. u" g- G/ J+ Q6 t                        @.HasOrder := true;- r8 X9 H5 q9 ?6 G0 m  A
                end;
, G4 L& j; x7 @0 O+ b        end;- j5 x) Z6 I7 H& z( ~/ U  f% S
end;        -- of the method1 I& l- R5 n! ?
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 0 e. B: ^0 s& v8 I- S! r. [' c: H
: z6 L# K+ q3 i6 ?4 Q, M% s
这是AGV_putin中arrive的method。/ h1 I' }4 Y! s% H5 Y( ^# N8 q
+ D0 [6 m8 ?$ j' t- ?: k
当到达物料速度越高时,这个报警更多,
1 \/ \" J( X+ q! X0 K可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
# Z1 q+ q/ M6 Y2 r: v3 r- v9 @9 W程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?) s* }; r( x1 M: ?

( |7 A  F" y6 I- m; o! R+ r7 a& V; ^另外一个小建议,就是move,所有的move都可以这样- L  G4 J! K* r, M1 u
if not move() then debug end" h7 A' y' y0 A% X- v
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
, o' l0 J# |1 E1 k: Eplant simulation中的free libraries有AGV模板,
. f' C2 R+ v9 D4 x( Z; Y/ Z里面也有案例。3 g5 d$ e4 U; a- Z1 c: I
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
9 J/ ?; w9 o% X8 ]0 r
; ~$ V( P, Y6 l我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
# i: X" G6 h: m  @5 w/ d3 ?
# E, E! i! k( T/ p" f- Z4 t那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
2 M: Z# L5 }; C/ _' u9 A8 I0 X# {. \这是AGV_putin中arrive的method。( t( r1 m9 }/ u: \/ M

1 I9 G  o- N# g: [; e% _当到达物料速度越高时,这个报警更多,
9 g, U! p# k+ d! n: M# S
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-6 09:35 , Processed in 3.133518 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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