设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7811|回复: 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'' e2 `9 G8 B) c! D) ~/ ]; I5 X3 q$ Z
*/0 M% R1 m1 H/ U6 p, P
is' `. h  Y, C5 N7 f6 E7 J
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
( w# o' K/ O% j8 _- }' M" O! Wdo* d: ]0 Q+ z6 v9 P' x( {
        Lan := rootfolder.Internal.Tools.AOLlanguage;3 \  F$ L0 r+ K: ]! e: d
        if current = @.Destination -- else return3 I; O+ {8 U7 ]4 Y" e8 \5 T
        then' \; M! x: K# v; W
                @.Destination := void;# W( V# w& O' V# S
                if @.occupied then
  M" ^& i$ ?' n* g) f                        part := @.cont;
2 M% K9 e9 q  ]2 X, Y. W                        @.transpOrder := void;
) H$ E$ d) ]. B6 b  Z# j                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
4 m! i; T$ E8 ~- s* b                                @,root.eventcontroller.simTime);3 z- I6 R" k- O8 U# K5 |7 F
                        @.HasOrder := false;
3 g% @) h, [; L; b                        @.DrivingHome := true;4 ?3 k' i1 e  N' E/ u
                        rgManager.tryToStartTransOrder;' w  n' Z3 p5 T' _/ H, y, E5 l+ F! r
                        if @.Destination = void
, K( b8 u: u. l                        then -- no transport order for vehicle @
! c- G8 _6 H  J3 ^  J: `. J6 b( v                                @.Destination :=0 p2 `! w- F" C6 N! l; C5 i4 d2 r" O
                                rgManager.nearestFreeStation(@,track.~);: A/ ^3 g7 ~' [' T/ q$ S* F
                                newDirection(@);   * T% Z' S' t' q. u2 h' h' l, ^. t
                                if @.Destination /= void then
8 M) m* p$ E& P& L: J                                        @.Destination.NumReservation :=5 ]6 X0 C; F4 w% R& a
                                        @.Destination.NumReservation + 1;
) c" c% |- Z3 h* K8 I- n                                end;
) s& l& R) w+ }  c5 ?1 j                                @.CurrIcon := "drivingHome";
0 U* q6 S0 O; q  _, O! J                                @.DrivingHome := true;! |, Z% F! B' b4 a! S1 r/ f8 P
                        end;6 D& d: H0 d: E5 Z5 q9 `
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
8 e" R; e# K. U4 r( |                        part := @.transpOrder;
1 p# f- I' L- X  E4 L2 g" ~" o                        part.move(@);-- load part9 L; z; D1 ~% t* n! n- D
                        @.CurrIcon := "load";
8 s! I, G* U; J( y' Y6 Y# G- K                        GlobalDistObj := part.globDestination;
3 L4 }' x5 E" L9 [8 _* r                        assignLObj := rgmanager.rgAssignL;" j# M9 A: F  _" M! K/ J
                        row := assignLObj.getRowNo(GlobalDistObj);8 ^% Y6 l6 |. O, o( [* G
                        if Row = -1 then -- since 706 o$ i; _6 s9 w" U% n' M- z
                                if lan=1 then1 R0 O) ]$ [$ j  Z. h
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
' ?( G" }) S/ |' v                                                to_str("in der Andockstation: \"",?.~.name,"\""));
6 \+ K6 \5 u0 g) p- z                                else4 h$ c# R& u8 ~0 b! e
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),# J) z- H8 N" u
                                                to_str("in docking station: \"",?.~.name,"\""));                                2 n% X! L: `) w: A
                                end;
- M* p5 L) O( O; V" }) O9 S                        else
% _: T# N, Y7 ]  t6 I9 D                                @.Destination := assignLObj[1,row];! O% u+ ?. _' l. T; \
                        end;                        , l3 I& N, G8 h" T6 l
                        newDirection(@);
2 i% W) a4 W& w& X                        @.HasOrder := true;
& f/ _) U+ X6 m& [                end;
8 f  b8 A/ r1 h8 J        end;6 M7 W  i, a4 |) T  {0 y" g5 A" e
end;        -- of the method
. P5 s! H( A1 }) o  F" d* s3 @
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
6 D: c' S9 O$ e: l1 q6 W8 G  K" h- `" _! H* G
这是AGV_putin中arrive的method。
' ?: h8 D7 G$ l. C+ v$ D; i8 O, V! X7 K) A9 r9 G8 X9 V: X3 k
当到达物料速度越高时,这个报警更多,. U& u, v, c: i4 T
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。9 y5 ?9 o4 b! j3 e
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
+ F  N2 T& G+ e8 y& ]. D" J4 [* p) ^
1 X( m* A7 g8 q* x另外一个小建议,就是move,所有的move都可以这样0 c; C# J3 u5 v; ~6 h, d! i, [
if not move() then debug end, U# N" T9 q: W- Y$ k+ o
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
: r. Y1 F' s7 H2 e# T9 D- zplant simulation中的free libraries有AGV模板,# x2 ?6 \( \  e" c1 F
里面也有案例。9 p; `. m" B, |6 G$ k
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
' f6 K# f; R9 r+ k, R7 `2 d0 c! q: q
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
4 p2 [: y, i" z+ D7 ?6 ^" n& c4 S3 p$ m5 s. ?% K7 p
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 5 K* L. S+ p9 _* h' [% ]: E" |1 d
这是AGV_putin中arrive的method。/ [1 C* F( U% f7 M3 z

" }" C3 I$ f& Q: m" w当到达物料速度越高时,这个报警更多,
# O# m/ T3 y4 Q: s8 N
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-30 04:39 , Processed in 0.016659 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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