设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8535|回复: 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$ i0 P  h7 ~7 j$ |*/5 B: _/ {+ X# `: I% q2 N
is
" a6 e* U  i; c" V        part, GlobalDistObj, assignLObj:object;row,Lan:integer;+ v- S: r4 \8 S: B  c, Z5 }
do
0 Q; T: i9 u- ^7 G# X! X( r: j& W        Lan := rootfolder.Internal.Tools.AOLlanguage;/ L$ \' y9 Z& @! I
        if current = @.Destination -- else return/ }& F  @  x& v  G6 [; u
        then4 F0 m# Y0 u4 X$ }. Y
                @.Destination := void;7 d; o8 F* W. M$ p( U$ d( u. {' {
                if @.occupied then+ P' @; u6 _; J8 D
                        part := @.cont;
' w* k& T! a0 N  M, O  f                        @.transpOrder := void;1 X& k5 c/ S+ m3 Z; x9 L5 s
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,. Z) L+ f$ i7 y0 u, i; r9 `
                                @,root.eventcontroller.simTime);. }0 ^  E. k8 z2 M; Q% l6 o$ s3 \
                        @.HasOrder := false;
) F$ H' ]" a1 v" C# S: [, [% ^                        @.DrivingHome := true;
; p* r1 s' x' p9 \; b                        rgManager.tryToStartTransOrder;
2 `# U8 m+ q( g2 k                        if @.Destination = void8 D$ q7 C3 ?/ O' @! \! F' o6 k
                        then -- no transport order for vehicle @- z. V& `) n& s+ c$ E" O
                                @.Destination :=
; a- s* w- r0 a  L# k0 _. G  E; p                                rgManager.nearestFreeStation(@,track.~);0 W7 Z8 j, }2 T4 F5 F$ g' F
                                newDirection(@);   / s0 v4 |& L) y9 p7 e4 @8 K- \
                                if @.Destination /= void then7 E2 Q# n4 T9 V2 A) j" d. D
                                        @.Destination.NumReservation :=
. }5 o1 S1 S+ k' e/ h# R9 e, a                                        @.Destination.NumReservation + 1;
# J% j/ w, N: a3 }' J6 `                                end;4 [- c! s7 Q! r, K4 j, p* s
                                @.CurrIcon := "drivingHome";
. z- Q& ?+ N' ?  U                                @.DrivingHome := true;! ?* E5 A- W5 c1 R9 T4 D( x; }
                        end;
* C7 V6 j, ~9 J% }                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
5 G8 G- n4 V; j, h- Z; I                        part := @.transpOrder;
# ]" [* p* w; I1 x! U                        part.move(@);-- load part
% e3 @2 o. {* s- w" n: o, S+ H                        @.CurrIcon := "load";7 O9 N1 i) L1 m
                        GlobalDistObj := part.globDestination;
% ?' V- F, y6 B/ d                        assignLObj := rgmanager.rgAssignL;+ U. `5 Y. d3 l* R$ i3 S/ Y
                        row := assignLObj.getRowNo(GlobalDistObj);, `$ m6 O+ l! }1 t. U1 G4 P, f2 z
                        if Row = -1 then -- since 70
; X0 Z5 x, b$ `( k. w; H0 Q  w                                if lan=1 then
5 t3 \5 q. C0 Z" S                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
! }" i. v2 L$ y0 m, H: D                                                to_str("in der Andockstation: \"",?.~.name,"\""));
, c. t5 |3 r) \( V9 |- H- w! w                                else
" r0 H, @* W, i4 H                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),2 v$ z4 a: G) i7 h/ v. c6 T
                                                to_str("in docking station: \"",?.~.name,"\""));                               
3 f# D2 O; T6 [5 J5 \; \% k0 Y+ W1 P                                end;+ |; X, }8 x6 k* I2 x. J. \( {
                        else7 F. ^! n! `1 X+ u. X
                                @.Destination := assignLObj[1,row];
& a, g( a* w3 h' v0 e                        end;                        5 u& a" `) Z, h& i2 Y" i9 p9 D4 ]
                        newDirection(@);
. V& @& |9 j1 n! N5 S/ r                        @.HasOrder := true;( Q) H! }8 m( D6 L
                end;' W0 {& s+ t# ~* x% p3 h. ?
        end;
4 {0 r( t, d8 g8 Cend;        -- of the method- O! p) g+ B; x
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ; d8 g1 R% E: H  s+ D- _' [7 x
8 {  h4 u$ u; j% I+ m$ |" L" ?
这是AGV_putin中arrive的method。  t2 w. j% x$ g- G) d5 h  B

2 {% D3 [3 j3 F* a$ u: A& l当到达物料速度越高时,这个报警更多,
% Z; y% p( l* m可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。  |$ h0 v1 z- c- C( p! `7 e
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
' h# A% I/ Q; @" c) @) ^6 Z
5 k/ b. M4 w7 ^( B+ w5 P6 d% N另外一个小建议,就是move,所有的move都可以这样
% L4 t# T0 _: g5 [/ Hif not move() then debug end/ w# H! d& B( A+ v# q
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。3 Z) e% a7 k- y& _6 P4 A
plant simulation中的free libraries有AGV模板,
- F- A% k% ]7 U' O" O; U: C里面也有案例。4 T; l# m7 g" u. J/ S& [
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。8 L! @. G, V+ ^% s- s0 h# J% [

; W# P5 u% h" l6 \我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
! V2 v) h0 }8 j0 s
' p0 Z3 t5 D. X那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
6 V0 `0 r( E) }  `7 F: N( \这是AGV_putin中arrive的method。
# G* z. ^2 t+ g1 u" S+ o. N1 y5 K8 s7 j: r! B$ d# L, l/ ]* L
当到达物料速度越高时,这个报警更多,
; a- U( P; X8 Q" W" ~
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-9 18:50 , Processed in 0.019362 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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