设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9206|回复: 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'
, j# D: r/ G: U4 a: i*/
% Z6 \- F" N% c+ A# W7 uis
8 x% M' m. ^) d        part, GlobalDistObj, assignLObj:object;row,Lan:integer;; e+ {! }2 ~) U$ _
do( Y5 h" J0 I6 J, Y1 t( X! K! i: Y' q
        Lan := rootfolder.Internal.Tools.AOLlanguage;+ E1 ^/ I8 P# g/ o/ N, i
        if current = @.Destination -- else return
6 m7 l! w* ]# \9 ], j/ [        then
" H3 s8 B9 M$ [/ n% q" B( F                @.Destination := void;* T% n2 ~- J, \* r  u  e
                if @.occupied then9 K6 C+ p- G5 ^" |6 f, ?
                        part := @.cont;
3 i; p. k) x. O+ n3 x                        @.transpOrder := void;
! {+ h0 i' \8 e* [+ H8 ]4 r6 e                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,! b" Q) y+ c7 _* f5 C8 W
                                @,root.eventcontroller.simTime);4 M: e4 K" \* \# r4 |: B7 M0 v3 r
                        @.HasOrder := false;
  j6 d& d" D  d8 m; U. a                        @.DrivingHome := true;
) e! r) u, [0 ]" ~                        rgManager.tryToStartTransOrder;
* ^5 ~+ a' I% U0 X                        if @.Destination = void- o. Q) a- R8 O4 R) @
                        then -- no transport order for vehicle @
4 j$ z; \: g5 E/ A) u% Q                                @.Destination :=
7 u& i4 \. g" k* x  e3 ^                                rgManager.nearestFreeStation(@,track.~);9 t# y  P1 @4 B  _2 y5 e
                                newDirection(@);   8 g9 [' L/ ~* X# T$ s* c5 c, k
                                if @.Destination /= void then
& O8 @; _! ^0 {7 {- B                                        @.Destination.NumReservation :=/ A0 p; _+ T7 r5 }; X& d
                                        @.Destination.NumReservation + 1;0 U! ^3 G" }! Z! `" u
                                end;& s  ?6 @" J2 B1 F- l% x
                                @.CurrIcon := "drivingHome";
: d" h4 c2 ~# o                                @.DrivingHome := true;3 S  {/ b5 i) Z6 }- r
                        end;
: `' X' N6 ~. C6 \                else -- the vehicle @ is empty, both vehicle and part are in the same dock station1 \( `9 X1 f( \/ p6 L5 c
                        part := @.transpOrder;
4 y. w+ c4 F' y                        part.move(@);-- load part) x& `: y# g% f2 c, b# V3 D
                        @.CurrIcon := "load";) _" m5 i6 ?& ?& x0 F6 Y  d( J
                        GlobalDistObj := part.globDestination;
0 H, N- U; N& Q: Y$ Z! s2 ~                        assignLObj := rgmanager.rgAssignL;
0 L6 |! t0 b. q# \* Q2 C; Z5 G                        row := assignLObj.getRowNo(GlobalDistObj);
: U7 {8 H* C' @, M# D* o- V                        if Row = -1 then -- since 70
9 H8 w* ~% k) w: s7 ]) P/ C                                if lan=1 then
& h0 A5 [+ M$ R$ s5 l* m  a$ h                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),$ x4 }9 K% u7 c% L7 p2 Y# \
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
  F! X( e/ ^  X+ R2 \4 M( l4 w0 t; r# {                                else
1 y8 i$ v! o' x6 t! S' @4 ^                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
3 s; \. `1 @7 P7 e8 D! A. i% v- T                                                to_str("in docking station: \"",?.~.name,"\""));                                8 h- E  D) b4 s+ n! U
                                end;! F! l$ _' s0 C$ ~5 f1 p& |! D5 @* l
                        else% d4 m4 X0 R' P# Z
                                @.Destination := assignLObj[1,row];
: q& V6 J3 w% \. K! s' }7 `  s4 ?                        end;                        8 j: b. |& J0 ^# T. h9 a+ e
                        newDirection(@);
6 d1 J5 c, @2 J0 y# x* u                        @.HasOrder := true;% J% s6 K- J; @: G( m9 `  Y
                end;+ M" U; a0 g7 G8 u. I$ x. _
        end;1 G) U3 y! `. k8 D5 B. t
end;        -- of the method( e, ^8 d1 r2 `2 i: O* O) T( H
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
8 r1 Q9 m- o" o( H0 J' p2 Z4 Y8 L9 z! z- @7 T: I1 o! m0 _0 H+ ?0 \% Y3 w: \
这是AGV_putin中arrive的method。& E; C7 W6 W" N8 v% e8 k+ ?' E

3 c6 c# I2 `% d1 ~当到达物料速度越高时,这个报警更多,
4 |$ Q' b6 K% i9 h* p& s( F可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。) z- u! r  X5 c: n" l
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?; h6 M+ z7 K1 |$ f7 E8 C* w
& V8 i# S2 Y( W$ |" E/ b, w, J
另外一个小建议,就是move,所有的move都可以这样; q2 I0 x" D7 L0 y
if not move() then debug end7 ?* F( ~; B3 r
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
  {/ }3 g7 F. n% pplant simulation中的free libraries有AGV模板,! [7 _8 P4 R( t6 w, Y' p- d% a# a
里面也有案例。
  X/ x9 L! h4 H4 J! a3 K我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
; I0 `2 w' B- i/ e" r1 z4 k& D! [  `; q+ G( H0 o
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
. i+ B* K) X2 [# O) R* U
. z5 I' q. j& Z+ Y那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
4 k# _3 p% |$ h这是AGV_putin中arrive的method。& t& g8 ^" m& ]

: E6 k: ^& w- J- [- X7 |7 \6 }当到达物料速度越高时,这个报警更多,
. `9 \, }) T% j0 I
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-19 09:54 , Processed in 0.017176 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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