设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10188|回复: 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'
! l0 }9 ~) c2 o+ D: R$ |*/
- _! u8 e; k& t2 Ois5 v) h0 {9 f2 B" D
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;) |5 p9 J8 v9 e1 H
do
, p- i: r3 H6 T/ k+ c        Lan := rootfolder.Internal.Tools.AOLlanguage;
4 f4 `$ @8 V% S) ^0 }, {+ s        if current = @.Destination -- else return6 ?1 G6 O" r: O
        then  i7 P3 H3 e$ O: s2 j: |
                @.Destination := void;' V+ Q! d0 n$ r+ p2 F
                if @.occupied then/ z* b# r$ K3 \4 Z: V
                        part := @.cont;
2 t3 d! G& V. X) m, {                        @.transpOrder := void;
) ^% N/ c- P$ K                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
, j7 n# N& Z* s. p1 Q                                @,root.eventcontroller.simTime);
5 v% K/ S1 N2 _$ Y( |7 c* }                        @.HasOrder := false;7 I$ J' S. ?3 T6 K7 `
                        @.DrivingHome := true;
1 h% A. ?1 _" N1 ?& I                        rgManager.tryToStartTransOrder;
* c5 w0 |7 u5 E, }                        if @.Destination = void2 p) t/ h1 O+ b4 v4 Q
                        then -- no transport order for vehicle @* ]: S0 `0 A) W( j1 C
                                @.Destination :=
5 Q" p- u" g  }' o8 d/ S: e                                rgManager.nearestFreeStation(@,track.~);
( n! h6 l9 Q" ]& u                                newDirection(@);   % j! w1 |: s+ v9 i( ~, E7 K
                                if @.Destination /= void then
/ O+ n' X: C2 ~# K& ~" h* z. z' o( n                                        @.Destination.NumReservation :=. ^" h  U6 N( e8 u" o; x
                                        @.Destination.NumReservation + 1;
% d0 S( e, \1 e) N( x3 z7 f; s  a                                end;. o" H9 A8 Z/ g  L/ e( l- P
                                @.CurrIcon := "drivingHome";
7 ~8 F4 P% b& r7 J0 ?9 n0 x/ g                                @.DrivingHome := true;
6 c, J6 [1 C# V+ \6 D                        end;% Q) B: V. O6 Z' s5 I3 B
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station0 D1 F# A* b9 O3 h" T" c
                        part := @.transpOrder;* r; H- D& z/ p2 ~4 M
                        part.move(@);-- load part
: L2 L- W5 V" v* s5 a                        @.CurrIcon := "load";
" T  B' G) ]- y0 @) F  [# b                        GlobalDistObj := part.globDestination;
" U8 g5 B8 _* e                        assignLObj := rgmanager.rgAssignL;
# [2 F2 v" ]. l0 G+ N                        row := assignLObj.getRowNo(GlobalDistObj);7 Y9 g& w1 X1 O8 p8 Z: R! C) C" C# r! b2 d
                        if Row = -1 then -- since 70) h5 V( f( S) x2 B7 k) @, j( ~# H
                                if lan=1 then
2 `- K9 y9 K$ _. g, T6 i                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
  N7 f- ?4 t/ V9 `                                                to_str("in der Andockstation: \"",?.~.name,"\""));
7 A4 G  \( i& v# A                                else7 W" _. g8 {% }3 _; I$ n5 y
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
, G; o) Q: [: k+ d7 x3 {                                                to_str("in docking station: \"",?.~.name,"\""));                                " ?/ w( v4 f* W+ n/ b/ @! P+ a8 E
                                end;9 P' ]7 I2 A4 R& n
                        else
+ D7 _3 {, ?# S) e& u+ Z  p+ m                                @.Destination := assignLObj[1,row];  `" b& L* e$ @. j3 Y% q$ K
                        end;                       
; g: X6 a  {! @3 u) Z                        newDirection(@);
  x" A% n3 H9 X- ^6 n  c/ f! j0 @                        @.HasOrder := true;
, N7 P4 n* P8 E; r; Z9 D                end;0 c2 i; \! ~. t
        end;, M$ S/ l2 x( ?. Y. U
end;        -- of the method' M$ R( f- m1 U: ~
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
$ N! }; U: L6 H1 [3 A4 F9 Z
! }+ r- v- d( ^0 ~( v5 l这是AGV_putin中arrive的method。; O6 N# |% }8 f, A; s+ N0 a
/ Q) z4 a5 [$ i6 K! T/ f3 Z1 a+ n
当到达物料速度越高时,这个报警更多,
$ d' p. U4 o3 D6 l  X) O可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。% ?$ W3 B7 n6 K; h* o" Z1 }6 L. O
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?9 Y% z. Z; g5 F. T+ g) j

. S% y& l8 A" Z; g$ T另外一个小建议,就是move,所有的move都可以这样& s$ y6 i% i) ~0 A# _( r  G
if not move() then debug end
9 L1 G& g" z/ N. C$ u. {这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。) W! C1 R  O; s( y% [' [2 o
plant simulation中的free libraries有AGV模板,! m. `9 T7 }7 P# M
里面也有案例。
- n  V1 K; @! X7 n我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
+ ~3 J  Y& e7 ~% o! h1 ]' @( N2 \: K; P' S, F* ]; U' Y
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
3 `( e+ y: R2 @7 ?' O2 i5 ?0 M
/ a0 R* S6 m  N# g" {/ ^! {5 \7 b  w那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
1 \( R3 Z4 R4 Z. c这是AGV_putin中arrive的method。
0 T  t  G/ t6 h9 W4 q4 N1 L
. v, J% a6 t' ^5 E1 ?& T9 X5 g/ ~当到达物料速度越高时,这个报警更多,

. N9 e0 ?9 Q- R1 U另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-19 03:30 , Processed in 0.017983 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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