设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8373|回复: 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'. R$ |1 m4 i1 }/ Q* I
*/" u9 E$ X$ D# K# C; O
is
5 S( h* G9 k  U8 n        part, GlobalDistObj, assignLObj:object;row,Lan:integer;/ w# F: l) E. i% z, y$ s
do. [  e, G% j/ q2 i9 e/ I) M/ Y. k
        Lan := rootfolder.Internal.Tools.AOLlanguage;
5 r+ ]2 W5 p! _. z        if current = @.Destination -- else return
* x7 z0 [; r5 u; Q        then6 j0 N$ g! {! Y4 L0 F5 ?" X
                @.Destination := void;3 u  h# x! I3 y! w! n
                if @.occupied then: F6 ~* S& Y+ [
                        part := @.cont;
% n% T% r: Y: I. R                        @.transpOrder := void;
  K' P3 p9 N: O7 O- x' o                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,* V& f5 j% u3 g2 {8 u6 G
                                @,root.eventcontroller.simTime);
) `; j9 N$ l( C9 b4 {# j1 r                        @.HasOrder := false;
& ]8 m2 ]" u1 I2 Y8 p1 Z4 Z                        @.DrivingHome := true;
# L! g) T0 n* u& X3 _' C# ?" ^: W                        rgManager.tryToStartTransOrder;
7 V3 Q& {/ G% i1 a1 Q                        if @.Destination = void
) s9 T4 W; j2 @! R3 w4 F2 n: Z: Z' \                        then -- no transport order for vehicle @
0 h% u# R; ]3 {# F  u                                @.Destination :=
9 D6 n/ ~! i4 K# O/ D* q- v! C  H' c- [                                rgManager.nearestFreeStation(@,track.~);
) N9 e; W( n2 N# k. G% a" h% b                                newDirection(@);   - j" P6 z7 i+ G9 T: m; `3 A
                                if @.Destination /= void then
5 X3 J1 S1 F2 t: \7 R3 L$ l9 m6 |                                        @.Destination.NumReservation :=
; y8 G7 ^( e& k+ e7 G5 W0 q                                        @.Destination.NumReservation + 1;
4 p5 o6 L7 H) J* f                                end;
* k8 t3 r; U- V1 p! e3 M                                @.CurrIcon := "drivingHome";
; N  T/ F  `4 B/ G                                @.DrivingHome := true;1 b2 F: _/ Y7 _, @. _
                        end;
9 ^4 E* l% i; S" L9 U$ s/ r                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
$ h1 ]) f1 @+ n" U4 l2 y) {                        part := @.transpOrder;) ?/ Q6 ^5 \$ b9 y! f
                        part.move(@);-- load part, H+ b$ w4 B- p
                        @.CurrIcon := "load";
, l9 Z" ?/ ?- N1 E# D3 E                        GlobalDistObj := part.globDestination;
/ T7 T  F$ K/ U  w4 k" }                        assignLObj := rgmanager.rgAssignL;2 g) V$ o3 ^$ G) \& V4 r% D9 d) ~7 n
                        row := assignLObj.getRowNo(GlobalDistObj);
" b$ i4 A, X3 J4 s8 s+ N- H# {0 N- _7 |                        if Row = -1 then -- since 70" C, R0 t4 y. Z( W2 s) ^" f2 L4 w
                                if lan=1 then3 _; [% s3 p  B3 r# O
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),9 z7 E, S% \. L" Z. L% J3 q- K2 C
                                                to_str("in der Andockstation: \"",?.~.name,"\""));9 `$ n9 y5 a1 Y5 s% r3 A% Q0 m
                                else
" g/ j/ e( H6 Y: a6 x                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
0 X. L) s, C: x6 s: f/ M                                                to_str("in docking station: \"",?.~.name,"\""));                               
1 W+ @* t* U; [* Q2 k- r, z                                end;4 S4 k0 F& Q1 b% w( L+ n, u
                        else3 q$ y- C7 F3 y2 k9 A- m4 Q5 r
                                @.Destination := assignLObj[1,row];# w3 w. N$ W- c/ o" V' @. \
                        end;                        " t* J0 G" A% J" @7 H
                        newDirection(@);* B) @/ g$ U$ e/ j* X
                        @.HasOrder := true;
9 s1 R. }% X* Q' Z                end;8 f8 M5 z  B; M5 q' Q3 \- O
        end;
! a1 B& a& R& _% `7 L* V9 Gend;        -- of the method8 J. r5 Q5 }% r0 k4 z! o# @4 p
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 9 z2 R# p$ s7 E8 u* w" ~
# v- l# T- B& t4 t; f4 S& Q6 t( ?/ p
这是AGV_putin中arrive的method。
& M( t1 d2 O* g, f$ v9 c1 r
, ]. F$ l. s+ D/ V6 @" N当到达物料速度越高时,这个报警更多,- M: M+ }% ^; _! d+ x7 [
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。- m3 A& ~* R5 {- f
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?1 B/ O# s* e) ?
% |8 h7 r2 O# U) ?) w
另外一个小建议,就是move,所有的move都可以这样" u/ I, q4 Z: e8 x
if not move() then debug end- @" u, T) |& h9 m0 y- y
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。5 g1 Z& z4 q6 Y
plant simulation中的free libraries有AGV模板,
! @9 d" G7 B/ y9 V2 w, z* L6 M+ V" I里面也有案例。; U' M  h8 |0 v0 F
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
; U2 k* |/ ?0 ^4 _$ \
! S2 n. k$ s8 d& H5 j) @我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 * D& B. R' I, [' M( u6 H/ ?
9 {* @: ?& n6 z, A6 s
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
4 L* l6 A# h8 a: ]2 p. A这是AGV_putin中arrive的method。$ z) Q7 S, m( q

# A# c: d. Q7 O) R! h当到达物料速度越高时,这个报警更多,

. L6 s* H4 [& q5 ~; r2 V4 l另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-31 05:31 , Processed in 0.017756 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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