设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7079|回复: 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'
( p+ ~% n3 ^7 f) ^: ]) l: |6 e*/7 I- h" n$ M% s( |
is
$ x4 D  Z3 _% ?0 n        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
. e( t# ?4 v9 t3 g  I, b7 vdo
* N, V+ u( z. G$ h        Lan := rootfolder.Internal.Tools.AOLlanguage;
% @* f! i7 _( i. K        if current = @.Destination -- else return# K. s+ @& b, u! B* P
        then
* s* V; @7 k0 `7 Y9 @                @.Destination := void;4 p9 ?# f. W0 P, C+ B
                if @.occupied then: f  e5 h! k% R0 I# c
                        part := @.cont;
4 u7 @/ b2 A7 A                        @.transpOrder := void;- J& i3 ~# U+ n3 e# r
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,1 U0 a! d) g" J( m# U3 L! g7 E
                                @,root.eventcontroller.simTime);
3 F. b& k% _( a! q6 e* @3 z  c                        @.HasOrder := false;
" H: Q/ k+ I& U                        @.DrivingHome := true;
6 S- J+ ]- V7 q" O$ Z                        rgManager.tryToStartTransOrder;. a2 E3 N6 ]: l9 v) v; b/ {1 t
                        if @.Destination = void3 b! f, j6 o% I5 ^& g) D
                        then -- no transport order for vehicle @( }3 [( r7 A- B  X$ ^' l7 Y0 ~
                                @.Destination :=
3 ~! g  H4 t7 H( W                                rgManager.nearestFreeStation(@,track.~);
; ^4 z; e% }- P3 s5 T! y                                newDirection(@);   : g0 ?$ V8 ^  x- y2 p
                                if @.Destination /= void then7 Z' X$ \  h6 N/ o4 q5 e* w. `
                                        @.Destination.NumReservation :=
2 J# I( h/ Y5 [6 q& p6 Y6 T8 q3 j                                        @.Destination.NumReservation + 1;
6 c" j( y5 a/ j1 T                                end;$ p  z+ u, ]5 C+ M1 G1 f5 \  k
                                @.CurrIcon := "drivingHome";) h) S6 x0 k8 U' g: M- h7 S# i% J
                                @.DrivingHome := true;5 \# N, Z4 @" j) d
                        end;
- V* k8 M; U# j                else -- the vehicle @ is empty, both vehicle and part are in the same dock station. G( s; ?1 \+ [* s5 r
                        part := @.transpOrder;
0 p% s7 P1 P, A+ L" F% g                        part.move(@);-- load part% D2 v# ~9 ^" ^0 x
                        @.CurrIcon := "load";0 A4 ]/ \2 m; a- y$ D
                        GlobalDistObj := part.globDestination;) [# R9 a' \$ B% J, C9 S& G
                        assignLObj := rgmanager.rgAssignL;
1 ?& h  w6 o/ v# d( J" B) J                        row := assignLObj.getRowNo(GlobalDistObj);  H  P; T% M% a  K9 _" X: ^6 E: M
                        if Row = -1 then -- since 70
  Q% D# e$ _" ]0 m4 h$ H                                if lan=1 then' }' ?9 S2 b; k9 r% @8 S
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
1 E2 f/ a- c. F7 _# ^; B$ |                                                to_str("in der Andockstation: \"",?.~.name,"\""));
. P" X/ E0 Q* S                                else2 r) K1 Y4 r4 U4 p; r( u# o
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
- p% z7 G, k) d% f                                                to_str("in docking station: \"",?.~.name,"\""));                                1 q2 F- S5 E! Q3 v# l3 F8 F! d- M
                                end;
/ j/ ~& a5 ?: l5 ^8 ~* H                        else
1 m& `% u. U7 u0 a6 z( d                                @.Destination := assignLObj[1,row];
, ?6 K- w  K* h: f$ s! ]3 h                        end;                       
! A, A! `7 C; q                        newDirection(@);
+ R, B# F1 Z. \4 ^/ R7 v! q                        @.HasOrder := true;
, O! }" V$ t9 ^8 l8 \                end;
5 C( `& `# G& C& k$ F; }$ y' s5 o        end;+ r* O4 [  d# v6 o
end;        -- of the method( w/ {/ k9 I8 H5 i9 d8 u' S
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
  L9 X' z6 X) Y) P) H
( [2 G  N; ~9 r0 ]6 E这是AGV_putin中arrive的method。/ g7 \, V% s0 P0 l# Z+ x: }

4 E" \8 S4 Q0 W当到达物料速度越高时,这个报警更多,8 K6 ]0 x4 |* J( C3 H' r
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
9 D, S- v) ~4 e# ?程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
. v( ~- R; i8 h5 Y0 y; K  M1 K  o- s, H5 K5 f( y' p
另外一个小建议,就是move,所有的move都可以这样2 ^5 `3 ]) y# ^# B
if not move() then debug end6 L) Q4 H9 k6 V: T8 U
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
0 j, h" f1 s5 A# P5 o) F! p# _plant simulation中的free libraries有AGV模板,
# @. c6 E+ L  D5 T9 I2 ~; U( Y* p里面也有案例。
) x( |* w- [7 n/ @4 \+ C我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。: o, m7 g. k7 ?, ^* K/ L
' d4 @% A0 R4 f+ Q) l: C  A
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 % U8 b; X1 ]: X' V  Z4 |4 j4 `

6 u3 T* w5 m: H% t3 D+ `# v9 M那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ; x+ c: Y  X! E% K( Z& b3 x1 D
这是AGV_putin中arrive的method。) ~% a/ o# C& g" N# S/ O

5 Z" [+ @" b2 i* n. |当到达物料速度越高时,这个报警更多,
/ _  s8 ^1 q0 G! k
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-15 16:45 , Processed in 0.018881 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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