设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7129|回复: 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'
) Q; D6 e) z! X! ^. ], o" j& C*/, @% v0 Z+ o+ ^% A5 [" \$ v! L
is
5 K0 f0 o" _, Z. b" K        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
( J+ a4 F" C( Z$ {1 Fdo% `8 T: _9 ?+ \
        Lan := rootfolder.Internal.Tools.AOLlanguage;
: T) C4 J* n' r# j- U$ o7 N        if current = @.Destination -- else return* [& o& D# {# U7 v
        then
, y+ I+ j: G3 {5 L% L: @                @.Destination := void;; z- |! I# i( m
                if @.occupied then1 [/ V% P3 L) r- Z! U
                        part := @.cont;
( i" W: c7 g- B! U, E+ r) r* y                        @.transpOrder := void;( W; n9 g2 z6 L1 _( p# q  a# f
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
4 e& v% A; M! o                                @,root.eventcontroller.simTime);0 E; b% T2 ^, s: m3 F# _3 {9 a
                        @.HasOrder := false;% V8 \) ?/ u6 L7 [1 U4 T
                        @.DrivingHome := true;$ A: c) m8 m- H
                        rgManager.tryToStartTransOrder;3 O  c* Q- V# X
                        if @.Destination = void( K4 ^+ e8 i( X- E
                        then -- no transport order for vehicle @
  d, n. ]* `7 p1 Z# l                                @.Destination :=
7 Z7 Q( \% Q; i                                rgManager.nearestFreeStation(@,track.~);
# P9 V% _7 H- n) x+ L                                newDirection(@);   $ T$ l& {+ h, d# U" F
                                if @.Destination /= void then
, b% I) z- f. R; y8 Q: x                                        @.Destination.NumReservation :=+ C4 @0 Y: v$ J9 }, p5 ]5 ]
                                        @.Destination.NumReservation + 1;' y4 `9 K8 x# M2 Y  j$ [: R8 ]# I
                                end;# _; ^) q: y8 [7 k! r0 J' `! D
                                @.CurrIcon := "drivingHome";
+ T' o, \/ t9 p9 B& E2 e                                @.DrivingHome := true;' ~3 w) Y! y1 A- B" j" s0 U1 ~/ k, p  m# B
                        end;
+ O7 a0 e. d" U* q# @% j6 E3 g                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
- m% S! @; w) K4 l! o. J2 I                        part := @.transpOrder;
; u* L5 }+ o1 d9 n6 |9 G                        part.move(@);-- load part
! p# G: A6 g) t8 G$ b                        @.CurrIcon := "load";$ ], E: Y( |, P: L  l
                        GlobalDistObj := part.globDestination;, l: u. i, m6 [2 N0 N
                        assignLObj := rgmanager.rgAssignL;
6 _$ h# I1 r4 |- {0 P$ D, J; f' x                        row := assignLObj.getRowNo(GlobalDistObj);
' ~8 I5 g" {9 {* J7 j2 }1 A2 ?9 a                        if Row = -1 then -- since 70  Y% H" S4 j8 o9 V
                                if lan=1 then
: k; f4 w6 c1 L$ J                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
$ }" w8 _% Y  j% p                                                to_str("in der Andockstation: \"",?.~.name,"\""));
# K4 f" t  }; `! z4 j                                else& p2 `# V8 ?/ K5 z% r  T
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
! l5 E2 ~/ e, C8 Y6 C) D5 k                                                to_str("in docking station: \"",?.~.name,"\""));                               
+ ]. w% I$ N3 k# \3 o0 F, q                                end;7 a. I% r9 C1 g3 B
                        else" w: S0 S. V1 f+ O
                                @.Destination := assignLObj[1,row];' G2 ^: p) y5 M0 ]
                        end;                        9 B4 B8 o6 |9 o  V& J" p9 A+ {" t
                        newDirection(@);
4 f" w& v/ J0 G, m: V4 _; r7 w1 u                        @.HasOrder := true;
9 b, W" Z2 |- }8 X5 e                end;
  ]  g0 d0 E6 ^        end;$ ]  z- k# d7 f( M
end;        -- of the method
9 L( p( Y9 S, s6 k6 Q
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
- _0 D4 P0 M$ b) {9 ~) k- V  o5 v9 B, b: u7 ^8 G. X
这是AGV_putin中arrive的method。% Y* L. N- ?4 S3 B

; _, S+ M9 c. d3 Q  p! S当到达物料速度越高时,这个报警更多,
9 q; J7 D  V  ]可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
/ w1 G7 k2 J! o, q% E7 O& w程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?3 w& W# ~0 B7 d$ f* i- _
4 T, t; w6 F+ d! M' c, R9 D# q
另外一个小建议,就是move,所有的move都可以这样7 u# |# L* q, K: \
if not move() then debug end( L( j4 F9 s: U0 c) b3 d# b. y) d( o
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
" @+ ]8 W% O' ^plant simulation中的free libraries有AGV模板,$ D% ~# i6 ^; k
里面也有案例。; q- E; v+ `" u" k
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
7 ?; J5 y! M& I' y% s  y% j+ G1 c7 l- S. g% ^2 I
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
2 t# n  [: @: s$ a4 g8 F( `2 O  ^$ _! h
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ) O/ ?% v( p8 y: J+ T3 x
这是AGV_putin中arrive的method。9 c3 _0 _8 P2 v
8 n$ t2 T( O2 h* u' O1 p
当到达物料速度越高时,这个报警更多,

& g; T* ^' L' d另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 07:17 , Processed in 0.018520 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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