设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8183|回复: 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'
5 Z8 k+ G' v1 T$ q( ?' ^; J*/& B  a8 Y8 R$ S' p0 ~9 n8 D5 b: }
is, l) O9 i  V% x  Z* ?5 `
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
! w: c' x3 n! C. {( }' M# rdo
4 ~% ?! z4 N. d0 Y: Y  |1 N, f        Lan := rootfolder.Internal.Tools.AOLlanguage;! S6 Q" G5 |/ p
        if current = @.Destination -- else return0 F1 a& d7 ^2 n) ?+ U
        then* K0 n: ?1 q, S6 ?5 ?
                @.Destination := void;0 f$ v' L# {8 {
                if @.occupied then" Z2 p' H9 r2 \; M8 S2 v& k
                        part := @.cont;: m# Y+ o  S+ v! C- v6 n, g
                        @.transpOrder := void;
, V$ ?1 S( b5 R                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ H: G% V/ Y+ `                                @,root.eventcontroller.simTime);) l0 q* }: \& o5 L
                        @.HasOrder := false;# U& d" _$ H5 O0 J3 X  Z
                        @.DrivingHome := true;! b8 g. P2 U2 U0 y6 H' G# {
                        rgManager.tryToStartTransOrder;1 u" P) e$ h4 O0 [9 G8 m1 S% |
                        if @.Destination = void  w: B: q- U8 \0 m( S9 A
                        then -- no transport order for vehicle @0 E, E1 S7 `. m
                                @.Destination :=% N0 X" j9 z6 c. |# z
                                rgManager.nearestFreeStation(@,track.~);
  ~- x- |8 c. Y6 B- k                                newDirection(@);   9 \1 j- Y+ E. z7 K. _3 F  U% X$ O
                                if @.Destination /= void then
" C$ g. }) F' R4 V                                        @.Destination.NumReservation :=8 j4 h$ Z6 e7 k) o8 N* T
                                        @.Destination.NumReservation + 1;
( ~) B/ u: ^: x* X/ w% [! v5 R2 h0 f# \9 z                                end;
4 `( B4 t  c  h5 |9 N% Z$ q                                @.CurrIcon := "drivingHome";8 d8 y$ L/ F. I5 C1 X+ Z
                                @.DrivingHome := true;
5 w9 n7 A  N+ E                        end;% {. Z0 f( s, X  \( j$ G
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
$ g1 E0 X, j. p) A0 d! n                        part := @.transpOrder;1 @3 D3 Z$ h1 F' A8 o
                        part.move(@);-- load part; ^( f" W1 Z0 S' _
                        @.CurrIcon := "load";7 _' ~; J: [* c5 i8 j- ?; P2 u
                        GlobalDistObj := part.globDestination;$ ^7 S+ x' m0 W8 Z' C! {. M1 F
                        assignLObj := rgmanager.rgAssignL;) T, q2 ]3 {$ N( M- ]9 y2 j
                        row := assignLObj.getRowNo(GlobalDistObj);
+ N0 C/ z+ E# L8 a/ W$ A) b                        if Row = -1 then -- since 70% ]% a+ N! p- j
                                if lan=1 then
# x. Z# l' n8 V5 h                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
# G/ O' P! k, g1 `: N* [                                                to_str("in der Andockstation: \"",?.~.name,"\""));
# i+ t* A1 j6 N. D; X4 r! S6 {0 ]                                else
% n" n0 d: Q7 c* Z$ m                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
# S% A. O( H& [& O                                                to_str("in docking station: \"",?.~.name,"\""));                                % n+ }5 D# L0 w; N% q/ `
                                end;  W$ K% E5 _3 L2 o2 U
                        else. |- l) ?' |3 u. [, {6 Z
                                @.Destination := assignLObj[1,row];5 _7 t. T" S0 P4 i9 x8 W
                        end;                        # m5 n' o6 b) e& l( O$ {
                        newDirection(@);% v; i+ G; D* c, r! i0 n
                        @.HasOrder := true;0 o: x1 A8 S- Z# Z/ r
                end;! f# _! k0 l, C" p
        end;
8 }5 j% W9 M  d8 L' q+ send;        -- of the method
2 H* }1 \9 g  H1 Z; x% O" F$ `
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
: C: ^# N1 E5 T, y: L
9 H! j& ]+ k' `; d  n- l7 k这是AGV_putin中arrive的method。% E( b8 F3 c& [8 a; d5 G
. V! |9 d0 |( {, f6 E, S
当到达物料速度越高时,这个报警更多,
, h7 b5 W* @2 w9 Y5 Z4 |可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
3 d8 r7 C# U* A: n3 K4 @1 @' p/ N8 E程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
0 q5 k/ n9 T, T$ V6 I7 @( b9 p8 F4 ^" I: y' K# {2 C# ^" H
另外一个小建议,就是move,所有的move都可以这样; A" z1 b* _. f7 v# u9 z9 [6 `
if not move() then debug end
$ C2 C5 w* n! a1 `- c& w% Q这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。9 x7 ]' v: G1 y+ u, X, O2 L8 Q
plant simulation中的free libraries有AGV模板,
4 x2 _- v& q4 w里面也有案例。
+ L/ |2 T1 R; N7 S( y  v: G我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。% n4 f; \' d$ v1 h' z$ O. F4 U
( L0 O" k9 P" N( t0 o3 Y
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
# r- ~2 F( J& O  j. Y$ f' L" o1 o. [  Q' s" H8 j+ @
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
1 q3 S- q( N9 Q) x- s这是AGV_putin中arrive的method。
4 J3 K+ U7 w0 d1 I! I3 W& b; Y2 T& F$ P! V; Q* s2 h9 M
当到达物料速度越高时,这个报警更多,
9 b( A# `+ u9 T
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-19 14:24 , Processed in 0.020150 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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