设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7348|回复: 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'- g2 s$ ]" S" Q
*/
; B; A+ ?1 v$ S- mis
1 i7 j! o1 U( F# r, `9 v& b; @        part, GlobalDistObj, assignLObj:object;row,Lan:integer;3 P7 @$ o$ m( G
do1 {) E; z; T) _7 k1 b7 C  J
        Lan := rootfolder.Internal.Tools.AOLlanguage;, T% l4 u5 f. D$ ^9 F
        if current = @.Destination -- else return! i5 U( e- P- B$ Z
        then% V: x4 ]0 R% a
                @.Destination := void;
; Q- Q. R( Q/ O8 e                if @.occupied then
# z# u3 `& l) M! B1 Z8 L" c) j                        part := @.cont;+ {5 u$ G% i$ Q# q1 l: U. m* X0 R
                        @.transpOrder := void;
% k, p. P* ^1 h6 W& A                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
$ o" V5 \3 F  V8 T! W                                @,root.eventcontroller.simTime);$ O2 s4 G/ Y0 D& r& x) e. i; w
                        @.HasOrder := false;
. ~2 u1 U, |* @7 x! l2 W                        @.DrivingHome := true;
. r8 H1 Z8 i/ K. B                        rgManager.tryToStartTransOrder;: r3 w$ g! U1 Q* k( p) o* t
                        if @.Destination = void- A+ s, u4 a' I4 h! C$ Z
                        then -- no transport order for vehicle @
2 A% X' q4 H- R                                @.Destination :=9 {  {) o) \& }6 c
                                rgManager.nearestFreeStation(@,track.~);
, f9 P/ E8 P5 ]4 H/ \/ Y- N                                newDirection(@);   * U# X7 O8 [4 t* W8 S' `/ ~4 O
                                if @.Destination /= void then
" ]7 k4 h7 u; f* o                                        @.Destination.NumReservation :=
. j+ ^: D' p+ V" f1 n9 C                                        @.Destination.NumReservation + 1;1 T( e  k6 Q6 t7 k+ b& N9 \
                                end;) C$ [+ }0 ~$ Z! z- K& E0 W0 F% N
                                @.CurrIcon := "drivingHome";
/ D: N* D# B) r                                @.DrivingHome := true;
/ G0 l) w5 s9 A7 x                        end;+ A; `/ ?& Z# v7 R
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station) O# H( I; v8 P
                        part := @.transpOrder;
5 `' V4 j& G( `; W, R1 k" b: h0 Y; x                        part.move(@);-- load part6 X( J: H  I& P) z+ q
                        @.CurrIcon := "load";% |& L" C' v. _' B7 \
                        GlobalDistObj := part.globDestination;/ h. A8 d+ h5 `. L+ E4 F
                        assignLObj := rgmanager.rgAssignL;" O* T& I2 Y/ ]0 `* l# V( ^3 Y
                        row := assignLObj.getRowNo(GlobalDistObj);) i4 i& R  m1 O% I" y! P' u
                        if Row = -1 then -- since 705 x# [; w! B8 q
                                if lan=1 then3 r  G" ?4 G- b0 U: G+ [
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
1 g& [' J9 M$ f3 c                                                to_str("in der Andockstation: \"",?.~.name,"\""));
/ w1 X$ K( P% ~2 F* l# \                                else: @# S+ ]9 R9 _! i, W" U% ^9 F! d
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),3 K: D* O. z7 E% m# j3 X- J/ o9 B
                                                to_str("in docking station: \"",?.~.name,"\""));                               
$ W% p) Z( e& D( A/ \                                end;9 w4 ]% k* Q$ W( i- v. D0 I
                        else" C3 b5 ~7 z% Q+ r
                                @.Destination := assignLObj[1,row];
2 }, N$ S! r9 s* z- h  d3 T1 n$ O                        end;                        # r# J3 ?7 t* B# u0 [2 ^
                        newDirection(@);
7 P% y' C+ x( i( B                        @.HasOrder := true;1 Q( e4 K) n, w+ T/ [  U. d# k* m
                end;  G% Y# q& N" k* I) x. e
        end;- \8 i$ l* }' H! o
end;        -- of the method6 I9 _; t, y4 r3 h2 c
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
, S( v! x$ F/ L- ?( [6 G) K# b2 ~8 Y4 }9 R  e2 N7 @+ S- X6 |2 `% b
这是AGV_putin中arrive的method。* u8 T  Q" s* k0 N0 t6 I; j

3 h7 B3 Y/ @% t# w2 {: j+ E当到达物料速度越高时,这个报警更多," y, T7 u# J* p/ R
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
- \1 p' {* p! x2 N/ g程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
* ^8 o. u- i" d4 Y' ^  A
  I0 U: B, D. B# ?2 |# {另外一个小建议,就是move,所有的move都可以这样
- b, `# f% O0 }/ G  kif not move() then debug end
& W' G. _( \+ K4 Q这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。( F6 {; v5 X9 ?2 P6 f) u9 d
plant simulation中的free libraries有AGV模板,
1 N& N0 ^# `! O& z" U里面也有案例。# d: h8 ^$ j$ A5 V' u* L  O* T
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
. G' @# @0 G& P$ s, q
& z4 z  o- E% X' _& i我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
* O( L; Z! v7 \( W+ B, ]9 g# N( m) W. K# v5 G) ?$ \5 [
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ( C2 B: K" k$ a2 h
这是AGV_putin中arrive的method。& z3 Z4 C, p% R: ]4 g5 I' l

$ \: a+ Q1 v6 R当到达物料速度越高时,这个报警更多,
" y' o, v8 T* j
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-6 00:37 , Processed in 0.023540 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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