设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5598|回复: 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'
) F5 N& q/ X, f) O5 x" C9 {*/2 o8 Z: q/ \' H7 o; T$ w1 e( y
is
2 l* B$ C7 D8 |  X& t        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
3 S! D! B5 Y7 r0 ?; rdo
7 E5 @+ h$ @1 t  ^) Z! C        Lan := rootfolder.Internal.Tools.AOLlanguage;. u/ D; v; h' i( F* N4 ^
        if current = @.Destination -- else return
% \6 t4 L7 u8 e# j        then. K# }- a" E$ |& o
                @.Destination := void;$ E; W4 K; e" e- P& g; L
                if @.occupied then
) v$ w* ]. c+ u/ T  r                        part := @.cont;
& P+ _7 q; M7 B' F& F% k, }                        @.transpOrder := void;
( H8 x4 W" M( m1 A5 j                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,+ Z+ w# r" i( f* `0 t* S* c9 U7 N, s; i
                                @,root.eventcontroller.simTime);( l/ m* X8 A7 o5 e& F# o
                        @.HasOrder := false;/ [7 x. u8 K6 L4 m" A
                        @.DrivingHome := true;
5 }7 z0 M, U. |+ n) _+ A                        rgManager.tryToStartTransOrder;( }- O/ |) W$ R( u- ~
                        if @.Destination = void; h0 i8 p7 K* J# q
                        then -- no transport order for vehicle @
! u& q" E3 o5 d' y& o% O7 D' }                                @.Destination :=
! m" F. Z# b( {! N                                rgManager.nearestFreeStation(@,track.~);
6 l4 p' W  L# l( l( J                                newDirection(@);   * D* J* H. q' A3 R5 A' |
                                if @.Destination /= void then
% N8 h" X, M  u' u& b) Y                                        @.Destination.NumReservation :=4 [  I: o' X% R6 f* _: B, o
                                        @.Destination.NumReservation + 1;  Q( }  I9 e1 g( G$ s
                                end;, b  h. q3 f8 v( {$ R
                                @.CurrIcon := "drivingHome";
1 ?, {# G# e8 D, @( A                                @.DrivingHome := true;! ?* x. W& W2 l. s$ x: B! a! L
                        end;6 R; d: Q: V# L
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
) Z. b) J( B1 \. g7 h& v. i! W                        part := @.transpOrder;
- b9 |1 u" v1 T( k: O                        part.move(@);-- load part: N: v3 a0 O9 `4 l+ [6 }( ?4 K
                        @.CurrIcon := "load";/ a- m+ B  a; _- [- O
                        GlobalDistObj := part.globDestination;: T8 G  @$ `, t6 ^- D  u. z' A- c
                        assignLObj := rgmanager.rgAssignL;" L- ?8 X/ e, n' _
                        row := assignLObj.getRowNo(GlobalDistObj);/ @% M( u; d5 J  c$ R0 ^; q
                        if Row = -1 then -- since 70
# _( D/ c! h9 u1 J' w                                if lan=1 then! Z& T0 `( v  ?) @  |5 Z. S
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
. o6 _4 S; H- u4 V, x' Z* m                                                to_str("in der Andockstation: \"",?.~.name,"\""));5 c2 f" v* K0 ^1 j/ G
                                else4 z* G: }& I' |& D  A. h% o
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
) l! i: ^( s( g9 Q- T( D. |                                                to_str("in docking station: \"",?.~.name,"\""));                               
6 c& h" Y/ Q# o) }; u                                end;) i& p- ~7 j- v! i
                        else/ g' _0 a. e/ F% N. W& r
                                @.Destination := assignLObj[1,row];, s$ O' r; K% R# m, o( w
                        end;                       
- O9 `8 h* A7 ^- m! {( ^# ~' _                        newDirection(@);
( V4 I  _9 T+ Q+ Z                        @.HasOrder := true;
" x9 y* H* D+ y% R: o+ b                end;
7 @  F5 [- R* a0 p        end;. M# o0 d( ^2 ~/ I/ v
end;        -- of the method+ H% S) D% Y* U1 y! C
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ! Z5 @) u8 M: @6 U$ v

4 I" }. g/ w/ N9 k9 V) T) Z- Z, e+ H这是AGV_putin中arrive的method。8 W* T5 Y1 m& q4 |; U; w! M+ D
" w1 s0 j" p9 W! [2 F
当到达物料速度越高时,这个报警更多,
1 ?/ M# {9 c' D; A2 X; I3 Z: M+ ?可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
0 r9 a: G. c  P4 U; |9 P: K/ P* R6 L程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
7 M8 w. L; H+ ?8 x0 d8 C, Q: S2 U2 e7 e6 O$ B
另外一个小建议,就是move,所有的move都可以这样2 @  {; r8 m7 n4 G
if not move() then debug end
% p( M' U+ d$ T( l6 f: t: n0 B% a. ?这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。% n3 }0 x3 |2 I6 N
plant simulation中的free libraries有AGV模板,1 J  E) H1 ~8 S# N5 |1 t  D
里面也有案例。; C" @$ Z, a5 G! `5 l  }
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
& [2 J; K* Z# `2 a3 h
+ N1 w1 V0 N: R) w# y0 d我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 / X% I( X. l7 Y  \0 D

. L. `$ D2 ?0 n: \1 q0 }那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
  ~: g7 C8 A) M! C这是AGV_putin中arrive的method。& Y" m7 t# n# u0 x0 `+ S1 w
* H9 D. I) y/ v1 Z- _
当到达物料速度越高时,这个报警更多,
1 q1 t% F7 p* J! H
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-8 02:27 , Processed in 2.705326 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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