设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8240|回复: 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'
( y0 E3 e& ~% n% o- r*/  j2 I. E7 I( X6 p7 ^, O" n
is
, u$ f1 a, o- N3 ~6 W        part, GlobalDistObj, assignLObj:object;row,Lan:integer;( D& ?: v5 L. i3 k4 ~0 u4 E, v
do
$ z+ y" D) n$ _5 {+ J        Lan := rootfolder.Internal.Tools.AOLlanguage;% a( X5 v. Y5 A8 b! l1 Y" O  ^8 C1 R3 H
        if current = @.Destination -- else return. p; t1 T8 q6 i: {  n
        then3 B: c  y# I- n2 `+ S& _( E: ]
                @.Destination := void;: u" |' q: F1 K1 l" D. B( w
                if @.occupied then
% c, N0 x: K7 y5 M" Q                        part := @.cont;1 q# j( Y" h+ k- g' Y
                        @.transpOrder := void;
  x/ j/ u$ @( R) u) |                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
* T+ G* v+ L& W" F" Y2 ^                                @,root.eventcontroller.simTime);" k6 X0 v% d. k; {& j  Z# a
                        @.HasOrder := false;4 ~/ @  A1 P* }5 X
                        @.DrivingHome := true;
( F: T, w4 W' l. P& C                        rgManager.tryToStartTransOrder;/ x0 z$ u$ C" i! |0 W" h
                        if @.Destination = void8 X* E6 C2 l5 i1 Q9 l  N2 V
                        then -- no transport order for vehicle @! G% k, Q7 m! e3 e
                                @.Destination :=
, m, _6 H- E, y/ ~: e" L  }                                rgManager.nearestFreeStation(@,track.~);
& j, K8 s* d7 a5 f& L( x. q* c9 {                                newDirection(@);   
/ j- d' f$ z: F; [% U3 z                                if @.Destination /= void then3 Y2 {+ c. a" X) R& Y; }# t3 {+ q
                                        @.Destination.NumReservation :=0 w  s3 }7 p1 P3 t: Q
                                        @.Destination.NumReservation + 1;" s7 r; {: w( D: n  F
                                end;
' G; _* ~0 z& K5 N                                @.CurrIcon := "drivingHome";/ x) R2 S$ |( C/ O' w
                                @.DrivingHome := true;8 i1 l2 V; t7 T0 v  k2 Z- i3 M
                        end;
) L1 v, t5 P0 b+ r. _" A                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
  b& D1 ]6 ^5 L' d2 x7 l2 |5 f, c                        part := @.transpOrder;% X  `' z( e9 S
                        part.move(@);-- load part" C/ Y* ^$ R  V1 t* r) m$ l) _
                        @.CurrIcon := "load";
) t; a* p  h! |+ d2 j- b7 L" W, k                        GlobalDistObj := part.globDestination;
7 ^) {5 M$ x6 {  R5 ]/ V                        assignLObj := rgmanager.rgAssignL;- o2 S! f- |3 s
                        row := assignLObj.getRowNo(GlobalDistObj);" ^* i0 q) N0 ]- b; a
                        if Row = -1 then -- since 70! q" @; w' k; O: Y
                                if lan=1 then
, m$ {* y% x9 x4 G0 |; l                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),. H% A6 X  o& t1 G/ P, e5 h
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
5 A$ O% k) Q0 u8 A7 X- D                                else
2 N* h( [2 s' T/ ]# n7 e                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
. T1 Z" q; B1 n% c5 j3 T                                                to_str("in docking station: \"",?.~.name,"\""));                               
) a7 f9 A; ^( K1 x                                end;
* X: a$ }' ^+ z6 H+ Y# o                        else4 K, R5 G0 Y8 X6 e8 B, a
                                @.Destination := assignLObj[1,row];) i3 i( t( i5 D1 B+ }9 ^$ Q
                        end;                        + q9 n: W; y5 j
                        newDirection(@);
3 o& ~! x4 q, K4 w; F- q                        @.HasOrder := true;
. I# B% F7 y- s' r0 ~+ w) y2 g                end;
$ E3 S' }: A% p0 G# J4 H* M, ]        end;7 _* x1 ^) y) @( E
end;        -- of the method
: H; E- F$ T5 |5 f! I  ]
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 & m# ], H4 Q1 u/ N* c

8 x) b( R+ B. b7 x6 a这是AGV_putin中arrive的method。
; X4 Q& S. `2 Q$ |& `+ p7 }$ u# J4 E( q
当到达物料速度越高时,这个报警更多,& g0 n& w1 K2 X/ F% }/ C
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
1 L3 f7 |* s1 f& @0 M) p) W程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
# k! N2 c! j' E0 n% D5 w2 x' c7 x2 d% v
另外一个小建议,就是move,所有的move都可以这样$ ^' r6 M" a5 `3 |+ S! _4 G; f# j
if not move() then debug end
6 p$ ~3 @$ C0 w2 ^  L这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。. V8 `. z9 ~; O& B; c: v, I' Y
plant simulation中的free libraries有AGV模板,: _4 n1 T+ L  y3 M4 L
里面也有案例。
4 z& D+ J3 l: `我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
) x9 C% e* Z& E' m0 e7 f  M8 k  f  Y" A) J* K0 n, C$ E+ H3 k3 }
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
4 Z6 e8 N% K. O9 F. V* K  p  I' g* L5 g( W! a1 U
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
! k- E; G' n# \5 b这是AGV_putin中arrive的method。" h! X5 {: w! H& u& y7 G. K3 F, b- n

$ ^$ ?( l, l: E) p8 `" y当到达物料速度越高时,这个报警更多,

' R5 u; i3 y4 Y6 C另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-22 17:45 , Processed in 0.019531 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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