设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9700|回复: 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 n. ^9 c0 D5 o% N) A* Q' b  M" s5 U
*/
* p6 O! _- ^, n9 L" m+ l% yis0 \' X3 w. n" A2 m: E7 U
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;) h- t# m( F0 }! K
do
+ S9 q+ H& J0 q        Lan := rootfolder.Internal.Tools.AOLlanguage;
5 O3 ~5 j, z1 P" v* {+ ^        if current = @.Destination -- else return
1 r7 O$ _6 i; P. q3 o0 s        then
3 Y0 ?; ]% ?. x8 [7 b, T                @.Destination := void;1 ?3 V( O8 W- R( T1 V
                if @.occupied then) G' |, P- N& K+ o
                        part := @.cont;: m7 c! ^9 g2 b5 j2 r& c
                        @.transpOrder := void;
+ W2 t- x2 M8 p* Y                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,3 ?' z1 N: Q$ s8 S( ]8 n
                                @,root.eventcontroller.simTime);
# M8 u% |: J, a7 D. \0 i                        @.HasOrder := false;
1 l4 M6 d: h: K& {. y5 X7 f                        @.DrivingHome := true;
1 Z9 u# h+ L1 A; o: M9 d3 M/ J3 s                        rgManager.tryToStartTransOrder;
4 W" }5 \) b6 \/ M$ v% n( m, x; u, z                        if @.Destination = void$ R/ w( S+ S' q) b' @- ]: I8 I
                        then -- no transport order for vehicle @: T$ d, o- Y9 r, I- l3 S- L- z3 Y
                                @.Destination :=
  D! l& u( v3 I3 x* ~* O% T" N& b                                rgManager.nearestFreeStation(@,track.~);9 V4 V/ R& |$ ?  f8 s6 I2 ?+ l* j
                                newDirection(@);   
4 B1 u1 L8 M  n; q) D: }                                if @.Destination /= void then
* c' P$ i* z# T* y4 A                                        @.Destination.NumReservation :=. T/ o6 `; _& I* L0 E* G3 k
                                        @.Destination.NumReservation + 1;
, l* A' g  l( L! @( q+ t                                end;
: Y9 ]& K# L& a+ n  O  m                                @.CurrIcon := "drivingHome";
+ r3 `1 S. r' n$ K7 c4 T9 S' P" J                                @.DrivingHome := true;: v( J5 T8 S' `, s- {. K
                        end;
1 U  h: U1 P' [3 C" b9 G/ F                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
  S+ k" K$ D) P* n                        part := @.transpOrder;
% t8 ]$ a# I4 S  n                        part.move(@);-- load part
* U/ m" u+ X/ e8 g) d. p! }                        @.CurrIcon := "load";/ |6 r. e$ z7 h
                        GlobalDistObj := part.globDestination;+ ]- t1 S, d# a" k
                        assignLObj := rgmanager.rgAssignL;2 S$ p% T; R& L$ ~+ O7 f
                        row := assignLObj.getRowNo(GlobalDistObj);
4 A% a8 h& d) y' q( w. l                        if Row = -1 then -- since 70, F9 w: ~8 ~  F4 Y, Y, ^. C
                                if lan=1 then" T6 i$ X6 i& F7 |3 ^; a" o
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
0 ]- V/ A. \& Y8 O& p# j                                                to_str("in der Andockstation: \"",?.~.name,"\""));
( w5 I  m8 C, C0 }. l                                else
; O1 q% a6 x, U4 X5 T2 z                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
/ t6 T1 X3 u. E. C- i1 ?: c$ {8 ]                                                to_str("in docking station: \"",?.~.name,"\""));                               
. |$ z0 W3 T) O2 K' G/ \- O: e1 B, Q                                end;
  _: W3 {+ T) F( B9 ^( z' ?* W: {: u: m2 T/ i                        else
( p) f& q' M+ u2 v" \4 l                                @.Destination := assignLObj[1,row];
! V( F/ o7 E3 {/ \                        end;                        2 ?9 n0 K( v: ^8 ~+ A/ {$ f' e
                        newDirection(@);
9 |1 d/ _# B) Q                        @.HasOrder := true;
1 ^3 p( `6 }% H& ]                end;
9 u) e/ ?2 Y, h7 f4 C6 M( ]) p        end;
' Q5 {3 r; C! z0 N) uend;        -- of the method0 o/ n6 \( i2 L0 e! T; K
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 - j5 _1 r1 N* \# p! C1 L
6 r5 t0 |1 \0 g" n7 ^
这是AGV_putin中arrive的method。$ _' U; y: r, _+ j8 n) i. c

3 \) d& S4 U5 _& U" |2 k当到达物料速度越高时,这个报警更多,
  p: ^/ s8 y1 m可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。4 x# ~" i4 Q2 W% S6 [% t
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?" A$ q9 h+ }) I# `
" ?+ H$ N) Y. n9 D+ e7 U; [% [+ u
另外一个小建议,就是move,所有的move都可以这样" C* E4 i9 }/ k5 [' t, Z, F+ u
if not move() then debug end7 J/ [4 q6 h3 B- B8 X- R: v
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。. D4 C9 ~& v1 @, g5 `
plant simulation中的free libraries有AGV模板,
' P8 [$ U2 U0 T' _  C' u9 z里面也有案例。
' P: L6 g0 D% S" L7 C我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
, W/ U) Z' ^- R7 }: Y$ b# L% p7 H9 k. A- R3 H. }
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
% X9 f8 [! s. |$ z5 j, |1 Z2 Y& k; W4 I* v  C: B
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 % }6 g! i/ S( ^
这是AGV_putin中arrive的method。, P/ g5 f, `3 D7 w/ k
" o# D& k4 k+ h+ W$ J" j/ J5 W5 D
当到达物料速度越高时,这个报警更多,
$ G- |+ @  W9 R, c: P" s9 R
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-19 03:31 , Processed in 0.024024 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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