设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7240|回复: 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'
% A/ Y' ]1 h3 k- v, n; l$ I) [! b*/
/ K6 d* n# ^5 Y1 X( i) @is
6 I' w% }4 a; t, P5 i' m8 \3 S8 e) V        part, GlobalDistObj, assignLObj:object;row,Lan:integer;  ]+ o& m: k% c
do7 M4 J% ~8 n: w3 E
        Lan := rootfolder.Internal.Tools.AOLlanguage;+ Q6 a# ?5 k4 z, _2 s( b) p) i
        if current = @.Destination -- else return
$ a; R" N- b; G, W/ X! m  |        then
: c( F% X% d& x: m, S8 s                @.Destination := void;
0 E$ Y$ @8 s( \1 q# g* _( o+ Z( H                if @.occupied then
- k7 D0 \# M( N/ d, z2 }* Z                        part := @.cont;
! @& c9 ?4 o/ [4 R% ?' ?% r                        @.transpOrder := void;
1 l, i0 q3 }" }/ O2 ^, o2 R                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,, T1 D0 ~. }8 A' t2 A" {
                                @,root.eventcontroller.simTime);
+ O+ W4 e, C2 T: ^                        @.HasOrder := false;
, E+ J& l, o$ x; t5 Z8 N. U                        @.DrivingHome := true;- Z& k$ i4 J( u4 _3 K, q
                        rgManager.tryToStartTransOrder;
5 n. t3 H' C( A- X& C                        if @.Destination = void4 z, r- z6 s1 l8 L6 N
                        then -- no transport order for vehicle @& p/ g5 z! ^9 i; x) S" m( }# B
                                @.Destination :=
9 ^: G" t' W! {2 ^) u" _1 J                                rgManager.nearestFreeStation(@,track.~);
0 F2 D' s9 l7 I                                newDirection(@);   
: }) y1 e, k# p# ]                                if @.Destination /= void then
2 k7 }( u- q0 ]1 f1 h$ t7 P( U                                        @.Destination.NumReservation :=- }1 c0 t8 u8 H) ~: g) \% c
                                        @.Destination.NumReservation + 1;
% z8 O% B4 ~. [. j                                end;% e, b: [+ b' x- m' d& }3 W
                                @.CurrIcon := "drivingHome";8 V% `+ s5 d# d; }4 |
                                @.DrivingHome := true;- V% Z4 B+ ~7 x2 V' `
                        end;
+ c, C3 I' _! B& x$ U                else -- the vehicle @ is empty, both vehicle and part are in the same dock station' W( D, ]$ c, v) s3 A
                        part := @.transpOrder;8 k8 n4 ]9 k$ j* E8 o7 _
                        part.move(@);-- load part
" b# {7 {- H  c% b* o& c% j                        @.CurrIcon := "load";
) l, L' E" i* b& n0 J/ L& t                        GlobalDistObj := part.globDestination;* c! ]  T6 ~5 T- K, W3 C
                        assignLObj := rgmanager.rgAssignL;' D2 S4 S4 X/ @: j3 S
                        row := assignLObj.getRowNo(GlobalDistObj);! K% F- u) B. M0 k( S/ b
                        if Row = -1 then -- since 700 Z3 L% m% @5 v. Y+ X) J# I
                                if lan=1 then& {8 l- f& }: i) F
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),2 ?8 ~3 E& O9 |3 ^) ^8 A
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
0 [. B$ [6 j- @6 n  O3 a/ [/ m/ q1 m                                else0 Y# j: w8 S  M9 E
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
5 {% P8 d4 P9 Z                                                to_str("in docking station: \"",?.~.name,"\""));                               
  C0 e+ Q/ G$ h6 u. a                                end;
& P. i2 G4 [8 l4 c                        else6 A1 s- e# n- [7 d2 g. W  e/ D+ M
                                @.Destination := assignLObj[1,row];
$ P$ h% n: N+ u- n8 r7 B                        end;                       
, Z  [0 D: o5 p+ o: M- ~$ E                        newDirection(@);
9 Y; n& S& D; w! q4 g8 L. A, V                        @.HasOrder := true;
# S7 u% g. x2 j. @                end;
* ?: Q1 m$ U+ |0 C- n. ]% a% p        end;" q5 q5 Q; A' O$ B2 s/ f0 G* w% O
end;        -- of the method
1 P) q& b$ E: i, u# n% ]; w
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
6 [9 I8 i- U! K- q
- |! W( D% D+ F8 S+ K3 l4 Z3 y2 z这是AGV_putin中arrive的method。
1 ~8 ~" C" O& b, Y- K* S8 @. B. W: Q; o0 V1 j8 p/ p
当到达物料速度越高时,这个报警更多,
& ^; w* A& J9 B: d  _可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。; e, e/ Z2 j  R% R- D' T6 w
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?$ e9 n% L. z( @$ s( L
2 z3 n! O. m6 C1 D! Y9 f
另外一个小建议,就是move,所有的move都可以这样9 I$ a" e! n0 X
if not move() then debug end; C6 P# D+ C0 C0 s5 ~8 F
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。+ Y, I- f' V9 t
plant simulation中的free libraries有AGV模板,/ d: n, R8 I5 p  U. Y5 R% [
里面也有案例。
, M3 t! h7 U) x; \9 q我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
* H( y  E! k& V2 M8 M: q/ d
# C+ U0 i- U  o1 l$ K1 [& h( G6 c# W我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
; l7 `0 y( w5 r  |! \' ]9 `( {  ^  \5 Q' F4 b8 R
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 , b  d: u8 V/ Z% B) o9 e- R
这是AGV_putin中arrive的method。% _( h2 ^# a* N* E
& w: c( l2 k5 ?: Q0 d
当到达物料速度越高时,这个报警更多,
  b) k6 i! [* W& u
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-30 02:45 , Processed in 0.018419 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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