设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8033|回复: 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'4 o& R# n; o' q, b' Y; ^0 Y
*/
, f" a; a% G" o7 n3 }8 {is
+ G+ f" V9 r* F! B; R        part, GlobalDistObj, assignLObj:object;row,Lan:integer;8 i8 B3 Y- w' J( f) J
do6 [8 w/ m4 H: R7 F
        Lan := rootfolder.Internal.Tools.AOLlanguage;, L- E% X& R/ x
        if current = @.Destination -- else return( X( H& x/ i0 \1 a
        then6 Y: a5 @6 [- U4 ~% P
                @.Destination := void;2 `( l2 u! b" I
                if @.occupied then
3 Q0 M6 E1 r, {: N' `* B- [                        part := @.cont;
! P& v, |' q2 n. Q0 @+ f                        @.transpOrder := void;
) {8 E7 c" _; ^5 E) x                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,2 e( i5 V' \- P, C- X+ H" Z$ Z
                                @,root.eventcontroller.simTime);6 Q% V' J0 p7 h/ r% K; r' z
                        @.HasOrder := false;: Z( X! D, X( n9 _6 p6 m; v
                        @.DrivingHome := true;
' s6 Y& G, K( f! H# B' W8 L                        rgManager.tryToStartTransOrder;
& ^" l& o7 m) f$ @3 Y5 [/ L                        if @.Destination = void0 c! b, ^6 ~2 E1 a+ N) f' b% a- @
                        then -- no transport order for vehicle @
- ?) J3 r: K; p$ w9 ~5 c8 D$ A                                @.Destination :=7 }' ^2 o3 b3 Z+ I7 F: w. f
                                rgManager.nearestFreeStation(@,track.~);
- }# w: L5 Y, D/ g' P9 d2 Y                                newDirection(@);   
1 a6 a2 n; |$ ?' Z7 g                                if @.Destination /= void then
/ h3 B: s( e+ a0 q' x- b' D' K2 w                                        @.Destination.NumReservation :=- k& j5 U6 q$ {7 i" c, @) E5 m
                                        @.Destination.NumReservation + 1;
1 R1 p# o& K- n* L5 a                                end;
4 I$ f9 N, W! W                                @.CurrIcon := "drivingHome";
0 v6 H2 Z1 n# H, A8 m                                @.DrivingHome := true;
0 h1 b& B4 k* U: _: U. N# \                        end;( m1 P3 G3 e% ?
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station; N7 @! |" Q: G1 @" A! f
                        part := @.transpOrder;
% H: x& g1 k' L  g1 U                        part.move(@);-- load part
) i/ a: Z/ J' {                        @.CurrIcon := "load";
7 t- J, |, R: [0 A5 c5 Z9 t7 {: e                        GlobalDistObj := part.globDestination;9 g) H3 r1 p6 p  S9 z" H& i, ~
                        assignLObj := rgmanager.rgAssignL;
0 Z9 ^5 H2 V. f- k: I. x5 W5 U                        row := assignLObj.getRowNo(GlobalDistObj);
; h( h2 n0 ?. ^* X, E  U; v                        if Row = -1 then -- since 70; y5 g/ ?6 I8 w8 A) I4 B
                                if lan=1 then
9 ^: y; ~# b" O( P# F                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
( ~" G! u6 J6 h3 a7 p/ z1 F" ?) h                                                to_str("in der Andockstation: \"",?.~.name,"\""));
+ @+ l  N" e, a. U9 R; j1 A# S5 ^                                else. F9 l* J3 ^# Z4 T2 z
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),* C9 j+ j+ E; c# A- l
                                                to_str("in docking station: \"",?.~.name,"\""));                                # H% k/ e$ ?  Q& N! E
                                end;# ~' o* v$ J; v6 y+ _+ P! s
                        else
: [: g- |, u) q1 E                                @.Destination := assignLObj[1,row];, I3 A' d% U7 i/ D) ~  Y/ L
                        end;                       
4 R! Z" G. |; ^9 P" b                        newDirection(@);
+ O( K; Q. h1 H8 p$ D* Z                        @.HasOrder := true;8 ^% |/ o' _' s
                end;4 T/ N* m) K! ]
        end;
) {. p; ]: R! n0 b2 @6 Q3 t" N2 Qend;        -- of the method
7 B* [$ Z. J1 j# N1 E$ p
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
( y% k: l# U% E: ]  Y+ T
, M5 N2 f9 u% H5 m3 U- |1 w" B这是AGV_putin中arrive的method。
9 |$ V! @3 d2 {+ ^. `9 m1 N
2 [1 v6 A1 g4 l. V当到达物料速度越高时,这个报警更多,/ V* d  A! H  b8 M, \; A
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。7 X/ U6 R8 r; a+ g0 b
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?4 }  s2 Y8 z  _  E8 l! c

# ]3 |7 v  O, Y: E另外一个小建议,就是move,所有的move都可以这样
) V: e! ?9 t$ m* I/ h$ Kif not move() then debug end2 B0 s* g; u( ~$ x9 M+ e
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
& i. C! f8 ?. _% Q- ~/ h5 j% Jplant simulation中的free libraries有AGV模板,
; p& l0 O/ ~! O里面也有案例。
$ K' e2 y. Q; u# M" \我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。3 [' r& L3 c" B/ t. |
: h2 W% X+ D# V/ s. c2 U
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
6 @( a2 t9 i  y) X( g
6 D6 W8 l# P6 B那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 $ \1 V+ w7 Y+ {; c+ Z
这是AGV_putin中arrive的method。9 Q" t- q# k; f. M6 P2 x
' S% `. @4 O/ d  D! @! J/ i) Y& F
当到达物料速度越高时,这个报警更多,

2 @3 H8 P, Y9 v1 A2 J: A另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-11 21:19 , Processed in 0.020659 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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