设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7455|回复: 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'9 I) m7 h/ ?" ~
*/9 X* j, j2 X+ R3 A, d6 R; ^) W
is
) h$ I& m' ~3 ?; P5 R1 K3 @4 Q" c        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
' t  _* Y$ E; s. Cdo! _- u( {7 j+ v7 F8 f+ o6 D
        Lan := rootfolder.Internal.Tools.AOLlanguage;
7 e% g. ?- ~0 G$ D        if current = @.Destination -- else return
  A! D( i6 o3 @% D5 j4 ^        then. M* J6 p- W. R5 T4 m3 C) U
                @.Destination := void;
/ F. m- F: ]$ W0 n1 F: @: X                if @.occupied then
; e% |5 V9 r" _2 ~                        part := @.cont;# W( x) Z; X3 v* N& D
                        @.transpOrder := void;
( j6 u- X1 ~: u* }4 e; k                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
% y: }" z, g. o% ]                                @,root.eventcontroller.simTime);, Z0 \$ Q) J" x! n
                        @.HasOrder := false;* m( {9 B% z! b& C  \
                        @.DrivingHome := true;
  S) |# G/ ^# p' _9 T$ @                        rgManager.tryToStartTransOrder;: k: `+ A5 Q- N. z' o; V. @$ W
                        if @.Destination = void
6 {4 Y. o; L* ^7 _. J7 F0 A                        then -- no transport order for vehicle @4 K( `. F) ^; a1 c! w! Q% H/ k
                                @.Destination :=
" l6 V  }# h# r, I$ s                                rgManager.nearestFreeStation(@,track.~);7 P% K& T: e' d
                                newDirection(@);   . ?6 m( z; j* D: z4 x8 q) w. Y( }
                                if @.Destination /= void then
1 ?6 K* @- t) }                                        @.Destination.NumReservation :=
5 v5 K9 |6 i! e9 h% C% ]                                        @.Destination.NumReservation + 1;0 o1 ]$ x0 Y- W3 j( p6 q; C
                                end;
6 U7 u/ Q: q( [2 }$ Y; S- h! _. x                                @.CurrIcon := "drivingHome";" N! n! S! T7 {
                                @.DrivingHome := true;
% }# Z! @4 f- B4 ]  ?7 M% b                        end;
0 q' _5 m* E5 k8 f6 `: e6 l' |$ J                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
9 h0 V! v. C( z+ }% \. R9 Z                        part := @.transpOrder;
" S5 D$ A. U) a( e0 \( R" E                        part.move(@);-- load part/ t0 S' t2 B0 `7 A: A' J- m7 }5 _
                        @.CurrIcon := "load";
( p- W: f7 M6 w/ L                        GlobalDistObj := part.globDestination;7 c/ z9 G7 r8 U, \* [
                        assignLObj := rgmanager.rgAssignL;
% U" p  T% j. o" [! c3 ~! ?5 a                        row := assignLObj.getRowNo(GlobalDistObj);- x1 p+ w  |+ `0 B, n$ H
                        if Row = -1 then -- since 70! i* z" j/ U  ?8 f8 i, l
                                if lan=1 then
# g# p7 x3 D( h$ L                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),7 i0 b9 a: v5 W' |! u& M
                                                to_str("in der Andockstation: \"",?.~.name,"\""));! \( G7 T- h+ u) W7 S* N7 P& W. V1 D5 |5 g
                                else: G$ ?' n, w  k+ T7 H/ ]
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
" p$ \8 O( W. y6 g6 ]/ [0 {6 d3 `                                                to_str("in docking station: \"",?.~.name,"\""));                               
2 ]4 ]" @/ J% S( A                                end;
: a2 {5 r! `/ H1 Z" B' k3 j$ s                        else
" y2 ]% ^. Z, p3 t- ~2 n& f                                @.Destination := assignLObj[1,row];
5 o8 I( g8 X, Z3 `                        end;                       
$ c" Q  y4 F! q# w1 g! c                        newDirection(@);
0 F: ?, s% R7 S/ H# h                        @.HasOrder := true;
- _6 A4 o# K# M/ ?  F1 V. R8 I                end;3 L1 y# m" U6 x& r$ L' U+ \5 y
        end;6 [! L9 q; F5 H( u
end;        -- of the method
9 X' J0 @- m1 |0 T. l1 i
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ) a9 ^/ \  @, \# i
$ ?3 h& k& n' B; C
这是AGV_putin中arrive的method。  I) F% T/ s& Q; o. w" d, A) j

  o2 K/ l9 L- C: c7 ^; k当到达物料速度越高时,这个报警更多,
5 B0 @$ c8 W& g, w可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
  R$ O8 h, C/ T" H程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
6 `6 L( \2 I& ?$ |  l3 ]& w$ g6 s3 Q0 S4 w& _% Y4 m
另外一个小建议,就是move,所有的move都可以这样4 g1 \0 X1 @- I' V6 w
if not move() then debug end
9 \6 S0 j& d  Y" [, s* @这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。8 y3 j) G5 c5 z
plant simulation中的free libraries有AGV模板,6 N$ R2 U  a$ J9 W) O  R& \
里面也有案例。5 ~. \  Q2 c4 d% I% X
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
9 R4 R" K8 s( P/ J
& ^- g/ n, r7 M我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ' G, |7 Q5 }% s& F: }
) ~, R4 b9 p0 C8 r/ s3 v3 m0 \& j7 f- G+ m
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
& L2 ~0 L4 L; d0 |' y: ]这是AGV_putin中arrive的method。# j' k- y2 o8 B

) ^* m4 z- z% F5 {, Z. C) `* m当到达物料速度越高时,这个报警更多,

0 W1 }) R- d+ Z另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-12 13:26 , Processed in 0.014951 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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