设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8558|回复: 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'& P5 n: H! }/ x$ j& J
*/
) a- T" `& f$ r: Dis& n2 _6 u" z- W5 ]. \: f9 q/ Z2 |
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
9 j+ J+ W- U: i4 B  c( N% s: Zdo+ y6 k/ y6 @3 w$ E
        Lan := rootfolder.Internal.Tools.AOLlanguage;
1 @: T, v1 d9 w9 i3 Y        if current = @.Destination -- else return
/ q3 k5 `" Q' C) @# z; w& G" O        then( Q5 k! A  V( H& A0 C5 |
                @.Destination := void;4 {1 G; F5 v2 A+ e0 o+ A1 E* s
                if @.occupied then
. j$ z: F+ s) f( V                        part := @.cont;/ u6 Q8 d- Q, q% Z
                        @.transpOrder := void;0 Y  a) a4 c( `, o9 J9 ]
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,! x1 O+ u4 C; {% y! y
                                @,root.eventcontroller.simTime);4 O* B8 L' r" `1 u0 R/ h: o, g
                        @.HasOrder := false;
2 p1 x- N! L; h( f; F4 A' w  p% L3 a                        @.DrivingHome := true;
3 a! g7 P) O1 M                        rgManager.tryToStartTransOrder;" f7 [# T0 |! J7 ?1 S
                        if @.Destination = void
8 @* m+ ~$ @) i7 w' i  U- U. X: ?; T                        then -- no transport order for vehicle @
- X- s& r2 ^( g8 d0 ?: f                                @.Destination :=  {, E5 f) A) ]! N; K4 _: ~
                                rgManager.nearestFreeStation(@,track.~);: ?! [/ R6 c7 P& U! a
                                newDirection(@);   
4 Q5 d/ ^2 {* @1 `3 P! H$ I                                if @.Destination /= void then
/ d' f; G" J3 T: m" ]' Z" I3 Z+ \                                        @.Destination.NumReservation :=
1 M9 w6 l. t- D0 i                                        @.Destination.NumReservation + 1;8 `% j5 F3 @. n/ H2 S- }
                                end;
- o) o+ Z- e( Y' ]                                @.CurrIcon := "drivingHome";8 K1 o; [! Q' e  U
                                @.DrivingHome := true;
; U/ {- @: ~5 b$ d( d6 u                        end;. d6 g4 I, \6 J% R2 n$ r* ^
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
  i, s6 k& w& c$ s                        part := @.transpOrder;4 S: R/ i9 O8 G( o+ ^
                        part.move(@);-- load part1 g7 b$ f( M! @7 K0 K1 |
                        @.CurrIcon := "load";/ C6 C& \0 g% I! y& A  c9 o
                        GlobalDistObj := part.globDestination;
; t0 X) f! Q! A6 Y: }                        assignLObj := rgmanager.rgAssignL;* C- h, j% H) v+ f! {
                        row := assignLObj.getRowNo(GlobalDistObj);; z9 q1 v+ y( c3 k
                        if Row = -1 then -- since 70: E, _  h' R& ^/ Z) Q/ \! D1 o& W
                                if lan=1 then
* _2 X9 K/ t$ ~( i7 c                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),* _4 E3 A. G; F# q
                                                to_str("in der Andockstation: \"",?.~.name,"\""));8 M1 w0 H0 K0 O# \
                                else
7 ]8 c& s, M! Q' |; i                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
0 B$ X* k& @& Q6 a4 i, L- Z( Z                                                to_str("in docking station: \"",?.~.name,"\""));                               
7 n  y/ \- U/ Y: {0 `5 b) M                                end;- X& N' g! X1 ~3 f/ @3 R- w
                        else
! B; s- V' c9 z4 S7 D; |                                @.Destination := assignLObj[1,row];; p5 _* }1 R* I5 T' l
                        end;                       
# E1 |1 o' V  j1 e+ B+ V                        newDirection(@);. J. w& S$ B) s$ T/ R
                        @.HasOrder := true;1 r, `+ Z4 `, }- Y( U( r
                end;
( z5 D% c4 x9 a% k. M* L        end;
. n) I6 G2 u' ?8 }end;        -- of the method4 r1 L. ]9 m8 n
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 * T2 {5 z+ J& W, h! Y0 O! y

6 ^' @6 v3 |9 c9 I1 V这是AGV_putin中arrive的method。
$ M  V+ j1 V3 @. t# D  `4 j. ~
* r9 J* O& B6 M" }) t  d) C' ~当到达物料速度越高时,这个报警更多,
& k0 q! o7 Y3 Z- }3 ]! {9 T( X$ ~$ u: B# b可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
7 ~+ G: w8 }7 l5 h) N' H6 F4 L程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
5 w5 [: Z8 u$ D9 _; O1 j4 y. ^, o! H- Y- B7 a) F; N
另外一个小建议,就是move,所有的move都可以这样+ p& R" R% y" G0 Z+ R5 x' R0 ^
if not move() then debug end
. U! O2 ?: b7 |: d. l2 d0 O) N4 N这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
5 q+ |# \7 I1 b# Lplant simulation中的free libraries有AGV模板,7 E2 d+ u) U! D1 q+ |& ]
里面也有案例。6 `: D  B  W6 W  h% i
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
; R- L4 |( Y; ^& C2 c: ~1 o, C9 }4 w; w5 j
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
" ?% R. q+ x# k/ l4 [
/ _$ \* d8 [3 I0 T/ r7 ]8 i& w那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 * W$ x7 W7 V( {8 {2 l9 w
这是AGV_putin中arrive的method。& a/ s; ^7 n' c8 P6 G& v% D$ \& Y" p

3 r5 ?& p/ ?4 Y4 K" h* m+ g当到达物料速度越高时,这个报警更多,

0 ?! J  k- I9 `1 W5 ^) P另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-11 15:35 , Processed in 0.016124 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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