设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8580|回复: 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'+ D( R$ i1 B2 o1 C* C# f* V5 c
*/
6 _& [5 u9 h8 A# E' t5 P2 w$ Tis; M7 P) U# N* Q  L; Z6 v# C: q+ g
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;* y1 e+ I" L4 T1 G8 D
do
9 x3 A$ L+ N( L6 v1 }5 x        Lan := rootfolder.Internal.Tools.AOLlanguage;
1 \: a7 N7 ?; C/ q* [. e$ M* v        if current = @.Destination -- else return
! J2 t1 a% Q1 C) k        then0 h6 U8 n3 t  r8 l
                @.Destination := void;/ x- E7 V9 L7 ]2 I  L
                if @.occupied then
9 ~9 [4 m4 u6 A+ p  D" n                        part := @.cont;: \  j/ o3 d' [" b2 Q6 ~
                        @.transpOrder := void;
; ^( T3 c7 D" c0 r* ]5 b1 w                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,6 {3 h& J  \7 V% R: ?
                                @,root.eventcontroller.simTime);) B6 w  |1 `6 h( A% D: g
                        @.HasOrder := false;; i0 C6 C7 F1 z+ d: }$ O! Z5 `
                        @.DrivingHome := true;
% B2 \% s& N2 J* d                        rgManager.tryToStartTransOrder;* C, r$ y5 E. c
                        if @.Destination = void
, x, [0 `# m& w+ X) J. B                        then -- no transport order for vehicle @2 r  M: u9 `1 f# F7 t6 x7 P' V* {
                                @.Destination :=8 N: v$ m' n+ F, ]* ~
                                rgManager.nearestFreeStation(@,track.~);* b5 `1 m/ M) m. L) j
                                newDirection(@);   * Q* M' N! C2 K* f/ y, c" L
                                if @.Destination /= void then* O* N! p1 W/ L  z/ t
                                        @.Destination.NumReservation :=
5 X, K1 N9 l' K( m( Q/ u  \                                        @.Destination.NumReservation + 1;) ~1 a3 t6 h5 @4 I: y
                                end;( _; v5 ?% \4 s+ _. y
                                @.CurrIcon := "drivingHome";
" x4 s' u; Z; S* \1 [) e! _. Z5 m" a                                @.DrivingHome := true;- w( H' }" T8 V; f  I
                        end;
( F6 b' l/ @$ {. x4 w                else -- the vehicle @ is empty, both vehicle and part are in the same dock station! n0 Q: q. y! M, B% h
                        part := @.transpOrder;. \& {4 A, P: z1 ?2 L
                        part.move(@);-- load part+ k. g* F1 \) G" x3 y
                        @.CurrIcon := "load";* s* V$ O2 b* E! b$ `  Y" ^) K7 `
                        GlobalDistObj := part.globDestination;
0 l- }8 P( G' ?3 [7 \9 Q& A3 ?; }                        assignLObj := rgmanager.rgAssignL;# ~3 ?+ ?$ h2 v
                        row := assignLObj.getRowNo(GlobalDistObj);; r6 i) H7 \. b$ S
                        if Row = -1 then -- since 70
) y( w0 G" I$ j  J+ `$ |) J                                if lan=1 then$ \! j. D+ ]( h
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),2 y7 u- A( o# w; J" ^  ^
                                                to_str("in der Andockstation: \"",?.~.name,"\""));" L% I5 K' U# y' r
                                else0 \8 V" j4 Z3 y) w
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),5 `& m7 X5 @% K3 H( T
                                                to_str("in docking station: \"",?.~.name,"\""));                               
; r4 Q  K+ h$ E                                end;
* D* e. M# O  b$ O                        else
; F8 W, @# s0 {  D                                @.Destination := assignLObj[1,row];- j) R5 S9 ]% @" I' P
                        end;                        , i) w4 C+ b4 g8 \
                        newDirection(@);
; w" {7 s' {! z                        @.HasOrder := true;( q/ ^& ]# r  i- v7 {
                end;: d* n2 \! b: ]' @. U
        end;
' L6 q' `6 S. C3 {end;        -- of the method) p! K5 K' n1 s% P; o+ {' q
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
+ @: D( }8 m/ S6 l$ d2 P' R2 i* Q* j3 b) J0 u( q; ^
这是AGV_putin中arrive的method。% Y/ @3 n4 {9 _& u$ e) L- w
2 m) g' t" n, i* c+ u& z
当到达物料速度越高时,这个报警更多,
3 N; @. N) i6 d: G: `9 g  v可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
) T' D) A: @, G! [程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
1 J. n1 ?7 {, d$ o' [5 H* o0 b! \6 ?+ s4 z% J" n+ M' ~
另外一个小建议,就是move,所有的move都可以这样* O- E! X0 ?+ i2 n
if not move() then debug end5 k9 K. V# Z& Y( f
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
9 @* Y* U5 e! a0 wplant simulation中的free libraries有AGV模板,3 O( L" l* D, l
里面也有案例。, J9 T/ f  |- x3 _1 Z
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
) Y6 a8 j9 [4 `3 f: S$ t# `) V! l  p. p1 C2 ]2 ?1 l
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
3 k' x4 P& Z; G: ^& v# y2 O% {2 w3 q5 }
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
  R+ C. u7 p2 N1 ?这是AGV_putin中arrive的method。
7 t. J  m# y5 o0 r
5 u- a: x1 m* Y" Y" `# C/ q2 D$ l当到达物料速度越高时,这个报警更多,

* ~5 F8 p" V1 G7 X) I0 \另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-13 09:45 , Processed in 0.015246 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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