设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6476|回复: 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 u5 F- n0 C# `+ e( |*/
" Z! [3 [6 r4 g$ _4 ~" e9 d/ Ois
9 {7 L6 ^! M$ ?9 w: R/ e: d2 {& H% V        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
9 k- g, S8 v# I0 p3 m3 D- gdo* |. _( M9 K4 Z5 A3 H9 f! H0 T
        Lan := rootfolder.Internal.Tools.AOLlanguage;( A; c0 d) n% F+ s
        if current = @.Destination -- else return- A( k9 M, @8 Y7 {
        then
( a& w) T+ l9 ]2 T4 C% \% d1 ]                @.Destination := void;- w8 t: ?0 b$ [2 X/ c, V
                if @.occupied then
% Q7 J6 j$ t* Y* I. @                        part := @.cont;
: W' ^5 N) P% a+ y/ Q                        @.transpOrder := void;
1 k$ D* Z8 [, b$ v: y- s# R7 F' [                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,2 q7 J5 t$ G! |6 I* b& n
                                @,root.eventcontroller.simTime);
/ M6 q" N) Y  T3 n                        @.HasOrder := false;, g) U9 a. T  T) c+ Q$ E0 z- T9 H$ R
                        @.DrivingHome := true;6 ^9 K3 C$ _' o3 o' j: H1 l, q
                        rgManager.tryToStartTransOrder;
7 X" i' C3 [7 ]! G                        if @.Destination = void: M) A/ f, Z7 ]: \0 X
                        then -- no transport order for vehicle @9 o; ?% b5 J! n- B
                                @.Destination :=# W, k3 D$ i! k2 P$ D/ \5 S7 ?! d
                                rgManager.nearestFreeStation(@,track.~);
% _8 ]' B% b' |0 g& J0 r                                newDirection(@);   - `, _6 h& n! W/ A
                                if @.Destination /= void then
5 Z8 X- v* s3 w$ }& C                                        @.Destination.NumReservation :=
4 M0 _, e+ U6 g8 N! a3 W                                        @.Destination.NumReservation + 1;( Y, h2 }. X2 e5 V/ d5 H$ [
                                end;
0 j8 ?# |& M4 S) [5 K5 \: U                                @.CurrIcon := "drivingHome";
+ ]9 z6 `! b* C+ D                                @.DrivingHome := true;( U  C" x5 e8 ~4 c3 h6 @
                        end;
5 j5 L( J9 I2 L  {7 Q) o                else -- the vehicle @ is empty, both vehicle and part are in the same dock station  e- y* K% c; d! ?5 O" F) m
                        part := @.transpOrder;
; Y; T0 F9 ]4 O8 |% [% K! s" ?( T' b                        part.move(@);-- load part
/ @" k7 t- f$ I9 K3 J/ }. Q                        @.CurrIcon := "load";
/ }  E8 j  t" _& n" ^                        GlobalDistObj := part.globDestination;) I$ E2 U( s- U. `
                        assignLObj := rgmanager.rgAssignL;3 v  \5 U1 }1 d; B
                        row := assignLObj.getRowNo(GlobalDistObj);
1 S' u& l$ {: H# D$ X9 H- \                        if Row = -1 then -- since 70
3 k( y. j: G' a# S5 u2 n& o. J                                if lan=1 then' _7 _2 \9 F. K# ?- Y: E& z' H
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),( ?1 ]  u- p, A/ h1 C( p: \
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
+ o# w5 `: F# A6 G3 X                                else
6 K4 [, A+ K2 f+ ^                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
) F" N# ~0 p1 c" x5 G2 R                                                to_str("in docking station: \"",?.~.name,"\""));                               
+ j7 e' s7 m' l) k, B8 p6 f" p: z                                end;" p6 ]1 L# {( p; Q
                        else
" U# x2 u- \  G7 T. K5 R                                @.Destination := assignLObj[1,row];4 N2 a( n# V( Y9 k
                        end;                        1 C, {( s  ^/ u5 K/ f# F8 D
                        newDirection(@);& q) D0 ^( l# ^  @& \) D) ~3 M
                        @.HasOrder := true;
% s1 k3 d; F6 O# J+ p* n, [0 a                end;  Q% F8 |0 n: K8 j
        end;
2 `( [+ E6 X! N; t. ]0 u0 }, Uend;        -- of the method
$ }$ k$ C1 f# B. T5 l, x* z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 8 ?0 _1 h' r& i- {& Z/ M# W: l6 I0 w
* P! ]; [! L& W9 v/ X0 @. X. c
这是AGV_putin中arrive的method。
' L( f5 p( ]* q' P
- l, _& K' I! {7 e, V2 B2 j当到达物料速度越高时,这个报警更多,8 d$ l8 i( N2 J5 K" \( c* M
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
& k# h! @1 U1 S# g程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?9 T- z, q" ^8 g9 U
( w2 V' w* ]- t( ^; L6 R9 b
另外一个小建议,就是move,所有的move都可以这样" P  _& `/ [- K8 x
if not move() then debug end# B  y/ w$ ]) l/ c6 H/ B. A
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。, ?& V4 z2 D9 g% Z% F' F( t
plant simulation中的free libraries有AGV模板,
" q% f$ x! V, m3 X3 _0 V7 i里面也有案例。4 I9 _- ]' L5 u5 z
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
( G$ a& L) T1 f$ v! J& S0 |5 j, A/ s4 |7 e
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
; ~, a' _* ^6 r$ F" \5 G) N- ?( a2 P8 Y) a
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 + V9 S5 e% |; W& [+ }
这是AGV_putin中arrive的method。2 i; O9 O9 N6 ?  n4 |9 x
: A# c( F+ @+ ^0 r/ F
当到达物料速度越高时,这个报警更多,

( K) D/ I( y! _+ X# C4 |9 J另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-9 00:21 , Processed in 0.017825 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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