设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7098|回复: 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'" A9 t$ g+ J5 u8 U& M2 s
*/
, S' \0 C7 }& Z) A# Mis8 v* O/ B+ m- X+ |' m% i
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;: G( N* z" O( o, L& R: J
do
( T# L# R7 A" Y        Lan := rootfolder.Internal.Tools.AOLlanguage;7 t* h' T6 A& R
        if current = @.Destination -- else return( t( I8 d; ~+ H3 r" ^/ u. l; I
        then, t8 A7 Q/ \5 i# @* n% N
                @.Destination := void;
* W0 @* t' z3 C! d: A. J                if @.occupied then
/ x9 Z( }* h/ D& B. r5 o                        part := @.cont;, k  ~/ G* k' V, I0 E4 G  E
                        @.transpOrder := void;; f8 P! K. V2 |) g( u% y
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,& D: \6 E1 l* I( N
                                @,root.eventcontroller.simTime);$ {; J. c2 T/ U" l6 ?- a$ l/ h) U
                        @.HasOrder := false;
5 r& z9 q, e1 Q6 P4 d                        @.DrivingHome := true;: ?# s. A2 H+ E) V5 a
                        rgManager.tryToStartTransOrder;
, R. ?) T3 R0 p* D3 o; q: O3 S                        if @.Destination = void
/ ?2 l" A3 U1 o" A/ h                        then -- no transport order for vehicle @, \! S% g, m8 t# U4 k; ^! f% z6 a
                                @.Destination :=4 H3 ]* \5 j) w1 U
                                rgManager.nearestFreeStation(@,track.~);- [/ [1 M3 j  X; |2 I
                                newDirection(@);   % F  m5 {! J1 f. Z' v
                                if @.Destination /= void then; J, [2 b2 [! \8 o1 e: d( Q
                                        @.Destination.NumReservation :=2 U  d0 {9 E6 ~/ h& h9 o, M
                                        @.Destination.NumReservation + 1;/ H& k/ b& p- L  ]1 q
                                end;, V/ A0 F% w; j' L. z! [$ {
                                @.CurrIcon := "drivingHome";
' B  R: L9 }5 P. z, D1 L                                @.DrivingHome := true;
4 n" |6 d# v" i+ Z% c* t) I                        end;6 S6 n7 W, v0 Y- F# D* d
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station  r" A9 \+ [/ t' K+ X6 [
                        part := @.transpOrder;
. \6 D2 y2 u! h+ P                        part.move(@);-- load part; @) ]6 I0 A3 o2 W* c% i5 t
                        @.CurrIcon := "load";( K+ ~  w  k8 _* {" m+ h0 b0 f
                        GlobalDistObj := part.globDestination;
# z- J  j# _4 S& [# [: {) P* X                        assignLObj := rgmanager.rgAssignL;
2 O9 ~) E. k9 T2 B                        row := assignLObj.getRowNo(GlobalDistObj);
" ^0 |7 q6 u( R                        if Row = -1 then -- since 70
. t  s. x) f, I  E* R. Y# y) V( Z' W                                if lan=1 then" Z6 E5 v9 b$ G5 y# j5 }; p
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),  u+ |$ }9 ]& b- o7 B* W
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
# k9 {( K0 e& w/ l* C' p7 n                                else: o+ t; M& z5 C0 Y
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),9 A) {  q& E, I( P  C' Z: u
                                                to_str("in docking station: \"",?.~.name,"\""));                               
( J, v  a) }& B  b/ `% |6 m) N( L                                end;
6 U3 c: A. e0 c4 ?! z1 r, \                        else! g8 B/ q* q8 v( ]: l
                                @.Destination := assignLObj[1,row];6 F7 A& I$ W" B* |* _
                        end;                       
: e+ K9 U6 A4 R! V6 l                        newDirection(@);
. z" K/ {" L6 G                        @.HasOrder := true;8 h! G/ W$ d1 a
                end;  q& x! p" n. ~0 d# y) D: M3 U
        end;
3 F9 P, C, [% K* [/ Gend;        -- of the method# E1 J% T5 K( ]& b' z# M; H4 O, {
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 " `3 e+ P" ^1 D& C
: @. X# p' G5 Z7 Y3 |
这是AGV_putin中arrive的method。5 B7 q5 ?7 J# L( T' p
; e4 \) H8 G# i  _
当到达物料速度越高时,这个报警更多,8 p: B/ j2 ^: c$ @) n& Q
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。. ?: \( }( ^" G
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?7 h+ e+ E# t. P3 L! E! w# d5 E

0 L. X% A' j7 s另外一个小建议,就是move,所有的move都可以这样9 A0 b" d3 v8 `' Z; R
if not move() then debug end2 S5 o5 P; r% ?1 t
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。0 |$ u2 L2 J6 ~+ C+ a' }! `
plant simulation中的free libraries有AGV模板,
' {' I/ A5 ]% x# @里面也有案例。
3 `7 U2 H% D9 S$ Y0 O( \+ f我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
4 g  X; Y' |+ ?+ H& J! J8 Z/ x6 M, R9 n: d( }. Z+ Q
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ' R& j: u# u& R4 l6 i" `2 j& Y  s
! M/ R  R$ K6 |+ ^
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
! i! D& j" \$ D, ?这是AGV_putin中arrive的method。
, R$ z& R3 x2 z" ~, H6 j- h1 }. J) _( A. E
当到达物料速度越高时,这个报警更多,
& p) b% H0 u# ~$ N
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 14:02 , Processed in 0.016667 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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