设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9686|回复: 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'
. c! o& V7 \0 u2 R8 U*/! g8 f; a; U1 @: `% O4 L0 \
is
+ i6 D  B. L3 c9 D/ t        part, GlobalDistObj, assignLObj:object;row,Lan:integer;$ z$ i" w: M' z1 ^8 P0 W0 g1 E6 u
do
  y( H# [: T9 @  @        Lan := rootfolder.Internal.Tools.AOLlanguage;) B5 q, s9 w) f3 |0 x- f
        if current = @.Destination -- else return! D& A5 a) h4 B9 a) B1 q
        then5 a' U% a% C/ U7 w- b+ j7 h
                @.Destination := void;" m3 [) a! J7 _' @# N9 G6 x
                if @.occupied then
& f2 h; o7 [9 r                        part := @.cont;
5 \$ g2 M" s  K                        @.transpOrder := void;& l" C% G" L; D5 r  g9 o0 }
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
* C! k2 j% K+ J0 C" z                                @,root.eventcontroller.simTime);( {3 ^: \7 x5 d
                        @.HasOrder := false;
/ F: q* q. Z& h; N: l* L                        @.DrivingHome := true;5 U7 n3 z( K4 x  _& C
                        rgManager.tryToStartTransOrder;
& E/ D, P+ S& S4 D' l" W                        if @.Destination = void
3 b( G; v7 A4 R# x% ?                        then -- no transport order for vehicle @5 ]. m0 {5 H/ S
                                @.Destination :=: Z1 ?8 g9 p% _# h5 b4 F  A
                                rgManager.nearestFreeStation(@,track.~);6 k( p  w6 a, ?3 a+ a
                                newDirection(@);   3 e5 g( q7 M( w( M
                                if @.Destination /= void then; n8 T. m) a( O: {1 T+ Q
                                        @.Destination.NumReservation :=
; W6 \) x7 z" Q                                        @.Destination.NumReservation + 1;( ]+ _8 O2 F$ u" _8 t6 N
                                end;! b* U5 v6 {  M0 I" [
                                @.CurrIcon := "drivingHome";
6 r: b' |3 C; S& y                                @.DrivingHome := true;
# s. N* \- V4 N/ i3 E1 k                        end;
4 Z; N. v3 o. Z7 ?" Q                else -- the vehicle @ is empty, both vehicle and part are in the same dock station) q: i9 \9 {; |0 B# ^- B- p6 {% e
                        part := @.transpOrder;
5 w9 f& G8 E  L' j: S) `  r                        part.move(@);-- load part
: I. D% y# |! |& a5 b7 n/ V2 U                        @.CurrIcon := "load";/ H* h( _3 d# o5 J& s
                        GlobalDistObj := part.globDestination;" R' w6 }( i* l4 x% ^3 i
                        assignLObj := rgmanager.rgAssignL;
5 W0 a. H' I8 [* |% ~                        row := assignLObj.getRowNo(GlobalDistObj);
* S: T+ w3 x  }6 \: \# A4 c9 Y                        if Row = -1 then -- since 70
, h, u' j: F0 G+ s1 \% c                                if lan=1 then
. t" h( d! c- B, @                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),* H8 \1 K+ N2 k" r4 E( B' @
                                                to_str("in der Andockstation: \"",?.~.name,"\""));- I  l+ [2 A8 ]  S% N
                                else
: u% d# L& C- B7 m' H/ y1 K- K+ F/ O                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),; b0 f9 z, P0 E; m
                                                to_str("in docking station: \"",?.~.name,"\""));                                + R/ L1 J* f: x: V) B
                                end;
: L$ U0 M9 d6 g. u% }# T                        else5 k. r5 U! Y6 m9 |. y- T# j
                                @.Destination := assignLObj[1,row];
5 W# X" q. M9 O                        end;                       
' R" r( i% K- D                        newDirection(@);
7 m# z# h% I! U( ]                        @.HasOrder := true;
' a* h9 x  u$ G5 V% L                end;8 Q' k- \( }& E8 M, d: s
        end;! c. u  O: E. ?" U
end;        -- of the method$ o0 O/ G% d7 K# U. N* q
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
8 `' T, j- \7 k7 a' }* B7 c
# I; u- k( c- p1 w% g: V这是AGV_putin中arrive的method。
6 n* C7 w+ O7 |" v, I9 h& p2 R
; L4 p5 E- C: ]5 T/ u# R, U. u当到达物料速度越高时,这个报警更多,
- e3 E( m) ^& Z3 ]* z- V4 N* T, k+ ~可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
: y% b5 c( ~; K) b程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?4 b3 \4 ~' R; Z. t

- c1 ?7 t5 m+ R$ w另外一个小建议,就是move,所有的move都可以这样
/ ^7 m6 P8 s  m, A% uif not move() then debug end5 z  d* D+ u( D' n6 ?$ a; k" |
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。; p. B+ n8 C( j. t/ B
plant simulation中的free libraries有AGV模板,& k: {2 g- K/ o* V6 g% a
里面也有案例。
8 e& B/ D! m, ]' B( }. f& ]' v( x+ t, z我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。( Z( C: d4 d) Y+ N% A. A. b+ H
" c! w; j" f. Y/ v8 ~
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ( c  r9 U4 m$ V* l
/ [/ Y% G. g$ D
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
/ x2 d6 k  q9 j+ ^% F& c这是AGV_putin中arrive的method。+ F% F) L; N, f- I+ J. }
0 g. o- l" j' x7 y4 K
当到达物料速度越高时,这个报警更多,
9 z5 W* X, _' i. K" w. e9 E7 B
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-17 09:29 , Processed in 0.018735 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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