设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4964|回复: 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'
+ y# h8 Z0 o/ Q8 A+ u/ I4 g*/
+ t) B& g/ O2 Z+ I1 Vis* J. Z0 ?2 l) Y, [) J4 T
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
/ ~, E9 x2 A  c' z4 h3 s+ `do
- Q) v/ Z" _7 L: M5 ?9 z        Lan := rootfolder.Internal.Tools.AOLlanguage;+ i2 Z. A- h! F2 F0 Z0 {/ a- Q  b* s
        if current = @.Destination -- else return0 `' M% B: Y, t3 U) W! l; l
        then9 q- i) \% _8 n, z  g
                @.Destination := void;
/ E4 q* F5 c: k$ J2 v                if @.occupied then
5 D% |# Q0 ^8 ]  n/ O( W/ q9 c2 E                        part := @.cont;. `# N) x0 w5 Y+ w& \& R
                        @.transpOrder := void;
8 |/ b: W7 C  }                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ Y+ V3 n5 E; e/ _: h8 _                                @,root.eventcontroller.simTime);5 H; g' H( g# Z) ~* F% d
                        @.HasOrder := false;8 n7 S' j$ N5 {- O
                        @.DrivingHome := true;: t( o# S! i% V
                        rgManager.tryToStartTransOrder;
" ]& u5 i- ?: \+ `1 }                        if @.Destination = void
2 D6 Z: W) N1 @  P                        then -- no transport order for vehicle @
: @% b( m5 e* \; H) g  h                                @.Destination :=7 v) ?; X2 }* j; H! @
                                rgManager.nearestFreeStation(@,track.~);8 M. q3 U' _0 F3 ]
                                newDirection(@);   
% c, E) b! @+ p9 G/ V                                if @.Destination /= void then) ?$ C3 G1 S( W; D) s  l
                                        @.Destination.NumReservation :=
" c0 }) j! G( x- [' I1 t) O                                        @.Destination.NumReservation + 1;# A9 U6 e2 A& H9 g5 S
                                end;2 x( V: d% }" |$ k
                                @.CurrIcon := "drivingHome";# h" c; T3 E! ?- R
                                @.DrivingHome := true;5 x2 O- o* v' B) X
                        end;" ~. K: K( `) L; U
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station3 k/ @. v3 V" a9 o
                        part := @.transpOrder;
  |6 N# \5 M& w% U. n$ J                        part.move(@);-- load part) |: Z* Q8 w9 ~: W
                        @.CurrIcon := "load";+ U  r% a! A: l, X: ]# R
                        GlobalDistObj := part.globDestination;
* f# @5 D* ?6 O8 {! H" [                        assignLObj := rgmanager.rgAssignL;6 E! q' d* n  G8 }  T) `
                        row := assignLObj.getRowNo(GlobalDistObj);5 O! I& D( _8 P$ j5 c6 C
                        if Row = -1 then -- since 70) U+ W7 c; f8 O
                                if lan=1 then
% k2 _" |+ O7 @                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),1 k/ x9 B' o* Y( o
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
1 ^; f. O" d- r. Z1 Z                                else
7 y2 f! ^+ }" c. C0 i                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
( W* O- H! m# y  h/ _" [- T7 j& d                                                to_str("in docking station: \"",?.~.name,"\""));                                1 J3 `  s& l* s, w1 w# b2 r
                                end;
; U# n' Q: ^2 g6 d: B+ H8 Y! j& s3 i' k                        else& _  N9 h+ w4 X+ ?) B
                                @.Destination := assignLObj[1,row];
1 b1 Z9 |) _' c, p* }$ R                        end;                        * A4 p0 K% E. n% b& Q* R: F
                        newDirection(@);; ]; s  U) U+ R% o5 G
                        @.HasOrder := true;6 S8 l4 y8 G/ [  c0 N# P; P
                end;* P! L" C" W: k5 W+ a
        end;
# ^6 H8 e( ~% n9 J! X8 l4 mend;        -- of the method% i  j. ]5 B9 ?8 Y: H% c  {
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
  z( ~# k4 ]" A5 ]% u2 c0 c7 }+ t- V$ }  G7 J- m7 I
这是AGV_putin中arrive的method。2 P7 y. k# j1 E  l2 E" I
- K. Y) f8 m) `4 \: i( n! O
当到达物料速度越高时,这个报警更多,2 o0 o" g- i# `+ J! d
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
6 e" U" y4 i! w5 S4 u  n$ }程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
1 @8 C# M: V4 U5 b6 ?1 M+ y
: `/ x6 [! G) u! F+ |5 V另外一个小建议,就是move,所有的move都可以这样
9 M7 B/ b* M. q+ O  B- a& `if not move() then debug end6 }( R, j2 _2 ]4 Y2 S
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。2 s4 [+ k: A1 R* V1 J/ h9 O6 u7 v
plant simulation中的free libraries有AGV模板,$ X2 C" I: O" e7 d0 \
里面也有案例。
& Y4 |0 L6 t1 T我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
9 b0 q( p$ V& D$ q+ J  @$ h! g5 I: X' v" q6 i; B
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 . A& S8 I, _% B" ~* R: Q: I. Y

' j3 m$ g, @( q. f  E5 {- W0 |5 s那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
3 G1 o" Q+ d6 |) [. s( f% B这是AGV_putin中arrive的method。
2 F. A6 u3 j. w2 T1 {; J( t  W
6 S6 d: E3 D# o2 Y% q3 z2 B) d当到达物料速度越高时,这个报警更多,

/ ?" f. Y0 o- [, g另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-9-16 23:24 , Processed in 0.021517 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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