设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7307|回复: 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'
; S; T+ Z! r1 ?1 d/ W3 N*/
, d% ]! ?- K  T; D$ H! m1 Ois
0 ~" R( {0 y6 \- P+ c# q* ~$ t/ B. H        part, GlobalDistObj, assignLObj:object;row,Lan:integer;4 ?/ \* ^3 _7 g: G2 _
do- Q! K$ |1 x6 n' w$ a
        Lan := rootfolder.Internal.Tools.AOLlanguage;1 ]3 H& J. g4 M/ Z" O/ S1 i( M" R
        if current = @.Destination -- else return$ Z7 f5 J0 {5 @' x4 }0 I4 w
        then( A$ I* p% K! c) x/ U  M, ]7 I
                @.Destination := void;& U9 r9 {5 K" a0 j
                if @.occupied then
* w7 [" o. e! g                        part := @.cont;
9 ?/ G0 D- J+ S# Y                        @.transpOrder := void;
4 o6 V5 U$ Z! h* q' o1 i+ U4 L& l                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ G, W$ o5 J! x6 l" Y' T" @                                @,root.eventcontroller.simTime);
9 d% q: u% t: ^2 v                        @.HasOrder := false;" p; z; p* ^4 e8 o& @8 u/ \0 G
                        @.DrivingHome := true;0 b* w( \# Q1 z
                        rgManager.tryToStartTransOrder;
2 ^% s* w+ s6 }% T; r% P7 Q: z                        if @.Destination = void
7 ?' }2 u0 ?& x# u; ]                        then -- no transport order for vehicle @9 q  A  |6 i: @' k3 b% h
                                @.Destination :=
5 d0 x1 M; N/ f                                rgManager.nearestFreeStation(@,track.~);
2 h" W3 l1 G7 y9 f                                newDirection(@);   
5 \; g9 `# F6 {4 S- E8 Z+ m                                if @.Destination /= void then
3 }6 |* Y; ?* }- e                                        @.Destination.NumReservation :=
9 |" P8 U) O/ }; X" |                                        @.Destination.NumReservation + 1;/ |- k* A1 C( F
                                end;/ M$ @" ?9 x) S3 w; W+ N7 D
                                @.CurrIcon := "drivingHome";
- m' G  P% ]* u: e                                @.DrivingHome := true;
- e6 v! x. a2 C  m                        end;; q9 ^" T' O4 F$ H; f$ `
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
2 ~7 b$ f' T& ?+ o% x                        part := @.transpOrder;/ x4 w9 c1 r! l6 w* M/ w( r
                        part.move(@);-- load part% V0 t7 a& j. O6 w8 x
                        @.CurrIcon := "load";
, Y3 ^) Q7 }9 u# N( e/ Q0 t7 s                        GlobalDistObj := part.globDestination;: j9 S$ g0 d$ M
                        assignLObj := rgmanager.rgAssignL;
* i1 J* w' a6 x9 i" N1 r                        row := assignLObj.getRowNo(GlobalDistObj);: M6 b3 r. T) r: f2 r
                        if Row = -1 then -- since 704 @, p. f9 H% e  c
                                if lan=1 then
- h' ^6 v/ x" [# Z: a* X0 z5 W                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
9 A1 L! c+ t+ N  [' _$ e                                                to_str("in der Andockstation: \"",?.~.name,"\""));
8 j6 g8 h6 W0 X. h4 d                                else
' m  H  d" ~8 H) Y, Y                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
& ^: ?4 Z5 {, h) |                                                to_str("in docking station: \"",?.~.name,"\""));                               
6 l0 F/ y' D  P: {                                end;7 i+ k! ]0 B1 I8 }
                        else
1 J% |' T4 F3 p+ Z* S                                @.Destination := assignLObj[1,row];# a, a. e  |6 h( U
                        end;                       
+ u, T. _5 B& A2 |- R* \' o: ~. B                        newDirection(@);; }+ y# N: C. q; a7 X
                        @.HasOrder := true;
" [3 t" {1 g, `! V                end;2 j* ^# i& B: F1 b: |
        end;: E$ h6 x" n- X! z0 T9 [
end;        -- of the method
( K4 y3 o8 C9 k' x# X7 F* @
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
+ X! i% ^3 S& ~6 I! P. ^
2 o: S) c0 R1 n1 E+ B这是AGV_putin中arrive的method。" ]( _; r; L% h% ]

& ]- D2 r: n% l: S1 n* o! I/ c  `当到达物料速度越高时,这个报警更多,0 @- U$ s3 Y9 ?5 D
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! J6 e4 j7 u3 w1 Y  W. W% W
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?' d$ [, t$ R! l7 ]! O/ V% Y
+ Y; ~* R$ b+ d7 R, V5 \
另外一个小建议,就是move,所有的move都可以这样
! ?; G" r3 T! c; Z( U, Y& m6 hif not move() then debug end& {4 H8 r1 z% J$ D1 @4 @" h
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。" P' \( n8 j- b( M
plant simulation中的free libraries有AGV模板,  R+ F# B/ W" B$ U
里面也有案例。
% A! V7 S5 X' J$ P6 N我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
9 f0 z& l/ _/ {0 _+ B; Y  X1 @0 _0 H( j( f
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
+ b  x: G' m% M. B& ]5 L7 Z1 R$ ]) Q! s( @1 k# J
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 * L! J3 ?) w. f& z1 @
这是AGV_putin中arrive的method。: R* \# G' L( `) \0 O
' J4 K/ d1 f  H! r) {* b
当到达物料速度越高时,这个报警更多,

5 [( Q/ [! n; Y另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-3 08:07 , Processed in 0.023233 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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