设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5550|回复: 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'
" ], Y  u: u) U$ A9 i. @! t6 ~: q*/
, @8 h' w) U+ g. O7 w1 uis
- Q$ P. e3 S) i" D        part, GlobalDistObj, assignLObj:object;row,Lan:integer;. l! w4 G5 ?, V' n
do; j% T$ \6 \2 g1 c% @% L6 [. v) G8 [* X9 x
        Lan := rootfolder.Internal.Tools.AOLlanguage;
3 k& D+ X( _4 {5 o7 L1 A6 ~        if current = @.Destination -- else return. k8 K& W& U( E9 p1 c" {% K
        then, o! k+ d" k9 T, `# F
                @.Destination := void;
% _+ i! g/ L/ [  [" Y1 y                if @.occupied then/ j% y9 ~3 Q7 l1 N5 t# K
                        part := @.cont;. l, ]' e: R4 e8 S4 B7 |
                        @.transpOrder := void;0 Z1 v4 ]1 _4 r! t
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
) w$ ?- k* s* A0 U4 N3 z. \                                @,root.eventcontroller.simTime);, L8 S# D/ P8 E& g! I
                        @.HasOrder := false;
0 d8 n0 A3 ?7 m, w% H7 {/ I7 Y                        @.DrivingHome := true;
; a: T, g+ M- L2 c; f8 G* {; E8 D                        rgManager.tryToStartTransOrder;
# l  M; p- P- k$ O$ i: H& o7 O' }                        if @.Destination = void+ b/ v' [0 j& }  ]; o6 ]7 \, S
                        then -- no transport order for vehicle @8 Y8 f3 H( a; P( A! K
                                @.Destination :=5 h: v) r2 a& Y( P& b& R
                                rgManager.nearestFreeStation(@,track.~);5 w2 H" ]/ P) J# t# z3 P3 F
                                newDirection(@);   . \4 X$ a2 \& s. \
                                if @.Destination /= void then
9 J! D: h  i0 ~" c8 H4 n& ^7 x                                        @.Destination.NumReservation :=2 R. I( |! _! W
                                        @.Destination.NumReservation + 1;
4 b7 n2 q+ N) D% _  o                                end;
9 C( G# h1 O: `$ E                                @.CurrIcon := "drivingHome";
0 \8 x/ |. }6 H0 k6 I  v) q                                @.DrivingHome := true;8 g0 |6 u( W  A! @2 p7 w" P
                        end;0 T% i2 Y2 A( i4 P! U
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station7 }1 h3 }7 G, i* K* I6 \4 u+ D# n
                        part := @.transpOrder;) m- O9 j6 i& i6 u3 M+ n$ ~: q
                        part.move(@);-- load part
' x1 Z5 k3 f  h. m# I                        @.CurrIcon := "load";
8 }, l9 C" d/ R& ?7 h2 n                        GlobalDistObj := part.globDestination;( B* j9 O& f: {! @; v2 o  ~& r
                        assignLObj := rgmanager.rgAssignL;9 W: G8 Y6 \9 ?1 q7 }
                        row := assignLObj.getRowNo(GlobalDistObj);
: h/ f: D' f# A" o                        if Row = -1 then -- since 705 ~3 ]. Q$ |- ~0 o+ f* a7 B0 ~' i
                                if lan=1 then4 Y9 W+ C& s2 B' q% G
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
* }; z0 f# e" |$ `1 a                                                to_str("in der Andockstation: \"",?.~.name,"\""));4 @0 F+ H+ S& j
                                else
5 q' K" {5 x. Y8 E                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),) g+ e/ x& G1 g% |  |! w( ]7 @8 `
                                                to_str("in docking station: \"",?.~.name,"\""));                                ! M6 P( @' I. ^4 K
                                end;, t9 x9 o8 y( z- E& ^
                        else* P9 f( b4 r1 x) i3 T$ ]: O
                                @.Destination := assignLObj[1,row];
7 B: {* k2 `' j; i0 P) @, b                        end;                        ; _/ l; w- H5 k! m0 w9 F8 Y8 V- z
                        newDirection(@);
2 s# V3 f* C9 i4 c8 `# Y/ ^* e                        @.HasOrder := true;
7 j5 z4 r: [; E6 H- U' Q. u9 u                end;9 L% s8 R0 W$ x, K6 U- _1 W
        end;/ b; i& _$ }1 n1 G; z9 M
end;        -- of the method
" _& Q) B; n9 X2 V; z# g
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
$ R3 B& M$ Z. m) @: M/ }$ l' e
% D: h$ S& G: {8 h* {这是AGV_putin中arrive的method。
5 f9 V! z% `4 @& z7 r+ z0 [% f: W$ r$ \, e/ I
当到达物料速度越高时,这个报警更多,# T: b* ]$ M/ F! k5 Y  z
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
2 |" m7 I- K: ^+ i程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
0 C3 u6 q. [8 L
; K0 |' M* x3 x9 o6 W3 b另外一个小建议,就是move,所有的move都可以这样
% j/ x& c6 U& C+ G" I/ ?if not move() then debug end3 S+ S& @! x6 E& @9 n  [9 ?" D
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
  w* K" n- L, W" Y8 f$ mplant simulation中的free libraries有AGV模板,# d, E( l6 x" A% C) t( o
里面也有案例。
. x' A$ @- o- d* ?9 p# ^" c我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
1 d, H7 W: u, z+ f: h" R
: w1 i9 \- J- d我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
3 `4 o3 H4 e' M4 e4 K9 O+ l
# b( K2 A7 v4 e: Y% q0 t那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 / h% W% V) B3 l$ x" J% J" V
这是AGV_putin中arrive的method。
& f; t& s. G$ c# W
6 v" N. A. u5 M* }# x当到达物料速度越高时,这个报警更多,
. W! R4 r, i! Z/ r
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-4 15:17 , Processed in 0.021577 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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