设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7833|回复: 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'; I+ C% ?* L8 \
*/
8 k' u, s5 @/ P4 f$ lis
5 i- T0 j+ j: ]" S# P/ \        part, GlobalDistObj, assignLObj:object;row,Lan:integer;! W+ Y: L+ J( w+ v
do
6 T# m" h0 L2 Z; _2 i! J        Lan := rootfolder.Internal.Tools.AOLlanguage;! ]/ L4 c3 T1 r
        if current = @.Destination -- else return7 R/ G: y4 s5 i: V3 E
        then
! `8 B+ [" w# f( Z7 ?$ T# k8 v* @+ T                @.Destination := void;- i- O& W! P5 ~6 o/ D6 m+ a3 R
                if @.occupied then% d4 t7 r9 F2 s- u
                        part := @.cont;
' z! B% _7 x, z! W! |                        @.transpOrder := void;
2 t4 Z2 e* E5 [. x% l/ R                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
( \) b8 e& |' V, J' v8 q, E                                @,root.eventcontroller.simTime);) g' \$ C, A! c0 W
                        @.HasOrder := false;
7 i" S; B4 C5 h1 `& Q                        @.DrivingHome := true;
1 D9 ]/ `" ?7 t0 k                        rgManager.tryToStartTransOrder;
/ `/ r* @3 i( D' t: _                        if @.Destination = void
( [$ V- W( P# b# v                        then -- no transport order for vehicle @
5 p9 z- Y: K3 A: S; a& ~                                @.Destination :=
8 Z* B4 b. i) X( H, J/ m                                rgManager.nearestFreeStation(@,track.~);7 j% X. N  n: R7 Y' C
                                newDirection(@);   
5 D& B. `1 w, r                                if @.Destination /= void then
( d' C$ E) o! {& s# z' G3 I, {                                        @.Destination.NumReservation :=
# {! x$ _, s9 ]; U: u                                        @.Destination.NumReservation + 1;- F5 s- |( O' y
                                end;/ y/ l) ^; O+ Z
                                @.CurrIcon := "drivingHome";
# w+ H. l5 o7 G4 f( [: r- q0 g5 ?9 q% p                                @.DrivingHome := true;
' U) f1 `; G% ]7 z                        end;
# q9 ~6 z2 G8 X0 D                else -- the vehicle @ is empty, both vehicle and part are in the same dock station& m1 j9 j! ~* _% O" Q2 G
                        part := @.transpOrder;+ C( X7 W4 ?/ ~2 J4 {5 D4 ~
                        part.move(@);-- load part3 O+ F0 ?& r, G& l
                        @.CurrIcon := "load";
' ]* Z* H& I9 \  t                        GlobalDistObj := part.globDestination;
# I. s1 U' M) i2 L; Z                        assignLObj := rgmanager.rgAssignL;
# ], Y; J: s! @3 y# M- u, R                        row := assignLObj.getRowNo(GlobalDistObj);
# `3 @5 _( t  x% n* C5 [                        if Row = -1 then -- since 70: A9 E$ z# ^: a' S" m  h- U' d
                                if lan=1 then
: A* }! G  S! s$ f) g- o                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
, Y; \+ s$ _6 s- f% U4 C                                                to_str("in der Andockstation: \"",?.~.name,"\""));
0 v7 z2 d- Q. G; s: ^8 w                                else( k3 ~* J; ]$ D4 e" t
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),8 ?! @9 l- j  ^+ m
                                                to_str("in docking station: \"",?.~.name,"\""));                                : \7 f( k: p# B5 B# m2 V5 C4 T3 Z
                                end;
6 y# z( O- e* Q8 m" A                        else9 h8 `+ B+ L( ?/ j, e( a
                                @.Destination := assignLObj[1,row];
% h8 y" K7 h0 |. m                        end;                        9 \( i5 Q: P* U) W6 s/ r
                        newDirection(@);
$ p7 }( P- m4 H3 t; K% @: h                        @.HasOrder := true;
* W7 ]. U0 A; t( f0 n7 v+ L                end;
; S$ T2 }  G  D# e; V. Y0 {        end;( W$ |: d/ q" k4 x
end;        -- of the method
% E: G7 y% z9 W% y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
! ]$ j' S) U8 X5 [0 _9 V. s( G
) h' H4 p$ |( q3 ~这是AGV_putin中arrive的method。
7 x, ]& C$ t% Y
, R# _/ e3 q7 \& l当到达物料速度越高时,这个报警更多,
$ _5 R+ X, G# J7 I! {: a可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
* ^7 b* u4 m8 p程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?' n& ~6 B7 @* `
$ G  C! Y- Z0 h  Q# [6 x
另外一个小建议,就是move,所有的move都可以这样8 {, D3 e9 F3 I5 v2 J3 @/ H. P' O
if not move() then debug end
2 f: B# t/ s- a+ I这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。. t2 v( b5 `- l
plant simulation中的free libraries有AGV模板,
# o, q5 q3 k9 m6 \, p$ D) O里面也有案例。1 `1 K4 U/ n. L: w4 R
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。6 I7 T( t" Y4 G

( b& _: q$ ~0 b7 ~我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 * l! \' h/ j! `+ }3 a& S! |; k8 m
5 L" w: _. u6 U5 I- T
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
5 L; b$ e( s: V5 c) o这是AGV_putin中arrive的method。$ N1 C8 d* g7 h' E

: V  I& q5 N! k# E/ x& \当到达物料速度越高时,这个报警更多,

2 `8 [' w1 t# J另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-1 03:09 , Processed in 0.020526 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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