设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6923|回复: 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'2 Z) s9 X8 p. f' c9 d
*/
1 n; U# F' K8 k+ r2 F: a4 K( m$ @is
9 F) o0 ?9 c# {2 i5 R) `8 o5 ?* N: {# H        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
# b- e* E8 ^: Q8 t# y$ L7 Ldo
, l3 {0 N, T. c/ L0 j        Lan := rootfolder.Internal.Tools.AOLlanguage;
1 y. h. r7 O0 v/ Z        if current = @.Destination -- else return7 P4 p' y3 p: b1 ^7 C! z
        then
- r8 r" n* b$ ]. |' G                @.Destination := void;) L: R$ L( q& M2 \3 q
                if @.occupied then
5 e7 z8 e1 N9 D& T' e" ]                        part := @.cont;
3 i" V7 w8 s; D                        @.transpOrder := void;
) o' x: y. {7 M  w: m# L                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,* }% x9 f/ X, H$ L, t
                                @,root.eventcontroller.simTime);' ~3 Q* n8 Z: }4 N3 z
                        @.HasOrder := false;
, `/ @8 n! s" g4 I7 ?6 K                        @.DrivingHome := true;
. y6 b- a  ]: \, u' [                        rgManager.tryToStartTransOrder;9 C, X7 u' i7 u
                        if @.Destination = void
4 d: b$ B- w+ s' P& u                        then -- no transport order for vehicle @
# z2 `7 J1 N! g" m4 x2 [                                @.Destination :=  k( q* r* s5 u1 K1 E
                                rgManager.nearestFreeStation(@,track.~);; W/ K  B* y2 P* [
                                newDirection(@);   7 ?. Y. F. x5 `- {, B$ B
                                if @.Destination /= void then
0 o- l3 X- C9 W  [3 I+ Y                                        @.Destination.NumReservation :=
$ h  G! b7 D4 r. p) f) T& h                                        @.Destination.NumReservation + 1;
( \0 F2 Y& j, w                                end;
4 n( Q  _0 o% @2 k+ X0 [                                @.CurrIcon := "drivingHome";
, f) C% M0 L2 u5 y; |                                @.DrivingHome := true;" \+ A8 i+ N# V! f3 m
                        end;) S5 o" z% ^' s+ r# }
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
2 ]; x" s6 Z3 Z                        part := @.transpOrder;7 z  i6 q4 U; {# l# w* _7 {$ B
                        part.move(@);-- load part
4 G* f7 C; @- X                        @.CurrIcon := "load";
3 |8 d4 X2 i, [5 a                        GlobalDistObj := part.globDestination;3 a) q6 K# t, ~2 `
                        assignLObj := rgmanager.rgAssignL;
# R( A* [$ W# b( B/ Z0 A                        row := assignLObj.getRowNo(GlobalDistObj);
# K  b$ B4 W' L3 W( D                        if Row = -1 then -- since 70
0 g+ ]2 Z1 H/ l/ A, Q5 n$ Q7 M; a                                if lan=1 then
4 w. v* S. ]; Z* {                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),7 q* [% N+ p: X
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
$ O7 M$ A7 P( E+ v5 y& z                                else* G! s) C7 A3 @3 W' P/ H
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
5 j  U0 [% Y# t# A2 ^# p                                                to_str("in docking station: \"",?.~.name,"\""));                                + q% r6 f, K" v2 {1 M: B
                                end;
3 L1 m' f- C! [+ I: u                        else
& B7 W9 s3 _1 j1 P                                @.Destination := assignLObj[1,row];
. J4 ^7 V0 g$ p# R" o                        end;                        * n& q/ e: U4 S' @! J
                        newDirection(@);
% O& d9 l. o0 J: x0 X! P                        @.HasOrder := true;- C% z9 o3 R7 _8 a
                end;
- _" U! Z" f  ~  b6 v7 Q        end;0 _* a* B- E9 a
end;        -- of the method
- Q2 z) I" C$ Y% x5 E& x2 |) L
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 + Z2 C& p4 H9 T, j2 t- i

- d9 ]" l, p# J7 f; z这是AGV_putin中arrive的method。
' ^6 r4 B3 J' h5 X% U: o/ _8 L3 [' k2 v) }/ \6 N4 @( A7 u
当到达物料速度越高时,这个报警更多,
5 z; r% @" x* U0 w3 k可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
- ^* b4 ]6 g. h0 e- K- W程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?- _; e$ y9 j8 s/ I" ^+ V& O1 R

! E8 J# ~/ y: ~+ W另外一个小建议,就是move,所有的move都可以这样4 P. V  l' o0 s8 R! Z! g
if not move() then debug end
  x4 x( j" I+ t这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
: ~! ?5 T. g8 @$ }plant simulation中的free libraries有AGV模板,
% z; b/ e; t8 P5 k' n里面也有案例。
2 Z! e& c) U+ {: n7 u我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。! ?9 I# ~9 Q2 }# o. K& m
! t" ^8 e3 n  o& J4 b% B
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 2 T; x$ M7 D( Q/ F0 U1 `

3 N( l6 A- M% h那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 4 a/ i. B7 c9 A9 ]& A7 R
这是AGV_putin中arrive的method。+ G9 g2 q" B3 E! R7 c; x+ B* [
# u" C) `. e7 i1 `3 g! P
当到达物料速度越高时,这个报警更多,
' k+ B9 f9 @; k9 y- |8 ^
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-6 18:59 , Processed in 0.018109 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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