设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10115|回复: 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 f8 j* {/ n9 Z. T3 K*/0 o" t, v" A; S4 Z( K
is) n9 L0 R$ ~& E/ {3 D! M( _) U2 l
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;. F6 y# P  H  b% V3 Y/ g
do& N6 X, ~( o( o- Y
        Lan := rootfolder.Internal.Tools.AOLlanguage;) ]6 C& a8 }- U
        if current = @.Destination -- else return! A& z1 Y3 X) G' ?! q/ A% v( n  A
        then5 z  s, ^6 ]" a
                @.Destination := void;
8 C: b4 i- N2 Y, ^2 ^1 Z% V2 |                if @.occupied then
, }; D+ Q; Y9 e2 W0 x( A! H                        part := @.cont;( y/ `4 Y# T; J
                        @.transpOrder := void;% \9 ]1 l% Q# B* p5 f
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
8 _- r( B4 P, \4 D% t( e( O" B( o                                @,root.eventcontroller.simTime);
% M+ T5 I: ^) K% D. r                        @.HasOrder := false;2 A; F7 F2 Y7 G4 P4 f- D
                        @.DrivingHome := true;
+ [5 N( B( p) r& ~; E                        rgManager.tryToStartTransOrder;
: Y; }  X2 d% R4 Y. l  I                        if @.Destination = void
- i" z' x# S! |# Z. {4 }4 x! I                        then -- no transport order for vehicle @) @+ P- q0 i) [5 q0 V1 c
                                @.Destination :=" h  W/ P) J5 H; @" m0 ~1 x
                                rgManager.nearestFreeStation(@,track.~);
1 ^, P! k0 D8 h. q1 X                                newDirection(@);   4 D3 @3 s# F% ]
                                if @.Destination /= void then4 n2 U, Y* `4 o1 _1 S5 o
                                        @.Destination.NumReservation :=
: _# Y' ]& A( Z9 G                                        @.Destination.NumReservation + 1;
' a4 C9 D5 g0 i                                end;
2 j2 J- I( S; y7 z                                @.CurrIcon := "drivingHome";
$ q+ S: `8 _; F% O5 O1 t                                @.DrivingHome := true;8 e" C  U3 |4 b) Q) j
                        end;  _' m! F; A# P5 `5 q# Y& N7 m
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station- Y3 V! T) s7 d/ g
                        part := @.transpOrder;
. l/ O5 ]; H& c) f5 x( n- {: L* S                        part.move(@);-- load part8 _, J8 B4 S2 N3 i
                        @.CurrIcon := "load";7 j7 h# g- O$ Z& h
                        GlobalDistObj := part.globDestination;
( a6 A; c/ d5 N9 B4 Q  v                        assignLObj := rgmanager.rgAssignL;4 U0 @7 |5 c2 {! t
                        row := assignLObj.getRowNo(GlobalDistObj);
8 P+ U  i/ C0 v5 Y7 L( S                        if Row = -1 then -- since 70
, f5 \$ I7 n; j! G                                if lan=1 then
* s& ?' o4 L" u8 j+ W, S3 z                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),' ~. }6 e6 R+ i$ q" z! w7 |
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
- e0 H/ c. l( {( ]                                else
! Q8 q/ e/ e: Y8 N7 y                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
- ^/ c7 H( u' D5 r  r' e" U/ `                                                to_str("in docking station: \"",?.~.name,"\""));                                2 N2 T# p- W& B( U( s
                                end;0 ~0 Q: }& R9 A% s' q( x
                        else
$ F" b* K7 |* w, X                                @.Destination := assignLObj[1,row];0 Y9 R, ]( [4 I+ A
                        end;                       
2 h: {  l0 a% {$ B  W$ G                        newDirection(@);5 \2 }4 z1 |$ f! p' ~4 a
                        @.HasOrder := true;/ ?# y3 ~/ J& A5 z
                end;0 L  U% z. t) u% a9 O! L% P
        end;
  c+ |7 D) R& M0 ~2 w6 Q7 \1 \end;        -- of the method
/ D  t9 }% d4 Q6 l' h; ]
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
# P' g+ e0 D  _4 c" I( }
5 k. U& Q+ z  G- \这是AGV_putin中arrive的method。$ N% t8 [2 U1 y- Z2 Q
) u) m2 J/ s$ d4 \4 B3 G3 X
当到达物料速度越高时,这个报警更多,
+ M% S6 w8 c  C' w' J可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。2 ^: X2 ~, ]3 m6 @3 ]
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?: `; V5 h+ v' y8 b. K* C! N6 }" v
) H9 F) X1 i) x  w
另外一个小建议,就是move,所有的move都可以这样  f. u  M& J$ N0 c+ u0 \. b
if not move() then debug end
; C- i) G2 R. z5 G5 R% |" r6 o: b这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。; T% a7 [7 J- p8 ]
plant simulation中的free libraries有AGV模板,
$ H+ J) U1 \7 O$ [6 A. K7 ?里面也有案例。
+ g5 v6 j6 |7 l% m我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
) _2 r, @7 g9 u3 S7 c0 @1 L' P
6 K! A& p7 k2 y5 ~8 A" K我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 8 Z; q3 g+ v: h0 M  a' [
/ k6 \  J1 J. \
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
1 d/ B+ {/ s# f- m. n+ U+ a2 ]这是AGV_putin中arrive的method。: A! r9 o9 ^) x; F# y
0 \7 S5 Z  h, t! e8 O# f8 U, I; x8 z
当到达物料速度越高时,这个报警更多,
: }; E4 h3 e" ^9 X' ]
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-14 02:36 , Processed in 0.016384 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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