设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9133|回复: 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'# `/ H' I7 f8 Q
*/6 T# T8 c# d9 L" z, c
is
" \, O' @0 y" O+ A3 r+ O& c        part, GlobalDistObj, assignLObj:object;row,Lan:integer;' S8 m2 ]8 ~# `: s! L4 H" x% F
do
8 K$ f+ l: i/ h        Lan := rootfolder.Internal.Tools.AOLlanguage;# B' n6 t+ d% I3 c4 u9 g
        if current = @.Destination -- else return; x7 k5 t/ i' Y' \+ A" J$ L" S
        then. k  G6 n& M; ?7 ^& t" X9 n: x
                @.Destination := void;3 K, T9 z% o, o# f- f
                if @.occupied then% O! C" p& g( a8 z0 Y
                        part := @.cont;% Y/ e' }2 r. ^
                        @.transpOrder := void;. V+ \. q" h. _; Q- U& Y; x0 }2 a+ u' @
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,8 O. ~/ F* a- _/ J" l
                                @,root.eventcontroller.simTime);
  k: w% d2 e8 k% f                        @.HasOrder := false;
5 }# M& |. ^4 ?1 i7 E8 j/ w                        @.DrivingHome := true;
2 t9 z/ J$ e" B! K! r                        rgManager.tryToStartTransOrder;4 A1 V% a! }) b6 `* n0 |1 w
                        if @.Destination = void1 {2 l' X$ q3 x1 p6 u
                        then -- no transport order for vehicle @( Q' v' a- B, z
                                @.Destination :=( w/ y1 ~$ l  ^1 |0 j; J  u
                                rgManager.nearestFreeStation(@,track.~);; n: k8 i- F2 P/ J2 b- W
                                newDirection(@);   ; K( s( ^0 ^& S7 M+ k
                                if @.Destination /= void then
* r. @: F" ?% M# A                                        @.Destination.NumReservation :=5 ?& U6 s$ a6 F- j7 K& Q, O
                                        @.Destination.NumReservation + 1;
6 @4 G3 @8 n: N. Y                                end;
1 ^; d1 D1 H$ G, f- [) k* v                                @.CurrIcon := "drivingHome";4 b7 U! l% d' `8 `
                                @.DrivingHome := true;
. a' |; O# V* O: S* W                        end;) d: k: T8 o$ U2 ~9 Z6 j
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station" e+ T: F  X& J: `8 v+ s% b
                        part := @.transpOrder;3 D; s& U# {8 n4 q
                        part.move(@);-- load part6 K# y9 a- e* {# L+ V
                        @.CurrIcon := "load";7 t# \/ e1 |6 ~+ X) G& Q
                        GlobalDistObj := part.globDestination;
  N4 Q7 x3 v( C# `                        assignLObj := rgmanager.rgAssignL;
0 E( x$ Q- |9 K% I9 C# k* g0 g% l                        row := assignLObj.getRowNo(GlobalDistObj);
. m2 Z/ D: u$ U% @3 q9 L, j- L* E                        if Row = -1 then -- since 70
& H8 X, S& p+ f3 y                                if lan=1 then
) p* a( w/ Y0 L                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),0 j  J. n+ a1 d" |/ h- i5 ^
                                                to_str("in der Andockstation: \"",?.~.name,"\""));" ?! a+ F5 H- g6 X) K+ q* [
                                else* ?6 @% X! ^$ T5 ~
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),$ p4 |- J8 h. Y/ W% u& w
                                                to_str("in docking station: \"",?.~.name,"\""));                               
# w4 a8 `: j% K# H                                end;5 W+ C# S2 V1 j4 c3 t" a
                        else3 c5 ~4 {+ H* f% Y
                                @.Destination := assignLObj[1,row];8 g; k9 a, \9 ^4 x$ Y
                        end;                        & z8 P' r) V2 l8 a
                        newDirection(@);
* h( Q2 ?# a. v5 B$ r% d                        @.HasOrder := true;8 R  Y; J, p  q; M
                end;
5 H5 _; J' g  q/ X5 a        end;5 F) E. o' S( W: `# o1 K- G" g* q
end;        -- of the method
) l9 u3 S' x: H- g
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 & T" t+ O9 d$ M; B. v7 r
7 e2 |2 B0 c1 j. ~
这是AGV_putin中arrive的method。% f4 j  U1 Q6 L5 f5 R% g
* L9 N- k0 ?- s1 _
当到达物料速度越高时,这个报警更多,
) V! ]. q+ M2 r$ o8 g& L可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。# T# L! K2 T) C3 a. Y* X8 W
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?) y$ \/ m9 R: h

& [3 [# L; j6 D4 i9 R; ~另外一个小建议,就是move,所有的move都可以这样
1 j: N) u/ b3 n- E$ k) Lif not move() then debug end2 X+ k  V! W/ U9 Z% \
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。4 i. R/ o* b, o" }; R/ r
plant simulation中的free libraries有AGV模板,. c+ X6 j( e& [
里面也有案例。
9 F9 L# D& c5 s& p我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
. M- O6 x% a5 a$ T$ J/ y: N9 N1 P+ {6 D. z8 y' @
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 . K7 F; P4 W( |8 N
4 ?- z3 ~8 H* ^# P* c% C
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 0 X# h4 r/ I3 W0 n+ ^5 T
这是AGV_putin中arrive的method。
6 I$ k$ M" d" w) e& c
" q) s# @/ u2 _当到达物料速度越高时,这个报警更多,
: H: x0 i; ]. ?  u5 |
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-15 15:15 , Processed in 0.019639 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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