设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6152|回复: 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': h6 G$ S! h$ P8 E; `) d  y
*/( G- A9 T' H! W
is
# M3 a, B8 \3 a+ L        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
9 q3 [( b8 L! r1 \$ ~# l5 {do
7 }' ]0 M$ K8 w7 t* T# [# N9 m        Lan := rootfolder.Internal.Tools.AOLlanguage;
8 }6 O! z7 y+ E9 |% i* r        if current = @.Destination -- else return- U9 O9 v. @- ]: A2 T( G  L
        then0 j  O( `: u& ]: j
                @.Destination := void;
, _8 D% b. `* F" k3 x% q) S                if @.occupied then3 J4 Y: W! w  {+ N( e' R- c* p
                        part := @.cont;
6 X4 T4 ~: u. G& {7 [& _7 c1 G                        @.transpOrder := void;
4 q* {5 {" ~# A- C# |4 \' A                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
& K5 U: w% C1 \6 `; Y9 z& F                                @,root.eventcontroller.simTime);
% L  S, b7 N1 O, {& B) A# f. K/ X                        @.HasOrder := false;
6 X. C* E5 P" g% a                        @.DrivingHome := true;
3 o8 b6 N5 S: E: l& t                        rgManager.tryToStartTransOrder;
+ U" n- G+ A5 D) q                        if @.Destination = void
* v% }/ z2 n0 @8 Y) V                        then -- no transport order for vehicle @
1 a% W* u2 |& e, `6 M. T                                @.Destination :=
; H2 L7 W" K9 H0 O8 V& O                                rgManager.nearestFreeStation(@,track.~);# K( ^+ \- V, P
                                newDirection(@);   
5 |& O& N7 K  \8 N! _4 E, e                                if @.Destination /= void then
% D7 a! A5 o- m$ F+ b/ t  S                                        @.Destination.NumReservation :=" h. s3 w$ O, m! I. V+ B
                                        @.Destination.NumReservation + 1;
" I4 j- I: a  J! }3 R" i                                end;
8 j: B2 g* y4 L- f* w                                @.CurrIcon := "drivingHome";
0 ^- X3 K9 }# X: \9 x2 c* Y                                @.DrivingHome := true;
" B; X8 H0 v" q' w% i6 t                        end;% h0 C: K+ o) G8 m$ o
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
9 k) g& \& M) c" m/ w  f8 x( y, k                        part := @.transpOrder;
$ A! P4 d- D4 y5 A: s, g                        part.move(@);-- load part, z& @2 c+ m6 W& X* K2 p
                        @.CurrIcon := "load";
5 {2 V% h2 V' e. p$ j3 `                        GlobalDistObj := part.globDestination;
3 P; f; q0 z% ~/ b8 f                        assignLObj := rgmanager.rgAssignL;+ b9 B& E6 [6 J$ L$ b
                        row := assignLObj.getRowNo(GlobalDistObj);2 V5 e3 C0 I7 {" q& `
                        if Row = -1 then -- since 709 T9 i) d5 D8 a
                                if lan=1 then
  A9 e& Z* }$ l* R, S9 N7 K                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),0 m  {) Q4 W. o4 g! w8 P
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
! c0 s+ c7 \: x, q5 O/ N" j                                else- ~1 U" v! X' f9 f' q
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
3 m8 g, I/ T0 V5 l0 Q0 T7 D5 o                                                to_str("in docking station: \"",?.~.name,"\""));                                3 N. `! F8 U: B+ r3 N
                                end;3 q: h" K! f8 i9 }1 J
                        else4 [7 [9 t& f6 D; ~! t* L- ?3 u
                                @.Destination := assignLObj[1,row];
8 l4 x- K' ?3 b. m                        end;                          e, {% D2 m* ?9 U! q4 V6 w' ?
                        newDirection(@);' w' B% y( `5 X; i
                        @.HasOrder := true;
' E; @$ S3 e6 K. L4 P6 e0 P' Y& I                end;% V, f- ~' j) [$ y  s$ A: }6 N
        end;0 e. @) g4 w0 ^3 }. d; {
end;        -- of the method# a; q. `' U5 y4 j
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 . x7 F# C" V, F$ _& j' O  l" M1 o) v

% T% u. d2 S7 _  n2 O这是AGV_putin中arrive的method。4 x' @1 I0 A8 |4 J7 ^5 o

" b$ }& K/ C% N当到达物料速度越高时,这个报警更多,
- t, F; {7 Y0 J$ |可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。% u2 }- r! F5 O- F9 y: u, ~
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?4 e& U5 }' A; `
. `0 U$ j$ L$ ^+ K( Z+ n( v8 ~
另外一个小建议,就是move,所有的move都可以这样
" |3 H5 D$ g9 s+ Z/ lif not move() then debug end, D8 d2 R; X& D/ ]8 p
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
0 Q  J* u3 c! N3 {- ^plant simulation中的free libraries有AGV模板,9 c& F* h* [, l9 i& |6 E1 s0 l6 L
里面也有案例。
- j- s4 d4 A+ a- f我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。; g/ L: Y) m, Y, G' e* q! ^
& E/ G& m4 O2 T6 O# n9 M  {: L) u
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑   Y7 j4 q5 o7 ~# Z, z7 D) K0 [; G
  g- b+ w  x+ i$ _  }% R: ]; a+ Q
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
- E  g' B1 z" b' O1 C  w4 n, c这是AGV_putin中arrive的method。* f) R5 K  n0 z

% ~( I( v8 f$ z- U; h+ t" W1 F8 V当到达物料速度越高时,这个报警更多,
6 r8 D. S- [5 S' C# ^# R
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-21 23:51 , Processed in 0.019821 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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