设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6693|回复: 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'
% G% n! C/ t. T9 v*/8 l: ?& ^6 Y1 t' ?! U2 _" g6 x9 y
is
2 h9 q2 k) W% A: ?+ V( [        part, GlobalDistObj, assignLObj:object;row,Lan:integer;4 o, B1 C" F; g7 K6 e6 ?$ c
do
5 ^& C* Y0 r+ S        Lan := rootfolder.Internal.Tools.AOLlanguage;! k; N" t+ F3 l7 L& F, S7 Y* v+ L
        if current = @.Destination -- else return
3 o7 q- e7 ?9 t6 |4 t5 k        then! O* w! G  u8 G8 i
                @.Destination := void;2 i4 ^2 [; I: L# ?5 b( k
                if @.occupied then
0 }6 O0 g; \$ x9 x  m- s$ H- A" ^7 Q) O                        part := @.cont;  P7 l, A3 b/ Z1 {' p( p
                        @.transpOrder := void;% }+ P/ }9 e2 @) P2 V
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,: v, r2 T9 Z: Y5 l7 f! d5 D, D
                                @,root.eventcontroller.simTime);9 L- R/ i  ]3 P! k
                        @.HasOrder := false;4 b' U/ L, F/ D7 T0 X1 w# K9 S
                        @.DrivingHome := true;0 i  M" L7 x* P/ l
                        rgManager.tryToStartTransOrder;
8 E+ T- v. @0 Z8 [3 H                        if @.Destination = void
! B  d) m3 f, ?  D9 f. [! ~                        then -- no transport order for vehicle @6 Q3 O; n" W% I' X% Q
                                @.Destination :=
: F) g8 m! Z5 t                                rgManager.nearestFreeStation(@,track.~);
8 l9 A1 {8 E( L% u) |: _7 g                                newDirection(@);   . u( k- ?4 H& P$ ~3 u8 L$ c3 t1 Y
                                if @.Destination /= void then" R2 `* s+ M0 B  x5 f" p+ N
                                        @.Destination.NumReservation :=
/ u2 p- d2 M/ U5 J) E* u9 K                                        @.Destination.NumReservation + 1;% ~8 o" }$ }% f( ]* p; \, F# o3 L5 o
                                end;: t4 t! O, [- f- N) }2 j
                                @.CurrIcon := "drivingHome";
+ q1 U( I  S) @# Q& X                                @.DrivingHome := true;
4 d4 ~2 |' `; a) d  C- Y                        end;5 e/ ]& u, Z  ?) g8 y. k6 ^! x2 Z' S
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
7 \$ T0 ]& [/ M; o# a) ?% u; T                        part := @.transpOrder;
  V3 u  Y9 y4 @( q5 p$ Z$ |" B                        part.move(@);-- load part
3 i8 f( ]1 B7 o, q* Z" y! V" x                        @.CurrIcon := "load";
" E. m% [4 X: [7 X) {3 a9 l                        GlobalDistObj := part.globDestination;
% C0 k. u$ U$ d' p% v! B                        assignLObj := rgmanager.rgAssignL;
( l9 z. k( N4 B$ u! }! v' {                        row := assignLObj.getRowNo(GlobalDistObj);- g. R" t, U9 T+ X+ e! F8 [! G- S
                        if Row = -1 then -- since 70, G& N+ ]' W6 F% K/ i) o9 C
                                if lan=1 then
  ]2 w% Y0 ^2 `! @, o                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),+ c6 X$ ~, U; X. G8 z4 k6 Z
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
+ w+ T8 S; U# Z/ m3 B                                else
$ D5 x4 ?8 Y) {8 K7 M- k0 x                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
& H: M9 v9 l+ a' f                                                to_str("in docking station: \"",?.~.name,"\""));                                $ I. T2 y4 O# y! B! d3 T, o9 ?
                                end;, y2 p9 x# L; g. p
                        else2 Q4 M: q" q' x' _
                                @.Destination := assignLObj[1,row];2 u0 o) v) k) @6 T7 H  i
                        end;                        ' d4 |7 C# S* P7 i/ `, O
                        newDirection(@);
" V+ @# G; [& f' `4 E  x0 {6 O                        @.HasOrder := true;
+ z8 x' i1 p8 Z7 d- R" P8 Q# k                end;
& M# V* O' ~  l* N. j7 Z        end;2 ]& w9 w- r! T& E4 z# W0 v
end;        -- of the method# G* s6 Q6 J4 K4 \- C
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ' `4 t3 ]9 H5 F- I, E" I

9 }2 i2 @9 s# G  r6 _这是AGV_putin中arrive的method。
4 b' d9 U5 v( A7 |, y( z% F
2 Z0 a# B) C3 r- Q' E当到达物料速度越高时,这个报警更多,
% ~# m/ A, `7 z6 g* B/ c可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。+ c% c( F& R7 Z+ b4 `; W5 i- e
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
& ?& k" Q6 d4 ]8 E5 ?# \. j& L9 C+ F/ u* R/ K2 n
另外一个小建议,就是move,所有的move都可以这样( u! S! _4 r) {# L( P0 v
if not move() then debug end
% @& T. j! y9 g8 o% m' e+ y& d这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。  b  @7 V# j0 ^
plant simulation中的free libraries有AGV模板,
2 b9 \, J  ^2 O9 X. F$ N' @9 P2 r里面也有案例。$ e: N& C+ T3 i# j4 i4 i" ^# ^
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。1 ~4 t5 }) _) p5 _

; q* I, m' ]  W我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
- _( A0 `0 F! G8 a" {# f9 X' w2 X4 F. n
! }* t! |2 v9 Q3 l那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 8 l; a/ D0 P' f# E6 h( S
这是AGV_putin中arrive的method。
# B6 D. |+ G( Y) C
& z* S1 [1 E7 U5 o# m当到达物料速度越高时,这个报警更多,
8 r4 B8 _/ j4 f: b5 D
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-21 09:07 , Processed in 0.021637 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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