设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9288|回复: 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'
  C; w% W; ^; y. @5 ]*/
/ n  z1 I! O9 d; @  S' o' W6 g+ Gis7 m4 ^2 v6 R; {, H
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;4 t% d# X/ e+ U0 v- ]5 {
do& P. \: Y% R9 v" f
        Lan := rootfolder.Internal.Tools.AOLlanguage;
' \" b. c- ?9 \1 w/ W        if current = @.Destination -- else return
" B7 P/ i. i. R        then8 F8 U3 d/ [( R5 d4 M$ i& x
                @.Destination := void;
* r4 p/ [+ \4 J( T5 L2 ]# {+ s& ?                if @.occupied then  m# @+ U8 t4 t" B9 D& R
                        part := @.cont;* w) X  m8 ~3 I  W3 l
                        @.transpOrder := void;
! ~' a" i" t: P; c/ V# h                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
1 ^, F7 ]& [! z5 l! |: j                                @,root.eventcontroller.simTime);
7 V3 o4 j, Q) h                        @.HasOrder := false;
) W: p. c. q8 y9 P$ d                        @.DrivingHome := true;; a& J; {. t" k
                        rgManager.tryToStartTransOrder;4 ]& i3 J' N5 o; n
                        if @.Destination = void
# v( n+ p$ p6 \2 {. V/ H                        then -- no transport order for vehicle @5 H4 R2 k; S$ H; R
                                @.Destination :=
4 G( o: r% C* p; q                                rgManager.nearestFreeStation(@,track.~);
! |( Z  R- R* W9 i# M0 g                                newDirection(@);   " D, ^7 A2 K" R# U  s
                                if @.Destination /= void then
; ~9 s8 J' y! V; i( c: f                                        @.Destination.NumReservation :=! s7 f  T3 y, O% B& \6 K
                                        @.Destination.NumReservation + 1;
. F9 x6 ^+ C+ @& k* x# M; S                                end;) f1 C! q1 y' \1 w& j: a2 }
                                @.CurrIcon := "drivingHome";
9 n/ T% q& A9 T2 M) [                                @.DrivingHome := true;
( k" u8 B- R7 k! r' I. v                        end;2 c5 a' I) \# w% U  G+ u4 y' y8 q' {, _
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station0 U* B9 C5 e' i  N
                        part := @.transpOrder;# Q! H+ i; F, I, O* F# k% Q
                        part.move(@);-- load part" v4 d- I& G3 o. z4 N$ u
                        @.CurrIcon := "load";
$ a: J4 g! D5 K                        GlobalDistObj := part.globDestination;
% c3 c% s7 r5 |$ Y                        assignLObj := rgmanager.rgAssignL;
# e- S* x, ?8 m5 i6 G                        row := assignLObj.getRowNo(GlobalDistObj);
/ o8 {# a7 q- b( U- U                        if Row = -1 then -- since 70
& D- X. @" E5 a* G/ C+ o4 M+ @                                if lan=1 then2 L4 d: d) G0 q& v. O2 R1 W
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
2 |" Y% \$ y& ]2 {: j                                                to_str("in der Andockstation: \"",?.~.name,"\""));2 I4 p7 L9 @& V5 i2 I4 Y. p% }% q; |
                                else
/ [  s) H" I' x1 |                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
* O" D; i1 F* }  r/ B                                                to_str("in docking station: \"",?.~.name,"\""));                               
1 y, `+ Z" T# U) }9 {: Z                                end;
9 j1 @% ]4 j- D2 w, L                        else5 y) y. t# u( p1 K$ V' E6 G& g7 i
                                @.Destination := assignLObj[1,row];) E3 [8 m* l$ H" K
                        end;                       
: v% {6 Y% g/ r: Q                        newDirection(@);, V# [2 B( |4 _1 x9 P' L0 t
                        @.HasOrder := true;
7 ~# G! N" k$ m- W% n  c) K+ o( Q                end;2 M& p" L: w' g$ Y$ A6 W6 G, c% R
        end;
9 k- C0 e$ P- \( L6 n! q. Q+ y  send;        -- of the method
9 l. [' k, J3 J
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
3 f) z( A/ Q$ q5 ~" A7 j
/ r  A* L6 r$ {  d这是AGV_putin中arrive的method。7 R" _( x: I6 `. P! Z# I: B3 J
# T' f  u+ `7 R1 C5 P" t
当到达物料速度越高时,这个报警更多,5 |8 d0 A/ F! @# d( _5 ?
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
. H$ y* E( z" s6 \8 x% E程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
8 I  k8 h+ D& i% C  t" N7 Y& ]) ]" H9 B5 j. F
另外一个小建议,就是move,所有的move都可以这样
5 u3 m% x9 I: J6 iif not move() then debug end
5 j9 ~# W1 f1 f5 H( z这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
; e! ~& ?9 t# [# R$ q$ hplant simulation中的free libraries有AGV模板,# l1 }6 R, L% T/ U$ I! I5 X" H4 ]/ J" `
里面也有案例。. I1 S$ W) F0 `1 E5 g4 g# v
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。; Q+ v, v* Q5 r3 x: l, `+ W

+ W6 R6 P3 h/ Q: v* [* X我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 6 S. B" l" H- R
$ A; h  M( q! j, {$ l5 }4 P
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 / \$ f! ~! j1 ?
这是AGV_putin中arrive的method。- M1 E3 U1 ^6 {  M) c- t' V
9 F( `8 y. l* X8 t# G$ Y! V: f: G
当到达物料速度越高时,这个报警更多,

& I  x4 f% \. T+ j2 z! p; K另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-22 22:15 , Processed in 0.014576 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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