设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8426|回复: 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'6 {( O  w9 z! t* p  |& y6 O- j
*/  r4 l4 O; u) }3 f1 Z
is' b& N& f! }0 i0 T. m
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
# t. u( _) m) t3 t0 e" [, U% Mdo9 _1 Q3 U  n" ~$ R5 K
        Lan := rootfolder.Internal.Tools.AOLlanguage;% P. u) h& \0 e
        if current = @.Destination -- else return5 x, p  C) K- b! r3 r! ]! y; [
        then7 \, |  P$ w1 H; U1 n& G% g/ r5 x
                @.Destination := void;
, h0 N# A) J" l% a2 p9 u                if @.occupied then: D4 x7 a* g# y( |* P: d
                        part := @.cont;
, j4 h% _/ P6 R7 Q" R( O6 ~                        @.transpOrder := void;3 O4 A, P7 Y& H6 u8 q) `# x" Q
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,- e% z. i- C) V7 a9 i! A) Y# U- ?
                                @,root.eventcontroller.simTime);
8 R. g4 o% n3 h: T+ e' r6 _0 P2 _/ {                        @.HasOrder := false;
; H' Y. b; w  J2 Z$ C                        @.DrivingHome := true;
9 z7 _& `9 Y+ w- _. n                        rgManager.tryToStartTransOrder;6 E8 U5 F& S0 ^$ Z  i
                        if @.Destination = void
' A. @3 ]; h" T: Q6 e                        then -- no transport order for vehicle @% O  M: \' t, X, e# o% s
                                @.Destination :=
  d3 ~# m! r* Z2 C; A                                rgManager.nearestFreeStation(@,track.~);% g4 T* W/ z' Q# K1 ^/ v! g, t
                                newDirection(@);   - j2 R: ?7 R, ]/ a
                                if @.Destination /= void then2 z# U  j  ?7 }. d
                                        @.Destination.NumReservation :=
: o3 d; V/ L8 o. k' ?6 M3 }                                        @.Destination.NumReservation + 1;- |4 y8 Y7 I% u, |- t
                                end;. ~0 e6 N& c! @; S+ O: \
                                @.CurrIcon := "drivingHome";% }9 a$ _" b6 b5 }" u3 o( w4 q
                                @.DrivingHome := true;
; |9 s8 I1 f1 v- I1 y( c                        end;$ `9 M8 ~/ y" ^, {0 a: y5 J0 m" A( a
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station" F: v9 y0 K0 F- }  A) `
                        part := @.transpOrder;
' w' D" ?' t6 o. {5 J( S1 q% N& a                        part.move(@);-- load part" A6 h$ x& `- ]0 P; [$ ?2 {
                        @.CurrIcon := "load";
; n' F3 ~) f% g" u. O8 ^* H" p                        GlobalDistObj := part.globDestination;/ L* Z  {& W. L# W
                        assignLObj := rgmanager.rgAssignL;+ e: @9 y9 a% p  t  f
                        row := assignLObj.getRowNo(GlobalDistObj);
6 D& j# f; e- t) |4 s" o                        if Row = -1 then -- since 70
) t/ q/ p3 g. Y7 F( k) ]                                if lan=1 then" W: }1 T: k  k9 d# u/ R8 \
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),/ G$ a8 w2 z, d% n. D
                                                to_str("in der Andockstation: \"",?.~.name,"\""));4 x. a) o" e9 q% h$ M$ g
                                else
2 p3 @1 e  T- _2 o$ c6 ^                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),+ o' {$ m( o* K' B+ H
                                                to_str("in docking station: \"",?.~.name,"\""));                               
) u: Z+ a" r2 G  k$ t1 x) j                                end;
- b+ ?+ r' w1 d* _! g$ k" m                        else. `2 |4 |1 w, o2 Z
                                @.Destination := assignLObj[1,row];* U( d' a+ Q  A9 g
                        end;                        & f# k$ P% U% ^, m& [
                        newDirection(@);
2 K4 N8 C6 X6 O7 I& w& P                        @.HasOrder := true;: i4 i* D' o/ n$ n% Z9 X- s, R
                end;
# F& J4 v0 h; v        end;
5 b! N+ h+ |  t( f, Jend;        -- of the method
5 {$ s/ r0 R2 _9 b- d
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
5 z1 G" l. O- D" u% q5 i7 L/ l- s' G0 N+ X0 P. M
这是AGV_putin中arrive的method。9 _7 c6 @7 X; |/ r" N$ y

1 z) p2 o: H5 k- o/ t2 g' ^当到达物料速度越高时,这个报警更多,
# @7 g1 w9 f- X5 ~/ G* P可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
% ]: q1 M$ u* }' b2 K程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
) y+ `6 i" \9 g, @9 m* D, u
0 ]0 D1 B5 S! L. _另外一个小建议,就是move,所有的move都可以这样8 m7 \. i4 a9 m, H  w+ ~
if not move() then debug end4 d: M; ^; a* x% T3 C6 p* F
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
9 Z! k2 w) y( L, s+ j7 k( K  u2 pplant simulation中的free libraries有AGV模板,& q  d7 {# s' H+ Q& x
里面也有案例。2 z7 F8 G, k4 T8 w' p
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
8 K( n$ v% e. k  R/ g. w6 ?
, r* }( }1 w* _6 A! ~- @我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ) A! H1 V3 l( x% U% \9 c
5 k4 O9 i6 E& M
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 , k" |3 Q6 C4 f! j' v
这是AGV_putin中arrive的method。
5 j; n0 i# s: @& L, A$ ?- d& h! |5 G
! f! o4 b3 Q6 O! z" b当到达物料速度越高时,这个报警更多,
3 Q+ j3 U$ E. E, j; B
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-3 02:55 , Processed in 0.015385 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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