设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6160|回复: 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'7 X# y5 E3 t" [5 n0 u5 F
*/
6 M' t4 l' F, g) X8 _  S7 {8 |+ }/ qis
3 ^) A6 ?+ P; _# m        part, GlobalDistObj, assignLObj:object;row,Lan:integer;4 a6 x) @" z3 H3 u. F8 z: @& B
do
! {% e3 N. k$ a. N        Lan := rootfolder.Internal.Tools.AOLlanguage;
' w) N: {  `7 l        if current = @.Destination -- else return
' u$ O) t" l; ^! q7 t6 T( l0 k        then
- A* u2 O' w* L4 u# S1 v                @.Destination := void;5 t  _8 P( B% O1 z; {
                if @.occupied then1 I0 \/ O) |- K" ~' z* o
                        part := @.cont;1 b& J1 {- Y. E+ J$ S2 d' B
                        @.transpOrder := void;! [! Z; t/ N, P( R+ u# R. u
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,# h! V" S& O7 k9 x" n( c5 G
                                @,root.eventcontroller.simTime);# R; Z- j- ]- f
                        @.HasOrder := false;
7 t6 p: R( t: E3 S8 p7 r                        @.DrivingHome := true;
) h9 R+ v" `$ M) e. S                        rgManager.tryToStartTransOrder;# }$ e) ]. m& t6 V
                        if @.Destination = void
8 t9 {1 X4 ^) y/ I/ Z/ l% ~9 s: x                        then -- no transport order for vehicle @
. G7 Q+ _5 q: q7 j  @6 a' a( ]                                @.Destination :=9 N5 A0 t0 ]0 m* ]" }# l
                                rgManager.nearestFreeStation(@,track.~);
( _' J0 ^9 r: Q/ A" [                                newDirection(@);   
4 x% M" C6 z+ `                                if @.Destination /= void then2 k7 t6 |: o  Y$ h5 l! p% J. t
                                        @.Destination.NumReservation :=8 e( Y) _  F. ^+ B) p
                                        @.Destination.NumReservation + 1;
9 C, v+ A0 s& F" F                                end;
3 }/ ]& n# x/ j( k  s                                @.CurrIcon := "drivingHome";, F! x  o$ v/ `% x! Y9 [. z
                                @.DrivingHome := true;7 t: ?& Q  i/ C- m
                        end;
% V6 B9 C# ]; }' J                else -- the vehicle @ is empty, both vehicle and part are in the same dock station+ S% Q4 L4 i) D; O# T+ ~; w, b; F7 n
                        part := @.transpOrder;
* }3 p- D; `, V3 N! V                        part.move(@);-- load part
6 U- u& j& f* M+ \( [6 G% @                        @.CurrIcon := "load";
8 J" G! s/ i) ]. V- C                        GlobalDistObj := part.globDestination;
2 M6 V4 v2 a% }7 F6 k                        assignLObj := rgmanager.rgAssignL;( _, p5 n3 `; A$ Q. }
                        row := assignLObj.getRowNo(GlobalDistObj);- o# p9 o9 J+ k* Z
                        if Row = -1 then -- since 70( e3 i6 t5 q5 t( u- k
                                if lan=1 then- d' {- U9 n- Z1 H% u
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
% K" J1 j1 I  U                                                to_str("in der Andockstation: \"",?.~.name,"\""));% M0 }3 d- z: l/ I5 K
                                else
% G; }: R% R0 j2 e) ]9 `. P4 {2 v                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
1 ^9 G$ Y, ]$ M# W                                                to_str("in docking station: \"",?.~.name,"\""));                                - B, L. z4 \" x3 f1 P
                                end;# h7 P! y( ^1 d% d
                        else$ J5 d( h) K& s/ M; `
                                @.Destination := assignLObj[1,row];5 h/ o4 B* x6 s1 g3 C% R& s
                        end;                          H& F# `4 x8 Z( Y* a
                        newDirection(@);
3 N1 Y7 X/ ?9 @% S5 c# A+ n1 ~/ n) Q                        @.HasOrder := true;
. P$ a. z  {+ k8 p0 h, V                end;0 y- G! n# z7 C# h' H
        end;2 s+ \" x7 R+ P  D4 m: F
end;        -- of the method
4 Q0 s3 c' m5 m
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
3 |1 W& a8 S# Q" T3 M
" y# Z  o; _! h. ~* n这是AGV_putin中arrive的method。
% k* M; y6 g3 e2 C% M7 k1 G1 O8 P6 b8 u
当到达物料速度越高时,这个报警更多,2 k7 A% P% V2 _5 F( n1 K8 i6 f/ m) n
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。6 T0 F4 Y' v4 R/ G, F/ a' J
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
1 H; h* J& S' `! r4 ~% I, y
( i0 f5 H* v3 ~6 d  j: V另外一个小建议,就是move,所有的move都可以这样" E9 M7 ^& G+ H* v* J0 Q% f
if not move() then debug end
+ ?( D. a6 U: A  T! E* g* g这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。& K  T3 R7 }) f- U9 o7 G
plant simulation中的free libraries有AGV模板,2 n8 P" X$ l% e# {/ K
里面也有案例。4 A# h2 O) g. k( u5 i6 W
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
, g: Q1 c7 q7 D6 n9 z. I7 `' d' F1 ^# J% j) K9 I
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
- `& I9 A# x& g0 _9 W4 Z4 Q& C$ C7 h$ v/ y: N
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
* q& U; a# ]5 C3 \  @- o+ J4 h这是AGV_putin中arrive的method。: B: ?( T' s, r. q' c& J
  z: w: ~  m7 [- D0 B+ e
当到达物料速度越高时,这个报警更多,

/ \; \& K1 [6 Y- k% n另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-22 02:25 , Processed in 0.019294 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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