设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8540|回复: 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'
- M' H) Z6 I% P9 X# e4 R2 k*/4 T/ f% F# d+ B% i1 c; ^
is
5 B5 X) N: e( ?) A& L- ~        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
4 \: F" p' j, J  Rdo
; u+ ]- ~" N' l% N4 U        Lan := rootfolder.Internal.Tools.AOLlanguage;, t- T& }' O) @; l* W
        if current = @.Destination -- else return
2 d/ m9 `& w, w" N& ]7 @        then
* P, O, [9 Z) c$ F6 x. U  k                @.Destination := void;
# X5 P; I8 Y: `) `$ a( P! q                if @.occupied then
9 d3 X8 O4 p, m$ A" Z; a. z; w                        part := @.cont;0 q3 v2 S! f! g0 d) ?/ W
                        @.transpOrder := void;" A# y5 E8 V, }% Q  B3 o2 k* d
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,' E; k* q8 r3 W; J. Q: t
                                @,root.eventcontroller.simTime);
9 ^7 p0 F/ x3 U                        @.HasOrder := false;6 k+ X; E  A% o3 ~, G  f
                        @.DrivingHome := true;, z) x7 N( t! Z8 m/ |+ |/ k8 L& f
                        rgManager.tryToStartTransOrder;
6 W, m/ r1 n6 p5 H. h7 R' P. a                        if @.Destination = void
  A* ]  i: ~- r# D4 h                        then -- no transport order for vehicle @$ J& U# j. ?  G) c8 G% L( S' h
                                @.Destination :=
. C& X1 Y8 r6 G$ j( G+ @% X                                rgManager.nearestFreeStation(@,track.~);
+ e# a3 g* H$ y! P) T% u* ^                                newDirection(@);   . m3 ?9 \/ ?" k0 v3 l* d  M$ D6 K! @
                                if @.Destination /= void then
/ J5 u0 o' J/ w8 C8 E* S                                        @.Destination.NumReservation :=* C$ p1 w) }! J( Y. K' Q
                                        @.Destination.NumReservation + 1;
; m  Z. X# g% E& w+ G& O$ P( R. q                                end;; H! p. J* J2 }  t+ W
                                @.CurrIcon := "drivingHome";
4 [2 X, w/ [$ C+ z! R: N' I                                @.DrivingHome := true;
6 @! @# Z1 H3 z+ q0 R/ Q, X                        end;6 L: g; x* M9 d# Z& j
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station( l: [; v# F% Q' }( d
                        part := @.transpOrder;
" i+ @+ H  s6 c                        part.move(@);-- load part9 J  k; C7 ?4 v, b" H. S& p$ B
                        @.CurrIcon := "load";) x# O0 n# r3 D% U) M$ O) P% Q
                        GlobalDistObj := part.globDestination;
- a. \- e& T0 S2 \                        assignLObj := rgmanager.rgAssignL;
8 b6 _2 |7 c* t3 B8 S                        row := assignLObj.getRowNo(GlobalDistObj);
! `- k# ~+ F3 n9 [# w# D$ Z                        if Row = -1 then -- since 70
& _& t$ F7 S4 a3 [( w& w6 y                                if lan=1 then+ j7 f+ [7 U0 H4 G+ |$ j
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),) ]8 q0 u5 \5 N* v
                                                to_str("in der Andockstation: \"",?.~.name,"\""));2 c/ x: w6 g" ]2 O; @
                                else3 W5 K( \1 f( _' k/ `: s: p; V
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),: f( I# d+ T1 I6 _# `  W' y
                                                to_str("in docking station: \"",?.~.name,"\""));                                7 A5 ~( M' I6 }/ d
                                end;+ ?7 K; [3 F2 a. j
                        else
+ |% B) L; `' q& p5 c4 g- p                                @.Destination := assignLObj[1,row];
1 \& ], X6 V5 G. k5 g* ^' I! r$ V                        end;                        3 ]3 x# ^; K+ o2 q" b
                        newDirection(@);% F  @5 |- W" g& \' ^
                        @.HasOrder := true;) J- v  Q- p. l* q3 j6 j
                end;
% C9 n9 P8 E. j5 F. p5 H. {        end;
0 M0 }/ }; o; J  X# \2 L7 {. ^end;        -- of the method% {3 c& R6 A  J6 x7 E1 B- V6 b# E+ O
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 + K% ~7 h2 \( ~3 J' g

5 k4 W' u8 b7 p5 d; t& K! @% H- k0 i这是AGV_putin中arrive的method。
) A/ a- h5 m, S# V9 O3 N6 q5 C+ v( B- @' o0 N* K
当到达物料速度越高时,这个报警更多,
" ?' V1 j/ p( P: q" a5 S可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。6 P* F, H# r, j; M5 j- P5 P
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?  S5 W+ G- U2 j* Z8 _( P

5 n  z3 P0 b* n! ^3 F5 U另外一个小建议,就是move,所有的move都可以这样! E( K6 H0 b" G* {; @9 `6 f
if not move() then debug end4 x+ Q/ }- s: N' l
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。5 v8 P$ u3 k5 B6 {
plant simulation中的free libraries有AGV模板,
4 a$ H. g( L; U/ f0 M! C里面也有案例。: g: C$ C: S; j/ n8 R. w
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。7 i9 U' i9 H' `' ~
2 Y( r1 k( |: G$ t$ D$ m
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
/ d& L. x. _# x# G( n& L& a- N$ U: t$ F4 z, Z9 A* A
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ) f8 D6 F9 S  W' F: G4 k
这是AGV_putin中arrive的method。1 l; B6 _8 ~' O4 o1 ?5 ?* T

6 E1 r! A0 Z+ ?当到达物料速度越高时,这个报警更多,
5 s. C( |5 A( K; R# w  y
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-10 02:43 , Processed in 0.020428 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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