设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7943|回复: 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'2 Z9 w- s1 e  G3 B$ |. L
*/. C9 N7 r  M8 S. _) W0 t/ c0 \# A
is  e: [1 ]& D; |1 x7 f: n
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;9 l+ o) H8 C) f% x/ s
do
6 v- A5 z7 @/ b% F' f7 _4 u8 j        Lan := rootfolder.Internal.Tools.AOLlanguage;
% D- W" P/ x0 G3 j6 {2 }2 a        if current = @.Destination -- else return
7 F- S  b4 o3 D& S, X        then
- f$ A) J4 O5 m1 j* I; V                @.Destination := void;
' P* H" i# g$ Y% j% B% b' V                if @.occupied then
9 v+ r' Y  }1 C- A. ]                        part := @.cont;( _- D! d; C7 u1 i; x' n* A
                        @.transpOrder := void;- }( x" |- U/ g3 Z9 p
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
1 G- ~( w0 E! W9 t                                @,root.eventcontroller.simTime);, Y/ H, T6 D/ C8 }0 ?# D# b
                        @.HasOrder := false;
8 D9 d. G+ G, B% U! i                        @.DrivingHome := true;
+ K% T2 C# x5 l& ?                        rgManager.tryToStartTransOrder;
1 V. d* L- Q0 z                        if @.Destination = void2 s. p* m' L$ A; y
                        then -- no transport order for vehicle @+ Z( K0 i. r" ]: O& S
                                @.Destination :=
4 R# I% W7 |/ r+ f' H                                rgManager.nearestFreeStation(@,track.~);: l; I0 x. l5 Q5 b7 k( j$ }
                                newDirection(@);   5 B3 l, Y6 r$ z- B. D
                                if @.Destination /= void then0 Z, P# Y( ]' N! E/ B; ~
                                        @.Destination.NumReservation :=
+ f( g' x3 S0 c& X! g7 N/ m                                        @.Destination.NumReservation + 1;7 ^% `. i& J; ~  l' t
                                end;
& k3 s1 P) A2 y3 |6 N) E                                @.CurrIcon := "drivingHome";
5 P7 x( A4 I/ Q) w                                @.DrivingHome := true;) L+ j/ N' c# D/ v# Z
                        end;0 x5 @; {+ p6 i8 @# Z
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station6 o- m4 P( `' L7 i$ D* i
                        part := @.transpOrder;
& n. ?  `; A6 r* q/ ~4 a                        part.move(@);-- load part
2 Y2 I) L0 Y/ x. g3 D                        @.CurrIcon := "load";  s8 F! `! |( Q9 ?0 m: a0 v( t
                        GlobalDistObj := part.globDestination;
+ T' p5 j9 ]3 _1 H9 q" l                        assignLObj := rgmanager.rgAssignL;
- ?! R& R4 I6 y7 N- V                        row := assignLObj.getRowNo(GlobalDistObj);8 O# @0 p- h4 V& w3 G3 Q. W! `
                        if Row = -1 then -- since 70
# S0 ?7 ~# X  k& s1 N8 L                                if lan=1 then
4 |) d7 M9 l( j; z% j2 O; R7 L                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),7 A9 X) ?1 z- R0 W! r- d
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
- {1 T4 \/ G" O7 K                                else' T, G8 A3 N( [) q# ?2 w
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),; x2 C$ z" @- S! k
                                                to_str("in docking station: \"",?.~.name,"\""));                               
& s9 ~" p/ R1 {7 ]2 E* i; K; D                                end;
( T" ^3 `5 ?& s% n( J1 }                        else
/ e/ Q  _5 |3 A                                @.Destination := assignLObj[1,row];2 V" G5 s% I' {: f
                        end;                       
0 _* g, |: ]+ T! n                        newDirection(@);
8 X" ]  \- Y1 ]0 l                        @.HasOrder := true;
$ _3 O  E$ h$ H6 t8 u: f                end;) o' j* d5 n$ U8 l9 [! I0 {
        end;7 a7 Z6 v" ^& U& ~, v& a+ ?& m
end;        -- of the method' Y( d: B0 }; d- A& N) t5 b. V
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
! i, q5 ~- u! K: H0 ]# K" Y/ I0 @7 [* b7 |2 n
这是AGV_putin中arrive的method。
! ]* A' k8 x2 f% r$ |9 V$ A% a5 K, p, e. r$ z5 V; k3 H1 e  C
当到达物料速度越高时,这个报警更多,
% r$ k, b0 t  O" l2 n可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。7 T! S7 N! n+ a: N" w1 h( s
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?9 ]% p  Q0 V0 k
9 t# [) b0 l( }1 E2 c/ h+ e8 v
另外一个小建议,就是move,所有的move都可以这样9 F& d7 ?$ C; R1 y, x, R# s  @
if not move() then debug end( e$ B! Z" j/ v- }5 e2 a+ g3 ?! [
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。( W+ J$ {. E- g4 A; M& |% A
plant simulation中的free libraries有AGV模板,7 }  _8 `! f3 Y. L8 X8 C
里面也有案例。
& h' G  d0 q0 F: }% }0 l- O我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
7 q# l+ H3 B2 `
9 M6 `& f2 U# c. i我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ' ~& i$ E  N' ^& {* P3 K* k4 E; i9 Y# e

3 K% U' i2 q  Y+ d' X那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
, o5 N* a( u$ g$ u  s这是AGV_putin中arrive的method。
: \& A" X: q! l5 L* y7 j  ?+ F. e1 b7 v. ^8 t* {/ y: @) h- b
当到达物料速度越高时,这个报警更多,

' X. W5 s2 }2 i, O4 A1 Y; e$ ]另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-6 21:31 , Processed in 0.019775 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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