设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9807|回复: 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'& m8 |1 Q3 ?" m4 j* Y/ p
*/- n$ n/ Z' ~  o! ], f* X
is
2 l$ D: G, F' k) f4 U) v( L        part, GlobalDistObj, assignLObj:object;row,Lan:integer;0 |$ i6 e. E" S2 e
do6 U7 x+ u4 M$ V5 E$ M8 [' w
        Lan := rootfolder.Internal.Tools.AOLlanguage;
+ B  K  o3 x% `" ?% X* N        if current = @.Destination -- else return
0 H7 e; W6 e) {! S. {) H0 r        then8 J  v( M1 r4 J' R! O: i4 b
                @.Destination := void;
3 l) T" L# U3 C6 R+ {                if @.occupied then: _$ [3 e! B0 q0 Y
                        part := @.cont;
- d) j8 g1 s+ ?: v                        @.transpOrder := void;- L: _& h: K5 n- \
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
# E5 g$ n/ T* O8 d                                @,root.eventcontroller.simTime);# a; l" |$ C/ V/ B! Y
                        @.HasOrder := false;
0 K; x$ ^2 |# `# R& |. ^1 b; d+ P( h                        @.DrivingHome := true;0 e+ e7 D, i0 v  }  }
                        rgManager.tryToStartTransOrder;
; u* m6 `' J  n* D                        if @.Destination = void
+ V# L. V" z+ m) s; M                        then -- no transport order for vehicle @
2 j, w/ E5 z. b- y. }: `8 j+ N                                @.Destination :=  A3 A: i! r9 N3 v. i
                                rgManager.nearestFreeStation(@,track.~);
4 s+ H. e* P* g. P' i! q9 W                                newDirection(@);   
0 a/ x0 f& R) S9 Q                                if @.Destination /= void then
" o- y3 S/ e+ b* z- l1 s& A( q                                        @.Destination.NumReservation :=
: T8 t8 X. b# N( l                                        @.Destination.NumReservation + 1;& f8 B- W4 C2 {2 M( Y
                                end;0 p6 W4 c2 y8 O; D
                                @.CurrIcon := "drivingHome";
$ F5 `8 i$ H& |  [                                @.DrivingHome := true;" e* h7 M( H! ^' }" g9 \7 q. F( r
                        end;
  O9 t" b/ X! N: ~/ h* l) n                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
8 O* }4 k; g; N) G* \                        part := @.transpOrder;% y0 A. o8 j) ~( ]
                        part.move(@);-- load part5 {5 q8 j' r) H2 K2 u9 r9 j5 L9 y
                        @.CurrIcon := "load";! K3 t  L5 ]6 K8 e8 i% S
                        GlobalDistObj := part.globDestination;: g+ B( |. P" r  k! `
                        assignLObj := rgmanager.rgAssignL;
6 Z2 ^; T5 W8 h2 I: J9 s                        row := assignLObj.getRowNo(GlobalDistObj);
% ?! S/ T! H+ a' t6 M- O                        if Row = -1 then -- since 70
" D, f9 r" z- t( f  z7 A0 `& r                                if lan=1 then7 ]: M( Z3 i# v0 L* h/ T( U" x- J
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),. R0 V6 k9 a+ `& G# g6 J; Y, p+ h
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
8 K" w: P. m, P& z5 l8 j                                else
3 \& A- a4 b% i' K0 {                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),. M$ o3 V0 z1 N1 b- m
                                                to_str("in docking station: \"",?.~.name,"\""));                                + r) j2 ^0 ^* J) F. z( M
                                end;
" E) ?, F' V9 h0 h) H! i+ Z                        else/ a3 k4 V' K# w, c1 `  s' e& p2 }
                                @.Destination := assignLObj[1,row];
6 D; k; T. T* u  n  W) }4 H                        end;                        5 B2 @3 |# G& b: v5 R
                        newDirection(@);
5 D4 T( Y  B5 v% N2 T& U                        @.HasOrder := true;8 s5 z+ c) ^7 h/ T! g/ X! O' S
                end;
) C% q% f$ r8 \  s        end;7 r1 r5 v8 T6 @
end;        -- of the method
/ U4 q/ C4 g6 m8 \! Y! _# `4 S2 }
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
% Z5 ], h2 q2 n6 s- q; P$ K; D/ U! a5 x3 O+ H7 ]
这是AGV_putin中arrive的method。# ]+ _, ~! E# A" l4 B2 @
; W1 |1 [4 I( w% ?
当到达物料速度越高时,这个报警更多,. h7 `3 l2 K: W% {
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
& G6 [4 u, s& V. |& ^8 x2 i1 [程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?0 S6 v6 N! a( O5 i

( ^( S9 h" d& e: I3 h/ h另外一个小建议,就是move,所有的move都可以这样
0 |& \& {8 m6 z. {* L* yif not move() then debug end& c, l: B; d4 `
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。6 v4 E% _+ n. o9 ]
plant simulation中的free libraries有AGV模板,9 Q( n/ t/ `) Y" I4 x' b- E
里面也有案例。; m; K" Q1 D3 m( b
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
) D" @7 h/ O1 N0 }& L8 n& [$ v. m+ ^" O
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
6 }% U; J# {& B0 H, x, ~( ]4 _, E; ?4 g7 [$ a3 s& `
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
! ~- ?; F2 E; Z6 A. s% O" {这是AGV_putin中arrive的method。
/ O. g0 c- w3 N1 m5 d
% l! X* b- |5 h* Q' G/ G: ~当到达物料速度越高时,这个报警更多,

: Q: ~% M7 G" R" l% K另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-26 13:08 , Processed in 0.017392 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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