设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8870|回复: 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'
4 u, F! f1 T2 W. I, l% K# p*/
5 r9 H( ]) F/ Sis1 ], M5 Z0 a: _
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
* x! [9 b/ W/ R2 U0 k  i0 ]( \do- [' a7 ~7 B* \' k$ P  {
        Lan := rootfolder.Internal.Tools.AOLlanguage;
1 D( k5 ?7 s$ ]5 D6 v5 W6 Z+ S1 L        if current = @.Destination -- else return0 H4 N0 M6 j$ W7 Q0 f! z9 q6 C/ V
        then, f5 U. \, s; ~3 g7 b# X
                @.Destination := void;9 I3 p- p+ k# f) g1 C, P
                if @.occupied then
' K  c0 R% L- I! d; c# R) E                        part := @.cont;: N# y/ a- }; G
                        @.transpOrder := void;
2 r8 o" p2 C" J# `4 u( Q% ^& R6 Z                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,* c( A1 H- @& _3 c: w2 I
                                @,root.eventcontroller.simTime);
( X! l1 Y. O0 K+ Q' C+ _1 J, ~' @                        @.HasOrder := false;
- b2 U/ i4 K) @$ Z                        @.DrivingHome := true;
: _  d4 \5 p( g+ y4 {                        rgManager.tryToStartTransOrder;& o( f9 x/ _0 p) C! o! j$ M
                        if @.Destination = void& n& k) X; I# J1 t# v
                        then -- no transport order for vehicle @
# r; c* D# v% K! U                                @.Destination :=
: X( P8 T6 e9 |( P  J                                rgManager.nearestFreeStation(@,track.~);6 q% U2 n- m2 Q7 u: r
                                newDirection(@);   
7 R# h5 Y- T8 c9 S                                if @.Destination /= void then8 ^2 Q1 K7 Y; f4 U/ K  u9 g5 U. N
                                        @.Destination.NumReservation :=
1 u7 N$ ^. G' {1 R4 X1 N                                        @.Destination.NumReservation + 1;
4 Q* r; x% h' t3 a* m5 q9 R% F: [$ v                                end;
( Z+ \! ]2 ~5 L- ?& s                                @.CurrIcon := "drivingHome";
; P6 z9 A" I) \( X( T1 {4 |6 g                                @.DrivingHome := true;9 r2 F% Q" w9 \7 T
                        end;5 o7 @5 `# t% v) R% @! _. r
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
: e9 s, Q9 n5 q3 u6 [                        part := @.transpOrder;
- Q& u" W8 [9 n  ^5 `                        part.move(@);-- load part
# ~- {1 |- S# C  J, w2 T                        @.CurrIcon := "load";
! h+ T1 T+ i0 c2 H+ b                        GlobalDistObj := part.globDestination;
* z( O) \% Y# m/ t: K                        assignLObj := rgmanager.rgAssignL;
2 C2 h! Q2 L; I                        row := assignLObj.getRowNo(GlobalDistObj);
; o' P4 _$ F) _0 b                        if Row = -1 then -- since 70
% E) Q+ j0 h& s: Z                                if lan=1 then
. G2 l& v; Z6 }                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),2 n$ y: J) `2 {4 C' l3 I
                                                to_str("in der Andockstation: \"",?.~.name,"\""));' Y6 K% G1 e8 Q; q' U
                                else  X* k2 {7 d0 G$ R, C: @
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),0 {, k6 ^9 Y# ]3 d3 j3 J7 e7 w
                                                to_str("in docking station: \"",?.~.name,"\""));                               
  O: b+ k# \- L- G# U                                end;6 t4 G4 q: _& g& c' f# }; L1 j
                        else) i& r6 g% B* H# t; e- j* D
                                @.Destination := assignLObj[1,row];' Q0 Q( G- n$ |: Y: s
                        end;                       
2 X+ \' _9 T6 |                        newDirection(@);" G% B3 y1 u6 K( Y: C, }+ R
                        @.HasOrder := true;2 {# N3 C) A  y6 S% H% {
                end;
; [  w$ y2 |! c/ |3 E6 T        end;8 c9 P: q% o  O( B
end;        -- of the method
3 Z7 |# d+ Q8 C! x' R
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 - n' e' p8 y; k0 d* |0 ?, z
) U$ w* S% h1 [0 z3 f; U
这是AGV_putin中arrive的method。
9 h2 I) F' R# c4 T+ Z: [9 E4 b' h2 ^0 T# x( g; [5 e9 [( a
当到达物料速度越高时,这个报警更多,
& d) j: i5 k' F% M3 P7 `可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
- c6 L' l1 h6 w# x5 e0 z' t* a程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
  o  U' T: U. @8 G) x! M$ I0 w+ W$ _; }7 ~: I3 ]4 Q' s$ B
另外一个小建议,就是move,所有的move都可以这样* C% _$ ~4 P: ?! X  J& E
if not move() then debug end
9 o3 w* U" B3 E. r7 A1 W7 {* D2 o这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。( M9 _3 j  U- a$ U* \( N5 B
plant simulation中的free libraries有AGV模板,
" ~7 s' o8 a0 i* ]8 n: Y! X2 r里面也有案例。
$ v/ L0 y, P" y; o我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
/ I$ e4 z. ^; ?- o
' b. X! S! A% a; m$ c, o4 i我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
2 H1 F$ e% k) G" @# p* \" |3 k) k. v1 a% l% \
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ; d- d+ Q$ G; J* v% T) t& `
这是AGV_putin中arrive的method。$ l0 ?7 y1 p0 q+ {( [
# `8 T6 h) ]5 I; K
当到达物料速度越高时,这个报警更多,

6 C  Q. h# V7 R3 _+ Q% s4 p# g另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-1 12:15 , Processed in 0.019437 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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