设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9825|回复: 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'- v" Z& Z& R( G% _9 m- ~' V
*/
4 |3 Q' k* p0 ?0 e0 v. Lis
! L! c2 r, S' j6 l- |( k0 [5 A        part, GlobalDistObj, assignLObj:object;row,Lan:integer;- W9 T# B4 W( u. a' k2 d5 F
do1 d; Y. I) ^: Q. a# @& A5 k
        Lan := rootfolder.Internal.Tools.AOLlanguage;
6 x. H. a9 t% p4 d1 T0 X/ D, ?        if current = @.Destination -- else return. _! \/ A1 i+ A+ g; V2 v
        then
' g, t# v: t8 P  c, I4 g  j( M& e                @.Destination := void;
& `+ D# N4 A' N+ h                if @.occupied then. D! i! `" f4 `3 [8 i" g' P
                        part := @.cont;) X! H, @+ F; V! H2 y
                        @.transpOrder := void;
1 I# `5 G) P2 S+ J. G                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
2 P3 x, u6 k  g' h; p1 X                                @,root.eventcontroller.simTime);+ L  Z: H9 S. p: J. W. t
                        @.HasOrder := false;( ^1 O! O! X2 Z( M+ g1 a
                        @.DrivingHome := true;
. E4 z4 R# _2 m+ r  u; ?& _0 ^# T" T! }5 G                        rgManager.tryToStartTransOrder;5 V/ B  Y$ t5 [. M6 n2 I4 C
                        if @.Destination = void
8 @) r4 M1 X/ i  ]- S1 o                        then -- no transport order for vehicle @, e; R& ^1 a7 |7 F
                                @.Destination :=
" [; z1 w2 n6 J+ g& e$ \& u# g# y& M9 {                                rgManager.nearestFreeStation(@,track.~);  h! t- m( Q7 S- s7 W/ h* V
                                newDirection(@);     d( I4 l7 }6 z: S& Q0 \" y
                                if @.Destination /= void then- |# ~% M9 Y% {/ M$ H3 z2 b
                                        @.Destination.NumReservation :=" X: c5 P+ p, g! J
                                        @.Destination.NumReservation + 1;
; P, A2 t/ ]. f4 W! h& z) N                                end;
$ E/ \1 J( K' n4 y                                @.CurrIcon := "drivingHome";3 {1 S2 r# ]" T& z8 {
                                @.DrivingHome := true;
: _6 u! \* H- C# l% n  Y  k                        end;' o3 y7 t4 Z7 V$ o0 P
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
5 B2 M. I) i! y% T4 r                        part := @.transpOrder;
, i  v) r$ h+ p) w8 D                        part.move(@);-- load part8 B/ R2 A0 K7 d/ G/ @
                        @.CurrIcon := "load";5 i) Y1 e2 A" H  ^3 M
                        GlobalDistObj := part.globDestination;
* Q8 C$ d5 @; l! D; J  s                        assignLObj := rgmanager.rgAssignL;6 g5 [1 y2 y; k6 j* W+ |
                        row := assignLObj.getRowNo(GlobalDistObj);
0 n- m2 S3 `& w& k                        if Row = -1 then -- since 709 m8 r2 a! ?. T5 y) f7 S
                                if lan=1 then  e. j9 ^4 I1 \8 Y8 `% F; c6 h
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),: i9 c3 E, b: d1 I9 D6 {3 n- C0 v
                                                to_str("in der Andockstation: \"",?.~.name,"\""));7 {; h7 v! T! V* R2 s  Y0 [
                                else( p( P4 q. b  B$ ^- O. u  q
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
' G: ?9 K) |: G' Y) b7 X                                                to_str("in docking station: \"",?.~.name,"\""));                               
) v# l( S3 x( i7 i                                end;
" Y9 ]# [0 N! r0 f. Y* ]                        else: U& w( j5 D( Z6 v
                                @.Destination := assignLObj[1,row];! b7 C/ b/ B6 Z" Y+ B
                        end;                       
% m0 Y  b3 W: s) n( X                        newDirection(@);
7 w& \) E  U* H. l5 G2 c5 f                        @.HasOrder := true;, ^8 a  o* L! x- |
                end;% ~7 D8 b$ m0 H' e6 A2 y% m
        end;
; t+ w, ?' N4 Q7 y  dend;        -- of the method
6 F; }# A; C6 H( R7 p/ q- L& |
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
9 [) Y4 l& {# K6 B
0 j3 F2 `6 L6 O" `) f6 Z这是AGV_putin中arrive的method。# Q3 g' c; ]: R5 T. e: X

  x" e" K/ K8 d% u当到达物料速度越高时,这个报警更多,
) m. L5 _/ i+ z6 U( w0 c9 J可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
$ m. |% m0 l+ P程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?8 _' h9 |& W- G/ P. \# r6 d

5 E! J& F% X/ p5 b# M& q8 f7 E另外一个小建议,就是move,所有的move都可以这样
1 l& A/ D, f* d7 Y9 Q. Bif not move() then debug end" `& d. @6 `/ A% v
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。/ V! \7 \( f9 `) O% k
plant simulation中的free libraries有AGV模板,, g* q2 R2 X" q) V% m; d
里面也有案例。6 a/ _+ Z  e& g
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
2 r' i# m' ?- @: X' z
4 K# x( Z, c4 I: f" s9 l3 a3 {; t1 p我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
0 o1 k. c/ A. x7 B7 }+ Y$ Y
7 u2 p3 V1 B: \8 E7 |" ]7 `- t那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 7 v! d* ^$ a5 }% Y
这是AGV_putin中arrive的method。
( z* U# @, s6 {7 O! }8 {5 s- S! u. `+ Q- E! s4 N4 U9 q6 M! f0 p) y# Y  ?
当到达物料速度越高时,这个报警更多,
( ~" G# C$ B, y- x
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-27 16:11 , Processed in 0.015348 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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