设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9089|回复: 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  q+ \2 Y4 W) q
*/" K/ ~6 C# S, U: z: l( k: Q* c
is
$ p5 ?8 e* i; i, Q, _0 {6 f        part, GlobalDistObj, assignLObj:object;row,Lan:integer;4 H/ j. z' r6 b* J, n; W
do
- A* C/ T0 D7 V- h2 ]8 V0 T" I        Lan := rootfolder.Internal.Tools.AOLlanguage;" K1 s2 p* N8 Q9 h1 B# y: ~7 Y
        if current = @.Destination -- else return
" A+ n, P, s, J: e        then
  z7 k" @) U8 @3 c                @.Destination := void;
  p3 N  A3 r  \) P! n9 _                if @.occupied then
) T! N. ?! A; }$ H0 w                        part := @.cont;# l$ `# G0 o3 R1 q4 a. d+ W% |9 m- H
                        @.transpOrder := void;) {) e4 f/ A( o( P8 X
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,9 ^; Y7 w; R7 U# D- B5 X: i" l% K
                                @,root.eventcontroller.simTime);; Z' F3 |* W8 V2 j
                        @.HasOrder := false;; k9 n. g) Q8 o; c( p: \
                        @.DrivingHome := true;+ O& W  D  ^- i' e; V# J* s
                        rgManager.tryToStartTransOrder;
6 L: k2 w8 h0 f3 s# |/ J" V5 ?                        if @.Destination = void, W& a2 W# u$ i) N4 v0 U% O
                        then -- no transport order for vehicle @& B# U; q! z% E9 q0 Q. y' f
                                @.Destination :=
8 |2 Q. d8 {1 x& ~  M; @4 c                                rgManager.nearestFreeStation(@,track.~);; p+ y) s2 v8 i% f' ~7 ~  k# m
                                newDirection(@);   
, \1 h) ]  l% \                                if @.Destination /= void then: `8 ?8 ?' L0 Z0 o8 w) ^
                                        @.Destination.NumReservation :=/ O6 L7 W/ x! ?* X$ C/ u2 C
                                        @.Destination.NumReservation + 1;
7 O: z3 F- M2 D                                end;' z: q/ Q$ P$ E( }  f" e% H/ g" Z
                                @.CurrIcon := "drivingHome";+ j  |. A5 V% W
                                @.DrivingHome := true;
' m" h' e# s; z* I                        end;
% H/ i9 i/ G  L% Y$ Q1 ?3 c9 u2 R* l                else -- the vehicle @ is empty, both vehicle and part are in the same dock station3 Z( R) E/ S" N1 E
                        part := @.transpOrder;) J4 L- H+ h" D) F4 }/ u. p+ q
                        part.move(@);-- load part+ z" w: f5 ~/ D! e& R2 H8 ~0 c
                        @.CurrIcon := "load";
9 Q# y  d2 W* r+ T2 ?) M+ h3 G                        GlobalDistObj := part.globDestination;
3 j( v7 l; T, F/ L7 q) F                        assignLObj := rgmanager.rgAssignL;
; X* L' _8 N7 z. Q, r, W/ n                        row := assignLObj.getRowNo(GlobalDistObj);
3 ]* V: ?% J& P$ a9 e0 y5 G' ^9 N                        if Row = -1 then -- since 70
6 `" Y7 c3 E1 j                                if lan=1 then( q4 y) q+ ]% @
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
. ~8 L! Y. v8 Q2 t+ W                                                to_str("in der Andockstation: \"",?.~.name,"\""));! w/ N+ Y' [6 V: l' d
                                else' n: T, Q4 X$ @+ r; K! c; ]
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),1 ]" h2 Q% C$ k1 {( m
                                                to_str("in docking station: \"",?.~.name,"\""));                               
5 O0 {4 _8 @" g0 m5 Z5 y) y  ~2 `) H                                end;
$ c5 ?9 S0 I' Y0 F' h# D4 e                        else
% O+ t9 z8 W$ s+ t, e  z4 n                                @.Destination := assignLObj[1,row];
6 a! x) h. g( h0 A! \3 v! {/ x                        end;                        ' G1 ^  r2 F# x4 `, h
                        newDirection(@);
1 F; F) b8 e/ t# S$ D; W* B! G                        @.HasOrder := true;
; K, B% s* q( X- P/ @: P8 i0 Z                end;
- V9 j2 V: t. V        end;0 [% c$ z1 g7 ^7 Q4 J. j3 j, H
end;        -- of the method
9 u' G4 M- [! q7 k1 h  \+ k
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 3 [3 b  K; @3 p4 n4 f1 ]% [
" }- j  X5 x& j4 v
这是AGV_putin中arrive的method。0 F7 i" P* C2 U8 ?4 g5 ?
/ [8 _( X, l0 g, d
当到达物料速度越高时,这个报警更多,
& Q" f( A$ m  q) G. r可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
2 L  ~: r# N2 |+ L& \# [$ t4 D0 S$ m程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?8 D; k. H% V/ }" r, C7 f2 N

% D1 u; T" l1 x1 w另外一个小建议,就是move,所有的move都可以这样
3 ]/ A: I( C) L( mif not move() then debug end
  f5 y" x/ I; m3 m. F  X0 G这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。* L+ ~7 b+ T7 l! p. `2 ~  N
plant simulation中的free libraries有AGV模板,
- V( X  _3 _) I- X" h5 P5 t里面也有案例。
5 i: R% x, f  v; M$ a; b我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。/ |3 I) }/ t# n9 ~5 f2 ?
/ |0 ~6 {$ g6 l% @% W0 `/ u
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
* \3 J, F- H3 k: k& i( {: h( ^6 s6 d5 {
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 - b9 f' N" |1 d. b9 T7 q2 F+ ~
这是AGV_putin中arrive的method。6 k6 J( U( u# ~' f8 v# C2 M2 i1 H2 f
4 ^0 \5 L- l( `2 |" B
当到达物料速度越高时,这个报警更多,
$ `: ]) ]. f( O. t. _5 [" W' `* G
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-13 00:44 , Processed in 0.022463 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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