设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9789|回复: 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'
4 }% S, @# K4 J3 b6 c# {5 ~& t*/1 t0 z# E$ G0 q7 L" X% }
is
5 u' O; R6 \( V        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
& M% n0 V6 S4 G9 I- s% G; e( s, Qdo, f( r( y# \% p, S0 c7 e
        Lan := rootfolder.Internal.Tools.AOLlanguage;' g0 h" e8 q' r: x0 y1 a/ J. M
        if current = @.Destination -- else return
' H5 ?8 w: T/ e6 @" {  u        then
! N3 w. U7 T+ N                @.Destination := void;/ V. S* x  {& p1 \, V5 I+ [& i
                if @.occupied then
4 _1 j* u5 w; l& Z                        part := @.cont;
2 |3 D/ l* u$ F6 o                        @.transpOrder := void;
' W9 U# q8 W+ o3 x/ x. v0 G                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,$ s7 C% V8 ]; ^
                                @,root.eventcontroller.simTime);# ?) n/ x1 K) A& D
                        @.HasOrder := false;
4 `# r6 h8 r5 T( K+ B2 n( J                        @.DrivingHome := true;3 p8 M( _. h7 h; Y# E
                        rgManager.tryToStartTransOrder;
8 X- M; M; u( C+ j" y0 m$ G% f                        if @.Destination = void5 ?7 H# q$ `6 d* X8 e! d
                        then -- no transport order for vehicle @5 S( X2 D+ _( ~+ |1 A4 _
                                @.Destination :=
0 S6 A4 q) z$ h; K6 {) T; P0 S& s                                rgManager.nearestFreeStation(@,track.~);
6 C6 V8 o6 D/ s                                newDirection(@);   % M% k/ q, B8 p$ P# B0 Y/ S5 [2 ^
                                if @.Destination /= void then
, p0 A$ W2 P% G  n5 }                                        @.Destination.NumReservation :=
: O, u0 j+ F2 E4 I; W2 L                                        @.Destination.NumReservation + 1;
9 ?3 W4 x0 x" S                                end;" x5 s; u, n0 {" \) a7 b* w
                                @.CurrIcon := "drivingHome";
8 I% U0 X5 a7 Z8 S3 Q                                @.DrivingHome := true;8 b9 Y& f1 n: O
                        end;/ J) d, w6 `- `9 V* l/ \
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station' B! A' R% q# X# `& g% h+ _7 O
                        part := @.transpOrder;
( R/ K  p" b, _  x                        part.move(@);-- load part# f$ ?& Y" f$ z# V- r7 S
                        @.CurrIcon := "load";3 k7 S! l! j* w& P
                        GlobalDistObj := part.globDestination;
/ W8 m3 x/ [1 Y$ {  K                        assignLObj := rgmanager.rgAssignL;
" e1 Y9 x) s. O7 v                        row := assignLObj.getRowNo(GlobalDistObj);, _  V, a9 o4 g: {# b
                        if Row = -1 then -- since 70  G$ u. c9 _$ y+ O7 h
                                if lan=1 then( B( S9 M, O/ \2 i0 K" M
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
% t; v" k/ ^* O9 j2 }. B: i                                                to_str("in der Andockstation: \"",?.~.name,"\""));
* K( `- F5 s3 h! ]# X- [; m3 X% [: t                                else* f/ B: B. Y- W# O8 L% i7 i4 ~2 f
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
- S+ [! g/ t$ \0 b  d" x                                                to_str("in docking station: \"",?.~.name,"\""));                               
3 W6 R6 \6 O/ o6 s: q+ |- E* \7 I                                end;
# g/ J3 O: F4 Y- J8 S) e+ b                        else
: O% I+ @& ]! ?, ]. O3 h' B1 U                                @.Destination := assignLObj[1,row];
" h$ ~) Q; `6 d* {! T6 ^5 A                        end;                       
, w1 s+ X0 P: ?: k9 Y+ H                        newDirection(@);3 z! M3 ~! l! z% L5 z3 l: [, n
                        @.HasOrder := true;% c& t) k8 ]; s8 q7 y+ V
                end;
8 y8 M, b9 |0 `% ]4 q) [        end;
+ b. a* P  Y( [6 f* B: jend;        -- of the method
& B2 Z5 r# u# Z" T0 a- Z$ V
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 2 A8 c7 D0 t( X' D

" E4 {' {& l1 c6 g: A这是AGV_putin中arrive的method。
: o1 V3 n) j3 Y6 n- f8 ?! N
5 F7 w1 O8 N! F: f当到达物料速度越高时,这个报警更多,- _( Q$ \; b+ j
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。8 j$ K. w# {8 I- V0 Q
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
$ P1 z$ T: R8 f+ z4 e6 ]
. ^6 b4 w7 b& I: w( [  \( |  }- ]另外一个小建议,就是move,所有的move都可以这样
7 E# N! E/ ~6 o! m1 Z2 q0 {if not move() then debug end
6 v- h. U2 b. J& y1 Z5 e3 V5 M这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
) j$ E9 k% {! X1 q/ p! w  z" Fplant simulation中的free libraries有AGV模板,$ s" d. Y$ q: _" E8 ^! v1 |  h
里面也有案例。
! |1 X2 W1 ]5 l- _* y4 M5 q* l我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。% }7 l7 ^$ E7 v: Z! b  w" L- ^
$ M6 l/ N/ _/ u+ a9 N% l) w
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
1 z6 \5 h2 B; H; i4 q6 s0 g1 Q5 `- s
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08   P5 z2 a7 p7 ^, K
这是AGV_putin中arrive的method。
5 y- W+ Q& M) T# a, I" A" a# D* g% G3 M" S2 a
当到达物料速度越高时,这个报警更多,

2 ~" O: m! u2 Z1 r0 N  \3 }  d' z另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-25 05:37 , Processed in 0.021360 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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