设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7249|回复: 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'- q/ C2 W. b) f- G4 }: q
*/
# |$ A, [4 |- `) Z3 }is
2 H% O6 y8 [) W+ D        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
, b& M4 V  `' N% |" Edo
3 u& y$ G' {' ]* o4 E: p        Lan := rootfolder.Internal.Tools.AOLlanguage;! c: k( t3 y0 L, M
        if current = @.Destination -- else return
" Q# ?) ]& V2 z% h6 P        then, M9 N& r$ P$ T+ E' k, @  p
                @.Destination := void;
; R, A9 a  q8 b& ]4 N& o# ]                if @.occupied then% r! m, \% I7 j3 E/ F: N
                        part := @.cont;6 U$ o) U% A: Y$ B/ f
                        @.transpOrder := void;, u# h- c+ Z+ U1 r% I0 T: s4 T, T2 `
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,: ^1 c9 g2 R" F
                                @,root.eventcontroller.simTime);- P( K- q3 y1 B6 s- X. ]# m& L
                        @.HasOrder := false;, D2 [) n+ A! R5 l# j* O& F0 Y/ P
                        @.DrivingHome := true;& n& B1 }6 e4 x0 O
                        rgManager.tryToStartTransOrder;
7 k. n. Z% ^) ]( {                        if @.Destination = void* P' b/ V3 d- ~. I* C# e: _/ ?& J; v( `
                        then -- no transport order for vehicle @0 }5 p; N+ }; |- t  M8 a
                                @.Destination :=
% H. D! I7 x: {  M) ^                                rgManager.nearestFreeStation(@,track.~);) k/ g" [( O- Q4 K* Q* R0 ?
                                newDirection(@);   - N) i% r- P, X8 C5 P
                                if @.Destination /= void then' A7 A1 w4 c" }0 G& L; Q& F. f
                                        @.Destination.NumReservation :=$ n  i5 U5 r& Q4 B: ?# y  A, M
                                        @.Destination.NumReservation + 1;
" J$ x6 I4 N' @5 i, W                                end;
; Z4 m# a2 P9 T5 P9 D+ n/ y                                @.CurrIcon := "drivingHome";
0 r7 B: t+ I) I" a! M. v. B1 N                                @.DrivingHome := true;. k7 w$ @0 t! o# I) J4 \
                        end;1 W9 b" Z( l* C$ G; Z! R
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station. r5 N- q/ k  o7 U9 |  N. E
                        part := @.transpOrder;
2 i! L, d) k! I5 {. \5 |                        part.move(@);-- load part& A7 Y- u7 A. @( ]5 [. o8 c# {7 H
                        @.CurrIcon := "load";" ?  V- j$ y$ ?! S' o2 l
                        GlobalDistObj := part.globDestination;4 {2 s. I, B5 g+ ?
                        assignLObj := rgmanager.rgAssignL;) b) y" Q2 Q; ]* k% Q" d$ j! z7 F
                        row := assignLObj.getRowNo(GlobalDistObj);
, o0 D) C  ~0 x  t) e* s                        if Row = -1 then -- since 70
' P, l/ W3 |" B# O                                if lan=1 then
1 [/ \2 |. [6 }- q1 w                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),* ]! m- L% m- t4 S& H- f$ A8 M
                                                to_str("in der Andockstation: \"",?.~.name,"\""));5 ^: q1 [% [4 `5 H  M7 g
                                else
; r; e: ^- ^. g; x7 f; O( d) x                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),  Q# t  q# i  j6 d
                                                to_str("in docking station: \"",?.~.name,"\""));                               
; d  H* r2 S+ P& ?                                end;
8 N. @( n( K6 ?0 b% ^/ B                        else5 K2 z. f) a! f0 N, U" }5 x
                                @.Destination := assignLObj[1,row];
) r2 T+ [+ k# k. e                        end;                       
4 \+ p- R2 G) y! |! Z; K                        newDirection(@);+ r) s! b% A' ]  G, z  G+ }1 t
                        @.HasOrder := true;
: {2 U1 W; n; X; f+ m                end;9 U# L/ t: [0 v# \9 R% }
        end;
" R8 J% x# s+ ^; C& ?  o; Hend;        -- of the method% I7 m+ X6 _6 ~
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 # [  b3 z0 B7 G( v( K, Y4 k% Z5 V! D
9 F( t  T  c  h/ a- A: E
这是AGV_putin中arrive的method。
" H# p- U& }! u2 A
3 ]0 K9 N7 i  h: S- Z当到达物料速度越高时,这个报警更多,
4 b! j: N1 x' z$ b可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。9 L4 H) G; }4 J6 ^; u
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
+ d* A2 l2 ]! Q1 R
9 M0 r& U* ]% M8 P3 q另外一个小建议,就是move,所有的move都可以这样! k0 k$ O( a% x3 k
if not move() then debug end
$ h, ~3 z- ^0 P1 f% C. N这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
! {5 l0 Q8 g! N* j1 ?- tplant simulation中的free libraries有AGV模板,. N, k4 \7 b2 o0 p  O1 f6 |
里面也有案例。
  I  S0 |4 _3 r) u; L; u9 M1 F我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
. g/ Y" b% a% V$ _) ?. w8 b: z" n, G) t+ F5 F, d! A% `
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 , q: j7 \4 C6 N" X2 m* l& S
& d) W& {* ?9 ?+ k$ u% K, l3 v
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 7 v; x. ]( P; c& ^$ V: k( o
这是AGV_putin中arrive的method。+ k. N" ?4 a0 G) L

+ i1 Z- a3 R' K3 }0 G当到达物料速度越高时,这个报警更多,

' s; S( v, N- o# w另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-30 12:06 , Processed in 0.016118 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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