设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6930|回复: 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'
% L" E3 f1 {2 l# a, a8 d*/- [2 k& K. Y/ y; @; r8 `0 k
is
2 ~, `+ I& [0 n7 j: T: k& v4 |        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
# K- \* J$ @0 edo( o8 D. T# v- B
        Lan := rootfolder.Internal.Tools.AOLlanguage;
( n1 e0 i) D1 |" R5 w# @6 M        if current = @.Destination -- else return
7 O$ R2 E$ x. x- y- M; j        then2 E# @& J! J( k  r
                @.Destination := void;
$ Y- v. `8 V; s) B                if @.occupied then
; c5 p7 O/ P! E3 G+ Z- Z- |                        part := @.cont;+ R$ i$ G2 z+ u" w- p& ?' j
                        @.transpOrder := void;6 j3 e4 E" S7 n
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
# R( g: Z. o$ }& I                                @,root.eventcontroller.simTime);
$ U: h2 n7 ?2 l# E. z                        @.HasOrder := false;
- y! C$ c6 d3 Y! x8 }                        @.DrivingHome := true;( j' V5 S) j2 K6 r& p
                        rgManager.tryToStartTransOrder;
4 C/ E/ B) z7 L" R; K8 ~& T                        if @.Destination = void. h2 G% J9 S7 D: d
                        then -- no transport order for vehicle @0 h, Q! a% ]7 k: l& i( ~9 [
                                @.Destination :=
2 u9 W) w. e8 Z6 y$ r  P  E                                rgManager.nearestFreeStation(@,track.~);
0 F. d  N1 ?% W                                newDirection(@);   
4 b4 D' ^8 W# y( u( w* Y6 y                                if @.Destination /= void then
: k# Y8 _' w# k' A4 e                                        @.Destination.NumReservation :=
9 B! b1 e5 s0 }7 _# n' V2 f0 @                                        @.Destination.NumReservation + 1;
& P. f7 c+ `* w                                end;
) I! ~3 W3 i/ ]. T3 U& K                                @.CurrIcon := "drivingHome";
9 [1 ^( d' u- {7 K/ Z                                @.DrivingHome := true;' N3 L2 o/ ^' b
                        end;4 L1 }- i# o  b; }( t
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station. W8 Z5 i% d6 p8 X1 k* e! }
                        part := @.transpOrder;
/ I: _) @& w+ S* _+ Q                        part.move(@);-- load part
2 ?' P7 n4 O- @9 }- ]                        @.CurrIcon := "load";
- [  A6 Z% \9 H. {+ G                        GlobalDistObj := part.globDestination;
4 K( b( s5 [' i0 s% ?7 i; w                        assignLObj := rgmanager.rgAssignL;  t  Z5 a9 u) L% m0 i! b, h0 s+ U
                        row := assignLObj.getRowNo(GlobalDistObj);
" v3 f% k# x' h, U* _+ X5 w: a                        if Row = -1 then -- since 70& C5 d# V( A2 j0 F. V
                                if lan=1 then2 J( o1 H6 ~+ B
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
, r& M0 A# y( ^' L0 ]7 g                                                to_str("in der Andockstation: \"",?.~.name,"\""));
- |8 H  `! D0 G8 |+ V                                else* G3 p, j7 m* m, A
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),7 g4 k& P$ l% W& \
                                                to_str("in docking station: \"",?.~.name,"\""));                                - T1 a% B5 m; ]
                                end;& f1 p! s6 k0 L2 w( _
                        else/ }/ e: o4 ~$ Z# U
                                @.Destination := assignLObj[1,row];" s7 Q- G7 d! z% w: u+ O; f
                        end;                       
/ i) V' {# w* q  S2 e                        newDirection(@);) N# Y! k0 y- P1 r, D
                        @.HasOrder := true;
+ {: x5 _) P. J& V! b                end;
$ x3 u) a1 I. }; ~        end;
6 _8 B) t" G2 r2 dend;        -- of the method, J* T9 r4 w3 M. @0 z1 ^
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
7 U% Y! ^' U$ h. s1 D2 C. ^( K0 f1 |$ P
这是AGV_putin中arrive的method。
4 H# c4 Q1 N0 _. O5 c6 V6 J/ d6 ]6 N2 f9 }3 d. e! C
当到达物料速度越高时,这个报警更多,' E# d$ i; _0 I
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。$ n! E: p$ `3 ~" J6 {! J9 G: a: h
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?! D1 U  A- @7 \7 N1 Y/ T
5 t; S% ]4 I" ^+ K; N
另外一个小建议,就是move,所有的move都可以这样
, Q5 ?4 b  U, M: A% e( I+ pif not move() then debug end7 `) ?$ T" l1 E' }
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。$ U' O- j& p& a% T" P7 Z
plant simulation中的free libraries有AGV模板,
6 {! X0 D3 G# B/ \9 L: m  r里面也有案例。+ `2 r) H. O, X  i! P2 J9 K
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。* X" f0 h, v- F- H" }) S

% }! q" q) J! i8 ]  S/ ^我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 8 J  h/ {, E) Y7 H+ |1 i: c7 }2 b# y; w

7 h4 J7 m: `9 |! ]/ h3 U那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
9 g; ~5 K7 B4 t- d这是AGV_putin中arrive的method。- H4 w$ F: U8 E8 s. n+ |$ q
9 D& N+ j7 d9 E1 B6 M* |! J
当到达物料速度越高时,这个报警更多,

# [( m+ U; a- C" s* n5 ?另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-7 05:03 , Processed in 0.022380 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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