设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8664|回复: 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'
# x1 U: u# z5 A# c*/" A# y' J2 \1 Y# D
is
8 |: x- R! W+ [+ v; E$ }/ L* k# `        part, GlobalDistObj, assignLObj:object;row,Lan:integer;8 W& u& e' x. _  b% J
do
# B6 w. p  C; F9 k  X0 p) e        Lan := rootfolder.Internal.Tools.AOLlanguage;* X6 O  Y8 s+ N
        if current = @.Destination -- else return7 p. C- ]+ I4 A% J1 y
        then& w% T+ t, U' L+ S2 F
                @.Destination := void;
2 G  C' M  }& v  ?0 H                if @.occupied then
- E, |- @2 X6 e2 y/ w, R                        part := @.cont;
/ M# ~3 N+ W( ]( `                        @.transpOrder := void;
, p) V" b2 V! c( L1 |                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
, C5 S- p* z$ ~! H1 ^1 ^                                @,root.eventcontroller.simTime);
+ h7 J' C1 x! q- C                        @.HasOrder := false;% z6 W2 U$ j, M, n' e; {
                        @.DrivingHome := true;: v' P- x, K, a
                        rgManager.tryToStartTransOrder;0 p6 s) H8 g2 O( G
                        if @.Destination = void$ B# s" N* k: ?  ]' e
                        then -- no transport order for vehicle @
8 E9 }' `8 ~. g/ |6 f. X7 @8 n                                @.Destination :=
& g  C7 H2 U- k+ d: z                                rgManager.nearestFreeStation(@,track.~);
- V5 d  J. W0 R2 C                                newDirection(@);   
& ~  _9 `; A4 K                                if @.Destination /= void then
7 p0 w$ u1 z) S7 H& c6 l- j% N                                        @.Destination.NumReservation :=# k, n0 _$ i7 Q: n) x0 `/ f) _
                                        @.Destination.NumReservation + 1;# c( d' G1 F) ?! B% `9 E
                                end;
2 V. k# {: m# A  ]: v2 t. q$ I                                @.CurrIcon := "drivingHome";
7 ^/ g- I, A5 c                                @.DrivingHome := true;/ G; c$ \  r2 o1 u  t) u
                        end;
% W# I6 m' |1 _% y- }& c' S                else -- the vehicle @ is empty, both vehicle and part are in the same dock station2 U4 W/ e. P$ a# W+ k
                        part := @.transpOrder;7 l* e: ?+ Z  h* ?
                        part.move(@);-- load part! W) H4 y5 b8 A5 T- x
                        @.CurrIcon := "load";% a1 r; [1 u# O* n3 g  r- D
                        GlobalDistObj := part.globDestination;
: L& S# f  h+ I, l! z                        assignLObj := rgmanager.rgAssignL;' A, `. W" O; I+ W+ V/ q
                        row := assignLObj.getRowNo(GlobalDistObj);
" ~3 v7 _* Y* J2 i0 n* U: L                        if Row = -1 then -- since 70
. ^' V. ^9 P2 j8 O# [                                if lan=1 then
4 L2 A, |7 N! p# k* a7 G% i7 ^                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),- \7 c! \' E1 T( U
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
1 V( U: e6 A" ~% A1 k% e. V, ?, H                                else0 s- ~% W7 ?* B% X4 j7 y
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),4 G! I8 Q4 a5 F% K+ g& r
                                                to_str("in docking station: \"",?.~.name,"\""));                               
! R- m! [. E/ a" P) r& r                                end;
# S* D4 j/ ~9 |" j* k- N* S- m! r                        else
# |3 i7 p) H0 c                                @.Destination := assignLObj[1,row];
. ]: S7 ^) V- l5 g- D                        end;                       
1 e3 M4 {5 T5 X5 [/ w& ^; Y& H                        newDirection(@);
9 b3 z* E8 h( c                        @.HasOrder := true;- h# ?, o( r& M8 g
                end;
& r1 n! ]) m: H% z6 ^        end;' u& E* j/ C  F2 ]2 Y
end;        -- of the method8 K" b3 c8 m2 c% j; e' G
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
5 J+ P& {8 |  A
4 h' a4 d: h- z3 _0 I/ X这是AGV_putin中arrive的method。& g- T6 ~3 y8 F8 x. L

  C8 n' e/ b3 }/ ^. M当到达物料速度越高时,这个报警更多,
( N+ ^- w+ R4 \5 r- y可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。5 }  R, ?6 {; @  Z0 @; U
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?9 q& p! J% ?0 F$ O& X# x
* \7 t) m/ w; D
另外一个小建议,就是move,所有的move都可以这样" b& u/ L' K; r  N9 S
if not move() then debug end9 ^4 p5 E1 i0 V, j; _0 E
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。% n6 P/ q; @/ m& l6 D- j, U
plant simulation中的free libraries有AGV模板,% G% [4 \, z2 ]. e% l
里面也有案例。5 H7 A4 V( u; a+ D. u$ T
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
, _( D4 U% Z! t7 l* [: G2 G2 j
. B% g" e: F/ N我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 7 K. w& g- p+ D8 a

  Y% `- e& F8 b- v. n! y那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ; C  n  [( l) ~
这是AGV_putin中arrive的method。
+ f4 R7 _7 c5 I( N6 w  v- @+ n0 D4 D4 l1 G3 O7 a
当到达物料速度越高时,这个报警更多,
$ v4 h; E: f! A$ M. U) M  {. r
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-18 20:43 , Processed in 0.031991 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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