设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6407|回复: 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'8 |9 r- y* c/ N, k/ l" Z/ g: c
*/; o! ]; r8 M$ Q
is) W/ k4 \% [; i
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;/ Q% m! N) J: m0 v+ r3 Q2 V
do
$ W. Q# ^0 H, P        Lan := rootfolder.Internal.Tools.AOLlanguage;# C7 J; @) |- d
        if current = @.Destination -- else return/ K! D" [1 d, J: I. d
        then
/ [- g* L  A( U1 D3 {                @.Destination := void;4 z* A4 R# J3 b! ]6 r
                if @.occupied then" e0 d2 Q1 Y- g! A1 R( d* w6 L
                        part := @.cont;8 a$ V8 Y1 Y& W+ l0 K
                        @.transpOrder := void;
& _% k3 H9 E/ k1 ]# f( p2 Z                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
. x" I0 y5 J! P3 _# ~/ A                                @,root.eventcontroller.simTime);
9 M+ g4 X* H  F  i2 p, U2 H) p                        @.HasOrder := false;$ W# y3 p0 k9 v0 Q6 N9 X
                        @.DrivingHome := true;  r) @( q2 _* V, W( a* U+ g
                        rgManager.tryToStartTransOrder;
( _# {9 Q  F; r4 `7 E. G* Z4 t                        if @.Destination = void6 `  }9 G. N+ u5 W- O3 y) v) B
                        then -- no transport order for vehicle @
2 q. ]. m3 k' ?, V: B$ b. w                                @.Destination :=
( i8 e9 M# ]3 k0 v                                rgManager.nearestFreeStation(@,track.~);) [  J5 X% d, c% Z1 A( l: ^) G; f& e
                                newDirection(@);   
$ G1 ]4 |% C0 g2 ~% o                                if @.Destination /= void then
: i; g1 q, x3 E1 r                                        @.Destination.NumReservation :=: P8 O5 t$ Z' e3 @
                                        @.Destination.NumReservation + 1;
" C( g% p+ }2 P/ x' |0 r% b                                end;
0 P' G: r( t. Z+ g                                @.CurrIcon := "drivingHome";  o# I5 y1 R; X' a: y, l
                                @.DrivingHome := true;0 D; B% Y3 v' N
                        end;
! I9 o4 _4 v" F# D! o$ r                else -- the vehicle @ is empty, both vehicle and part are in the same dock station8 c: D* I5 Z$ T$ D% D' I0 P
                        part := @.transpOrder;
7 ~" h8 g5 g# J% b- E                        part.move(@);-- load part4 o% }' m  s3 c/ C' ?
                        @.CurrIcon := "load";
. k" |% Q/ H6 {# B* g2 X. a2 z                        GlobalDistObj := part.globDestination;
9 F0 _/ I4 E1 p9 D; R: D9 ^                        assignLObj := rgmanager.rgAssignL;
1 R5 T9 m5 B6 L! X9 g% _6 s                        row := assignLObj.getRowNo(GlobalDistObj);4 y& ]# u1 `5 |+ Y0 ~
                        if Row = -1 then -- since 70
( \, \/ ?; p! {" A9 z* g                                if lan=1 then3 m5 w% o- _3 Z8 {
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
. y' h* F. O; H# V4 D                                                to_str("in der Andockstation: \"",?.~.name,"\""));
0 _8 p1 f' M" N                                else
6 [- B0 O7 f! X( _, W                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
4 N; p1 v5 x* c9 r. G                                                to_str("in docking station: \"",?.~.name,"\""));                                ! Z7 z' T- m9 v+ F6 R2 j0 t) d
                                end;
- \( k9 A9 t5 v( B  Q; F; G* A9 K; J  O                        else
/ J+ w, G) Q+ k8 l; U: B3 `6 H                                @.Destination := assignLObj[1,row];$ ^2 \2 V0 f2 j
                        end;                       
( T3 F" Z  W3 y9 p2 d                        newDirection(@);
% X# q7 i; M$ [9 Y# J# J                        @.HasOrder := true;
$ _" G, C" U0 S2 K$ t8 H                end;; I6 }. e5 X8 f6 {5 W4 L# A/ }
        end;  b' `6 e/ P; z( ~
end;        -- of the method
; L: D9 D. e1 E$ O& y; e6 C
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
. a8 I4 X+ j$ d3 ~  r( J1 X9 I+ b7 f8 F8 H" |6 e( o+ z3 G; ^$ n2 n1 t
这是AGV_putin中arrive的method。, i4 L; u/ ]( y1 r( I1 N( n' @/ t

5 P" Z; }: a- p5 X5 I6 u当到达物料速度越高时,这个报警更多,8 j' S2 r$ w& i4 m
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
0 L* {& t# _4 p7 r; D" M- A程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
/ X5 T# l+ P) J' \' V. \! C3 q# g
9 j1 q" X8 l3 }: H, Y: C% u/ u0 J另外一个小建议,就是move,所有的move都可以这样  B) m. @. H" u7 ?3 O
if not move() then debug end' X5 P) r. f! s+ X" Q
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。  {" m" k* @1 T& L6 p$ ~( m8 m
plant simulation中的free libraries有AGV模板,
8 Z2 S- i9 h4 B+ P里面也有案例。
8 i# `/ ]7 q% m' n+ G7 h我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
* R; Z( J/ x7 c& L' n5 `3 {9 i/ M2 k- q& u
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑   E, U) {' w4 l" b; E, I$ n
6 m  l+ d* k/ {
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ! l2 O! T( J  H" e2 X! K) d& g
这是AGV_putin中arrive的method。/ l) {7 d& u: p' ?
6 e+ J! p( r) ?, o0 N0 K
当到达物料速度越高时,这个报警更多,

  q7 P0 S, v9 L另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-4 23:58 , Processed in 0.026272 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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