设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5592|回复: 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'
% o  l6 b, \- X6 V' g$ g*/
/ h3 D, e5 D& ?# jis/ A) E, Q3 I& Z5 H$ G3 L9 l. p" J& C: K
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;$ K( ]; X) k; O
do
. m4 i1 J+ A/ l2 B7 `, _8 G7 `        Lan := rootfolder.Internal.Tools.AOLlanguage;/ p/ G" b9 c0 [9 G+ ?- R+ L
        if current = @.Destination -- else return- \; i& F2 Q* h( r, B# ^3 E
        then
5 t. h; v4 }) z% R                @.Destination := void;
0 b$ P1 n! V- p) ^                if @.occupied then# X0 w, y9 m3 D$ a2 {8 g2 o
                        part := @.cont;6 V$ K% r+ e2 C3 P
                        @.transpOrder := void;
( C& ^" i) i3 ?7 M# \                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
% a6 y' p+ b) r9 Q) ]4 V9 o- M3 G                                @,root.eventcontroller.simTime);2 ]( Q+ \* d4 i
                        @.HasOrder := false;9 V: ?2 N; c+ S& X0 K$ j5 m3 x6 Y
                        @.DrivingHome := true;8 y# R+ N) T4 ~9 c- w( ?
                        rgManager.tryToStartTransOrder;$ c' L- P' C4 P) Q/ w+ O
                        if @.Destination = void( u: o% O. U) K5 _% N8 y# l
                        then -- no transport order for vehicle @1 I. b; y6 \2 k3 i
                                @.Destination :=
0 @& X% _3 F' P& b, D                                rgManager.nearestFreeStation(@,track.~);* ^  f# I; \6 o0 L) O2 R6 T* O
                                newDirection(@);   
% u% L; C4 P; U                                if @.Destination /= void then
8 Q4 p9 q- Y6 M& i# c8 X                                        @.Destination.NumReservation :=
' w3 F8 w' Q% n                                        @.Destination.NumReservation + 1;! n* u4 y6 o" `, \; U) _
                                end;
. \' v! S2 B! S% r$ K4 s' }7 a( ~                                @.CurrIcon := "drivingHome";
8 \# X) Z" Y. N- U& E3 l+ _                                @.DrivingHome := true;/ ]% ?3 e! `1 n0 q1 H
                        end;
. u6 K' S6 P8 S3 V" X. l; l: I                else -- the vehicle @ is empty, both vehicle and part are in the same dock station% Y& n& A- x4 |; ^
                        part := @.transpOrder;
+ F/ a$ o3 [1 w0 i5 W: e" V1 S1 M                        part.move(@);-- load part
2 p0 |6 j! H* W9 Q! M8 m* d& s                        @.CurrIcon := "load";
, m) @# a+ w& G- G, u! H- [  ~% Y+ [                        GlobalDistObj := part.globDestination;  ?; Y) l9 S" ~# y( t3 K7 P
                        assignLObj := rgmanager.rgAssignL;
: y: G; _+ B8 k2 ?                        row := assignLObj.getRowNo(GlobalDistObj);& D3 f% p  k) f6 H
                        if Row = -1 then -- since 70
: @* a  [' ]5 B) a( T                                if lan=1 then
7 G! P5 z9 @- i5 M+ q  |                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ D5 T+ _2 S. ^, R" }# ?0 V5 @                                                to_str("in der Andockstation: \"",?.~.name,"\""));
. R% X$ [! s0 i8 _0 F/ j( V                                else
: Z$ G4 |3 N, _2 V( p6 W                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
8 X! }: G; M. b# \# E                                                to_str("in docking station: \"",?.~.name,"\""));                                6 |7 W/ e/ e/ c3 m, L6 |
                                end;
8 ?) R$ Q/ c: y% E; @/ O: m                        else
' X) j) g) G# u' i1 N$ h9 p8 @$ z8 [                                @.Destination := assignLObj[1,row];
# L$ _3 M, [& U+ \; o* B# b& ^$ a* z% g8 C                        end;                        8 ]  C! g% n* {7 ~7 S
                        newDirection(@);
9 a' Y3 f7 S- J4 @                        @.HasOrder := true;6 \4 j+ `) _8 v9 S. O
                end;0 Q2 M6 J' F/ j
        end;* g$ Y" {. J8 y( m
end;        -- of the method
, n' ?4 |0 a2 R! P) ]( w+ k) }
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
8 Y7 v% f) e! C. Q" x# _0 D' O+ D9 A( f5 H3 m, j' `7 `7 [
这是AGV_putin中arrive的method。1 p! g7 {. e4 v1 ]0 w, [0 j) f

& l5 i1 m/ p) v( |3 W当到达物料速度越高时,这个报警更多,
- b7 r9 q/ E. X8 u4 U$ V+ D可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
1 V2 ~* ^2 j0 e. V9 r7 j$ u9 l( C1 c程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?) }4 C& }& T) m* C7 X1 Q2 r

* M/ H* y% T7 J5 E另外一个小建议,就是move,所有的move都可以这样
0 h2 I) {# _  o* t7 e% qif not move() then debug end
/ g( R; f# T; z1 N. H这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
7 P, T; ^$ ^5 L4 B$ Tplant simulation中的free libraries有AGV模板,
( B& v; g3 @- a2 U. R+ C里面也有案例。
  ^) y" u2 S$ T我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
4 H* e$ X& [5 [$ V. |! y7 e8 X, q# E+ O1 r  V
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
+ R* l, C( ^6 Q! \" l' `2 K% I, P/ Z
- f1 A; q( s& i那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 : `3 o6 y$ _/ a* B" s" Q6 u
这是AGV_putin中arrive的method。3 h- f" N# g- G; D2 {& O8 M" z

# V9 G  w, s0 J+ Y% `4 z当到达物料速度越高时,这个报警更多,
6 t2 x+ R( i1 ?) ]3 i( o6 `
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-7 17:30 , Processed in 0.020151 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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