设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10167|回复: 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'  Z! u/ {: g! G  O* h
*/4 T# X" E# A! ~# c+ ?" t
is1 r6 G) R6 Z$ K) m( C* ?2 I5 I1 J, B8 N) r
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
) o) [4 @" x2 h6 q3 h3 vdo, _8 [3 R; U/ Z+ |  x$ J5 k9 ]
        Lan := rootfolder.Internal.Tools.AOLlanguage;
* T: G1 h2 C8 ^# ]5 L1 ^2 D        if current = @.Destination -- else return3 ]. Y- q% t0 l* u0 E9 U$ q! }
        then* e9 [: j" z7 u7 A
                @.Destination := void;
4 T* B' S3 D3 X3 p0 `9 J! @: P                if @.occupied then
$ p! r; j! `% m                        part := @.cont;
( b' K! m; M. {+ M4 n* \                        @.transpOrder := void;! {" P+ y, d+ B# c# w
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,' d5 F& M" n6 u2 ]$ ]+ Q. d0 h& k1 u
                                @,root.eventcontroller.simTime);
! Y8 |; Y9 _9 ^% S  ~3 j$ j                        @.HasOrder := false;) z3 v) Y0 k1 Q/ e! U
                        @.DrivingHome := true;4 p4 w7 r- X$ a
                        rgManager.tryToStartTransOrder;$ [% f% w4 [9 B# S; b- d" q4 f& d, G
                        if @.Destination = void8 j" ]; {) ^( p9 m
                        then -- no transport order for vehicle @4 G& J+ c7 |3 h  x
                                @.Destination :=- [% w7 Y% a7 W2 E/ ?1 K
                                rgManager.nearestFreeStation(@,track.~);
. b8 t( Z3 ^: r( Q: a. ?3 E                                newDirection(@);   
" H( n2 }- f1 \/ o                                if @.Destination /= void then
9 l1 v/ s2 Z3 ~$ e( `" W3 |8 u                                        @.Destination.NumReservation :=, ?* y. z( M6 ~. `" y2 L
                                        @.Destination.NumReservation + 1;6 L, W8 F& A, Y* ]& R( G
                                end;
# L7 n4 L8 H8 i" ^; v                                @.CurrIcon := "drivingHome";# }3 {' k: g, O# O2 p6 ~' ^
                                @.DrivingHome := true;
" u) g/ u* G- ~0 k2 n                        end;
, r3 z! p: D2 {! I( _                else -- the vehicle @ is empty, both vehicle and part are in the same dock station5 d: E2 B) G/ I  M1 N7 z
                        part := @.transpOrder;
' {' N" D5 G) x                        part.move(@);-- load part' }: i" ?3 r+ v5 q2 t
                        @.CurrIcon := "load";/ t( k8 L" `% p/ g
                        GlobalDistObj := part.globDestination;. r# v9 V) S* R1 V, U
                        assignLObj := rgmanager.rgAssignL;
, Q. x1 K/ m6 h9 T1 C9 m                        row := assignLObj.getRowNo(GlobalDistObj);. m" r' C7 j: E
                        if Row = -1 then -- since 705 P  B! w6 N- e
                                if lan=1 then
4 b1 _$ ?4 k: B9 e' F4 h  ~                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
: D  Z% a! Q7 i/ E3 C+ S  e5 t7 K; H                                                to_str("in der Andockstation: \"",?.~.name,"\""));
; E( U$ c. p/ C. L3 a2 [6 l, T  z                                else
  ~0 y! Z! S# h7 `* ^                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
; u& h3 t0 \; q! D4 }                                                to_str("in docking station: \"",?.~.name,"\""));                                ; O5 X& D9 o7 \/ V( A
                                end;. h! ^  t# `+ G, v
                        else% w# `+ k6 ^  T/ E
                                @.Destination := assignLObj[1,row];
# ~9 X' j( f& o& D7 O, {                        end;                       
. ]9 o0 u5 [1 j* M$ R4 c1 B/ S$ h! B* t                        newDirection(@);3 y1 u' M% }3 A
                        @.HasOrder := true;
1 L( H' o7 s, x+ P# ]                end;
( Q, u* m: L  L0 {# H" u6 F% H$ ~; t        end;9 R. [. h: [! P
end;        -- of the method
( b3 v; @6 l0 \* f! G
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 , Z% l& P& J$ B! y) N

6 R0 O/ o3 ~: K7 U* D. I/ h* E4 j这是AGV_putin中arrive的method。
5 O7 p: n& O- n, l" A
/ Y% |/ f9 }$ T" Q8 n当到达物料速度越高时,这个报警更多,
, a# ~; o7 M0 e9 {' X* e, P% I/ p( v可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
) y( R/ ^: m9 D6 y, b程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
% {: @/ D2 D8 E( n' m% `# E1 _
$ @! w- T$ y, {' l另外一个小建议,就是move,所有的move都可以这样
2 i* O& e3 J& i$ n3 Y, E7 d! nif not move() then debug end' V' T# h: {- v4 c, G# }
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。2 y% k9 C. Z1 s0 L; `' Q) W8 g
plant simulation中的free libraries有AGV模板,
" t( V) A2 S) e: _0 t8 S8 i1 V里面也有案例。
0 S# J' ~! e: @9 Y我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
  [2 k$ f. l5 V0 H: J4 h/ t- d* d/ Q' `: x, k5 J
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
9 ^" h0 O4 Q+ B" t2 V7 I* R# T  [- G0 n+ b- s" |
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
" S6 Y& W4 @2 a7 f& {% F这是AGV_putin中arrive的method。
$ h/ s6 O  K  y. |) w& `0 m2 V3 F6 `& y1 v3 _
当到达物料速度越高时,这个报警更多,

8 k6 V& S. C- ~8 v* ?  l另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-17 20:13 , Processed in 0.020904 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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