设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8148|回复: 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'
0 Q: a& ^0 C- e' u% z2 R: M8 q*/
6 O, H+ p8 r) {; Qis
1 ?+ M7 V* w8 b' g+ {! H        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
' K: @  j) n! p' t& Edo( ~7 ?$ k, T( ~4 f
        Lan := rootfolder.Internal.Tools.AOLlanguage;
0 F8 ]5 K( [1 ?% @- F1 S# w) f        if current = @.Destination -- else return. c$ p, K% E  B3 A# X! X9 ~2 g
        then
7 x4 D8 P- }" D; k4 _9 e1 |+ @# i                @.Destination := void;
7 |2 Y- G1 O* v+ s                if @.occupied then
% X7 M1 @4 {' }6 q; F                        part := @.cont;7 C# _1 R6 V; w( A' @
                        @.transpOrder := void;
+ V+ ]8 [5 y, I5 u                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1," M* L; m5 R: U6 y
                                @,root.eventcontroller.simTime);# I6 `8 G/ _5 S
                        @.HasOrder := false;
+ Q0 ?+ g) l( @  w$ b% H, M$ k, g. S                        @.DrivingHome := true;8 y+ e5 d8 {; N9 r- M
                        rgManager.tryToStartTransOrder;
" Q' }$ e' T( v$ @6 j                        if @.Destination = void: N, j, Y0 ]2 G4 l: n% [
                        then -- no transport order for vehicle @
3 G- j5 j/ q/ E( [5 s; I! ~7 r% r                                @.Destination :=1 i5 C. R5 @, n/ M; v
                                rgManager.nearestFreeStation(@,track.~);
9 Y+ y$ `; ?* J7 `3 x4 s                                newDirection(@);   
6 |* Q, @6 c% `( `. p                                if @.Destination /= void then& P9 G9 v& z; L/ G$ E
                                        @.Destination.NumReservation :=0 |5 q+ }; K( ~- y: D
                                        @.Destination.NumReservation + 1;
# Z9 N( _' w/ _8 [; j                                end;% a6 i* K( F* t& j! m  K. A
                                @.CurrIcon := "drivingHome";
. \+ U* E: I' a# [                                @.DrivingHome := true;
, i, R8 M! U7 _- f* M3 `5 S                        end;
$ \1 K) O' E* ^4 \. ^+ z' a* a                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
/ q8 W9 o9 h( L& p, t                        part := @.transpOrder;
4 {0 y" ]  m  u: M, p7 l3 \' p                        part.move(@);-- load part9 q! t5 H6 N8 l0 p/ Z
                        @.CurrIcon := "load";
( M# Z& ~& v0 K; d! O! K: j9 U2 ~                        GlobalDistObj := part.globDestination;
. W9 C  B0 Q1 S7 i0 L$ L! Z                        assignLObj := rgmanager.rgAssignL;. {/ Q3 \8 ?2 M
                        row := assignLObj.getRowNo(GlobalDistObj);
$ h# R2 G; N+ I! W0 R                        if Row = -1 then -- since 70. m3 K' z$ r8 s: e% E. n- a; i) k6 m
                                if lan=1 then! D5 m; x8 z, @+ D, O8 G- t: p3 f
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),! T4 |8 G' W: l7 g- b" j" [
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
# Y$ i& F2 r: {4 o1 A3 x5 y                                else
" j: e6 Y# A# E3 C/ k                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),7 j# I) g" |1 K* U4 b
                                                to_str("in docking station: \"",?.~.name,"\""));                               
) u% w) O4 u* J; y                                end;
' ?! }) ^, p5 c& d8 V" G                        else& x0 T5 j4 c4 [
                                @.Destination := assignLObj[1,row];
! U* Z6 v/ s0 Y1 M+ f; r) ], G. u                        end;                        $ d+ L( h' m1 N5 Y9 ?. {
                        newDirection(@);
7 x: G( b2 ?, \) N% G1 M                        @.HasOrder := true;
; D& x( {$ C. i4 Q- p                end;6 p8 B* D& A" J, p& [+ Z4 H# p+ b$ P
        end;
9 Z% P; V+ m% K5 Aend;        -- of the method( w/ E/ z# y! |3 R$ F
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 / b6 q& M% k* v7 [2 U6 G& U

. Q+ a3 n* }2 |* ^这是AGV_putin中arrive的method。+ C3 j) T' P) l4 f. }
) r4 N+ v0 m* q
当到达物料速度越高时,这个报警更多,5 s) [$ y( @8 U7 O1 ~9 L
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。1 f7 V% F+ b1 Q: ]
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?* @: a' F4 [( E; M$ S7 H
4 v3 X5 o/ }3 C9 o# b: M
另外一个小建议,就是move,所有的move都可以这样
- z' V' a, o- S" m# ^% ?. Nif not move() then debug end
0 V2 [/ {* ?8 A8 X1 ~" V' v% F- s这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。9 t" H. x* A- `, L0 N$ C; o
plant simulation中的free libraries有AGV模板,
/ q8 [( B+ q! Z3 L里面也有案例。, _5 }5 b8 L# t% ]0 _5 N
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。6 n6 P; q) }. `  @/ U2 @

& r; h. ^% B$ Z9 K/ y+ G6 _3 l我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
0 A( b/ p" m3 B( S. X0 M+ N& X
$ c% J/ j7 C" Q4 P0 L" q8 {4 V那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
8 P+ ~8 g. I( p: ~5 s3 x5 H这是AGV_putin中arrive的method。
+ j1 S7 }, l7 _. C& z! t7 W3 O0 x( _6 D% H  I$ \7 q
当到达物料速度越高时,这个报警更多,
7 L- a1 ^( o, B  |+ k" E+ p7 b
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-17 11:35 , Processed in 0.032008 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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