设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8566|回复: 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'
/ ?( b6 q9 B8 e% A6 k0 ^! Z! }0 H*/4 X3 U* D" K* ~9 x" w) E3 p
is# D$ k1 L5 ^& J' _) z
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
7 `3 x# p( N. |: L$ Ddo+ a2 H6 Z3 I2 b5 ~8 ~, Q
        Lan := rootfolder.Internal.Tools.AOLlanguage;
6 L6 [$ g7 y9 |4 w, T* y  [        if current = @.Destination -- else return
; q$ B( w2 A9 ?9 Z        then
, O3 }. `( h; g+ ^9 ]4 z$ \6 e                @.Destination := void;
9 P1 x8 U' _& h7 `, H- t                if @.occupied then4 t) R+ A$ T( p* W5 ?& F+ T# i
                        part := @.cont;9 v5 F. H0 C5 O$ k5 _
                        @.transpOrder := void;
( N) K7 U" h4 q. h; U( A! ^                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
: G* U. T* G/ V# f# U                                @,root.eventcontroller.simTime);
4 o5 X- O! I, ^2 Q4 X  l                        @.HasOrder := false;
. o' s) E2 D6 B4 J                        @.DrivingHome := true;
( h, g& r) w. _                        rgManager.tryToStartTransOrder;" B) m# ]( T. Y& T
                        if @.Destination = void
0 K# v6 ^& m4 c9 P                        then -- no transport order for vehicle @; N  W9 z0 b5 }) b. j0 l+ n2 A
                                @.Destination :=
8 ~" `  E4 h1 u- w                                rgManager.nearestFreeStation(@,track.~);7 b9 I- `* \: a( l( @
                                newDirection(@);   8 B5 d& a" d( H& T
                                if @.Destination /= void then
7 x) u4 p. p' Y/ O( f8 f; u                                        @.Destination.NumReservation :=
: D2 X$ x. m) D' V. b5 ^                                        @.Destination.NumReservation + 1;
6 e% G+ d' z0 C$ |" R                                end;
: `4 `1 L# E4 B                                @.CurrIcon := "drivingHome";* G6 V4 N( f2 K5 a% p
                                @.DrivingHome := true;8 a" a' X) ]* e' X2 K
                        end;
5 L) C; x: ?- B                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
. i+ ?( H; a3 q* c5 l                        part := @.transpOrder;
0 @# M: U& t" Y- g1 i8 u% i8 L                        part.move(@);-- load part
1 ?" T3 I: ]6 Q: j                        @.CurrIcon := "load";
) x! ?4 c7 c; L% d. O                        GlobalDistObj := part.globDestination;! g0 t2 g9 O& q& z( n8 F0 T
                        assignLObj := rgmanager.rgAssignL;
" j. l+ x- m# N# T& g6 F" g                        row := assignLObj.getRowNo(GlobalDistObj);
& e8 [( y! \* a0 ^/ @                        if Row = -1 then -- since 70) m( _( P( }6 j# i. o% v
                                if lan=1 then) g/ t" w/ u" r. l& y) r
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
- z! W  ^5 t: l& n4 f# T                                                to_str("in der Andockstation: \"",?.~.name,"\""));
) t* _$ E) N8 A2 \& q5 }$ G                                else! y. v% w$ u7 ~/ H4 R: \8 I
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
. B- {. B8 j! J/ R# M                                                to_str("in docking station: \"",?.~.name,"\""));                               
, K; b1 B/ Z- c- j' u6 `1 f                                end;
& M& k. S3 O  k                        else
& Q/ U5 `' W) i0 _& {  |                                @.Destination := assignLObj[1,row];# m; E/ k) B8 f- ^
                        end;                        5 y. d) ?  w. O3 g* A5 D' ~
                        newDirection(@);
7 o4 v  S6 v0 C& w- s$ @. v                        @.HasOrder := true;. @) |& S7 \5 J* p2 K7 @
                end;
6 a0 G% c( T. Y  S        end;  j' G+ |" X$ Q. o
end;        -- of the method
/ P2 U9 i9 \; L0 I( ?# ]9 X: d
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 5 A8 Y6 T/ M* A+ D) d( y
% v; e8 [! K: l/ d) l
这是AGV_putin中arrive的method。* o2 w( f0 U) i. n4 r, _. t  {: W
$ z3 \$ e: P; L1 s
当到达物料速度越高时,这个报警更多,
6 Z' Q3 c- p: d3 Y/ U1 e6 j+ `可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
* f0 n. `8 Y; n1 B/ a程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?/ ~5 z, H1 y) N1 A8 F2 h% |/ |

2 k2 k. L& D3 `% {$ N另外一个小建议,就是move,所有的move都可以这样( @; U% z4 X( o  Z( n7 N2 T1 M
if not move() then debug end
, X) Y9 \8 P1 L9 x% t/ X9 G' A这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
" K. b" p: T+ Tplant simulation中的free libraries有AGV模板,
/ c; T/ i% A" o4 o; g$ e里面也有案例。
8 r7 v" O) \/ z/ R0 T+ N我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。2 T2 A. u  C6 K* S, E7 b0 R0 _

# I9 @0 E4 y7 y我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 & C+ ~% A) G! Z* t" i6 {. Y

* _7 o. F% e; y) n2 [3 m% F那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ! P  Z7 S0 m6 r  o; [  I
这是AGV_putin中arrive的method。
0 Y# j5 j# c1 @* o- X
, s& j$ u0 N; i5 o当到达物料速度越高时,这个报警更多,
( y$ @1 S. t# ]  G! G7 O
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 08:28 , Processed in 0.015832 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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