设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9836|回复: 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 N. \4 J5 B* n& R0 I3 z
*/- }( W: w% Y/ m! q
is3 M3 t1 \( c( O, `* \( d+ Q
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
: @3 c. V( p- Q, h" M, G# y# ]& {do
& o9 Q: q# M  \0 `- Q        Lan := rootfolder.Internal.Tools.AOLlanguage;
. @6 x( W1 B5 q! G3 Y" f9 d" T  ]; a        if current = @.Destination -- else return! I. B6 y8 Y, u" l/ f0 p$ y9 {
        then6 {; T$ r5 R& Y6 u+ n% G$ R
                @.Destination := void;
" ?% G, W" C4 z; |! b! h' G                if @.occupied then
% w; x* {2 M* u                        part := @.cont;* p+ n. u- \2 {/ }* G' L, c. b
                        @.transpOrder := void;, H0 R3 P4 @  U4 n" \; p; X1 v
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,) o: K* Y0 \; W5 ]8 B9 U# h6 |6 e0 A
                                @,root.eventcontroller.simTime);
' u! M- H8 T; w2 i                        @.HasOrder := false;
* q: G$ L4 W( _3 H                        @.DrivingHome := true;
6 E$ \6 {* B% N                        rgManager.tryToStartTransOrder;8 r+ F8 s4 w0 q* c7 \
                        if @.Destination = void- n) {; l0 X" e) u  |# \% J
                        then -- no transport order for vehicle @
# X9 y4 F+ y4 y5 {                                @.Destination :=
$ B' r2 G) M/ H7 p0 S0 Q! J, d- g                                rgManager.nearestFreeStation(@,track.~);2 T5 I% [; W$ C7 d8 M+ J0 Q
                                newDirection(@);   6 c6 P# Y$ I, Z. d# R1 g
                                if @.Destination /= void then8 U5 J) d/ q) I6 c, _
                                        @.Destination.NumReservation :=8 X& h" b* h5 w# l! c
                                        @.Destination.NumReservation + 1;8 Y1 e. P1 Z. d: |
                                end;
: f' y' I, F2 y9 f: a6 r: l                                @.CurrIcon := "drivingHome";
! x3 ^8 q9 a5 G. `; a0 ?                                @.DrivingHome := true;
( g9 }' H8 |& ?. u                        end;7 b  H% j+ C% M6 K. i' N: k( K
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
+ \' t# T" P5 ]+ w9 c! o4 L  f                        part := @.transpOrder;7 j4 J3 N& t$ g/ V+ G: d
                        part.move(@);-- load part
. V$ b" O; {9 E; Q                        @.CurrIcon := "load";8 i$ K2 N! i  y
                        GlobalDistObj := part.globDestination;
4 R7 s9 d# B: H9 |/ C% l                        assignLObj := rgmanager.rgAssignL;
$ V& f0 j2 _# Y* h                        row := assignLObj.getRowNo(GlobalDistObj);, ?! X9 Q6 K4 Q& m3 H3 |
                        if Row = -1 then -- since 70+ l8 u) A7 N& o
                                if lan=1 then3 ]9 V/ T5 K# h2 d: C0 _- D, ?
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
; |! e* r1 y1 e3 u2 S% }                                                to_str("in der Andockstation: \"",?.~.name,"\""));
' r' t4 h$ x% ^                                else
4 P5 k7 S2 A1 ]: S3 B                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),0 y/ R: ?6 f" t  q
                                                to_str("in docking station: \"",?.~.name,"\""));                                % m$ X% c7 }' @/ R1 [. x
                                end;
6 _* l" H2 [$ B$ i; {                        else
: l# T4 K+ `6 S7 [+ e2 l9 \& P                                @.Destination := assignLObj[1,row];* P2 D) L0 ?4 K3 j3 m  h
                        end;                        * N5 E; v6 P3 L* Z
                        newDirection(@);
, L+ Q/ I; `, s                        @.HasOrder := true;5 Y: @8 V3 j2 z% D9 v( e$ T1 ~
                end;
' K) U9 i  P9 _" Q        end;
* w# Z) _+ e3 B# n( q3 fend;        -- of the method" X$ a3 j8 d7 Y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 4 P4 l7 r) `/ r6 C1 S  V: G

1 e7 y2 |" Q) }这是AGV_putin中arrive的method。
( r+ ]( V! _$ H
& \+ x9 d$ v$ d. Q( v7 I$ L8 ^当到达物料速度越高时,这个报警更多,; I4 H) r0 s8 h- C
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。$ w! y- B3 X! }. l
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
4 T! |6 T5 ^3 ]- V" m- D+ y* l; q1 I; P0 }
另外一个小建议,就是move,所有的move都可以这样, y/ }9 W! y4 a3 \
if not move() then debug end- S" t4 Z" |7 ~' w% T9 c/ t
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。8 u  d# q' }) H4 W/ Q
plant simulation中的free libraries有AGV模板,
* G- O) [# W4 v里面也有案例。
' o: Z. H; r, k! g5 B7 a8 e我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
+ d0 g# W+ T$ U. r  F9 N7 ~% I2 A, r. o6 D
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
8 H2 I  x3 }* i3 w: K4 u+ V5 \% r6 q5 _; Q6 r; w
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
. y! ]2 ^6 s! N$ v这是AGV_putin中arrive的method。: h. L* u. o! ~2 J/ D' W

1 A# [% v2 Z& N& Y2 d( ?  r' K当到达物料速度越高时,这个报警更多,

' e/ E' b( i0 o7 ~, p另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-28 07:28 , Processed in 0.018643 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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