设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7467|回复: 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'
. V" `6 C3 s& J*/3 O$ Y/ c7 q4 _6 K% x
is+ {- I. T8 P( s
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
  B  D  m( `" L; [( qdo
- {, ^/ }* b, y, W9 I        Lan := rootfolder.Internal.Tools.AOLlanguage;
3 Y" r! A% ~9 X$ l6 ?% r        if current = @.Destination -- else return! b+ }3 g; E, `: o3 a9 z
        then  [( f* U+ a# Z7 s, h( ~- J
                @.Destination := void;9 S! d( |. u& I
                if @.occupied then
4 F' E6 _" Z; q                        part := @.cont;' ]: q; y0 k. _( `, F# R
                        @.transpOrder := void;
: O+ L  I: W6 \( |9 C  f7 D                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
% s( {* ?4 ^1 y                                @,root.eventcontroller.simTime);
8 Z/ v5 y! i& J4 K                        @.HasOrder := false;
# G  H+ B+ @$ O                        @.DrivingHome := true;# \# h0 c/ v4 g
                        rgManager.tryToStartTransOrder;" q2 I* c; ~( [7 I  k+ k9 N  Y
                        if @.Destination = void
. K4 ]+ |- q% r+ L9 U0 l! E8 u                        then -- no transport order for vehicle @" X  j+ t9 Z+ s. n; d. ^( T8 n
                                @.Destination :=
- C9 \& v( Q( x                                rgManager.nearestFreeStation(@,track.~);2 Q# d" l$ g* q% U& H
                                newDirection(@);   
% H) `4 `4 A  i' s! p. j                                if @.Destination /= void then
7 l$ H+ i( {# J; i  J, c                                        @.Destination.NumReservation :=
" V5 y/ L/ g# S& Q' ]. D' V                                        @.Destination.NumReservation + 1;
* Q! |3 C. K: S                                end;3 g, u6 O) k2 n3 Q% |
                                @.CurrIcon := "drivingHome";+ }- C* ]" Q- ]! G+ }# N
                                @.DrivingHome := true;
8 L5 e0 K4 s" J" d" V2 S                        end;
# _( {' C, B0 U- q8 u0 k% H                else -- the vehicle @ is empty, both vehicle and part are in the same dock station; D- ~$ `9 h- J" G' T" r
                        part := @.transpOrder;# d1 k% I7 {* A2 Z4 f" W" v
                        part.move(@);-- load part' K9 H/ p0 }, ]0 d- j9 m6 y6 Q$ B
                        @.CurrIcon := "load";
4 X, p5 w( t6 Z- l3 |& w" |2 i: ^4 `                        GlobalDistObj := part.globDestination;0 Q& k( s  j) W* |6 I0 L
                        assignLObj := rgmanager.rgAssignL;3 X3 O! Y4 f- P# G
                        row := assignLObj.getRowNo(GlobalDistObj);9 V: S( }$ a" c5 K  g- L5 F
                        if Row = -1 then -- since 70( G# S. }9 W: B$ |4 ?3 U2 f' ]* e
                                if lan=1 then6 R7 Y9 W6 Q: [8 T
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),. V9 c8 ^8 R! T  i
                                                to_str("in der Andockstation: \"",?.~.name,"\""));6 Q! ~2 M/ A. g
                                else
, @, J: m; r* p0 ]) L                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),* ^! R& H5 s( i. o% b, N! N
                                                to_str("in docking station: \"",?.~.name,"\""));                               
9 M, X9 t$ k" b, l2 y" i                                end;
% N, k! b4 [' ]" l" ^                        else
0 y! r/ l: |! h% k$ V0 F# D                                @.Destination := assignLObj[1,row];; E# s% ]1 d- S; T& ~
                        end;                       
( b9 \4 K3 S* h) R; `* V0 t                        newDirection(@);
  V+ b3 P, }, Q9 F  a: T. G                        @.HasOrder := true;+ ~# K( C" s, d3 Q8 X7 |
                end;4 I& i- M$ |8 F& q
        end;
% _7 H/ c: t- q* Q7 v) eend;        -- of the method
) m! g/ t1 x1 c4 Q; m4 R/ F* Z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
3 v: Y: N, |7 p# C% h, F/ ?' L) ~; t3 W* I
这是AGV_putin中arrive的method。
$ I3 k* C; g; s! W9 e" u5 V9 E; w
" C/ f- ?9 ~4 R6 m! E3 {% Z当到达物料速度越高时,这个报警更多,# s/ L' k$ ~- R# h1 v. L
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
3 T0 o$ A2 [; r0 T程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
# f5 D& k4 @4 }
* I5 Q' w3 y5 D8 N& F, W6 `( ]8 Y另外一个小建议,就是move,所有的move都可以这样: d7 [+ k; R; s* G. a3 E
if not move() then debug end
% Z7 l5 [, ^( K. h1 ]# |4 d这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。5 u% ^4 T( k! G" }
plant simulation中的free libraries有AGV模板,/ }: I! _* j' a) @, S
里面也有案例。
4 |% U1 ]" V% |( N- H9 C6 w0 y) j我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
  y1 z# \/ n) v9 X: ~. t: e+ g9 ]# b4 P9 ^/ p
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 % T) G) p$ ~. s: P$ ?
# T, U5 P  t5 U" w
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 3 k% @+ c, Y3 f& t
这是AGV_putin中arrive的method。
7 N5 z/ K) h+ N8 o
% Q: z& A6 v8 I4 I% q当到达物料速度越高时,这个报警更多,

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

本版积分规则

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

GMT+8, 2026-4-13 04:14 , Processed in 0.023772 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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