设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8855|回复: 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'
! }7 O* X( s2 e9 @( w6 m3 W*/8 `$ e* @' T7 O3 v; f7 i
is
6 q5 Q6 v) N3 M; Y! l$ r+ g) N/ Q        part, GlobalDistObj, assignLObj:object;row,Lan:integer;! R+ r9 R: T( s9 F9 k9 T. i
do
- ]9 B7 h* Y* f+ y( t+ u        Lan := rootfolder.Internal.Tools.AOLlanguage;+ [+ H4 P  E, B/ c  u# {
        if current = @.Destination -- else return
- y5 ~" ]4 }3 _4 x' {. H        then
3 v: G1 Z% x3 i" m2 @+ }                @.Destination := void;" k/ J  S2 J* t, W  k- t3 u
                if @.occupied then' g+ X" V, Q7 R/ c9 y8 ~- g# e
                        part := @.cont;
0 w0 z/ C' v/ P4 }% T                        @.transpOrder := void;
; a3 o+ J1 K) v- k7 j  P                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,, i$ n7 @- l" m5 t  c
                                @,root.eventcontroller.simTime);) P5 k: T8 T  e* y3 i
                        @.HasOrder := false;
: _' O& ?# ?& b2 X6 u4 Z6 R* j2 Z, d                        @.DrivingHome := true;
" ]6 m! u" H6 v) ~- x8 V                        rgManager.tryToStartTransOrder;* G, @5 h8 U, r6 E9 p( E' V: [
                        if @.Destination = void
+ ?/ H6 F' u3 N8 t( `                        then -- no transport order for vehicle @
* m" u( b& \: F) {+ a2 |/ q                                @.Destination :=- m9 n1 ]- r: o1 u! ?
                                rgManager.nearestFreeStation(@,track.~);
: V6 X* b) ^# K5 {6 h                                newDirection(@);   & s% _$ o6 x; ]0 D8 m& |, x" k
                                if @.Destination /= void then
7 d% r- D2 v& l8 H$ u& D                                        @.Destination.NumReservation :=
: K6 I7 v( g5 q! v                                        @.Destination.NumReservation + 1;9 f5 [+ @& ?3 Z
                                end;
/ s5 N8 H& ~6 e% @' m" |2 ]' o                                @.CurrIcon := "drivingHome";- v+ Q% k  ~& N1 _+ B5 b
                                @.DrivingHome := true;
/ B7 B) c1 B1 N! }                        end;
7 C/ C: L! q1 _% F7 \; `                else -- the vehicle @ is empty, both vehicle and part are in the same dock station$ W6 B1 N. Z: |" E5 v
                        part := @.transpOrder;
  I' _2 }, k! Z' Q                        part.move(@);-- load part6 Q& M. }; y6 C5 ~' Q3 s$ K
                        @.CurrIcon := "load";% |' e1 P" _* z' V7 w. K, s, j/ h* I
                        GlobalDistObj := part.globDestination;
& U" t9 D: L/ f* v7 F- @                        assignLObj := rgmanager.rgAssignL;# q) z2 e+ N, b& m
                        row := assignLObj.getRowNo(GlobalDistObj);3 ]. o6 h4 r3 ~8 T1 m3 D
                        if Row = -1 then -- since 70
, R& W0 t9 u+ ~( M                                if lan=1 then
! y: c; t. n  k$ d4 F8 C' E                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),2 r& Y2 L" @+ t/ s
                                                to_str("in der Andockstation: \"",?.~.name,"\""));  N+ q. }6 f1 K1 p
                                else  m' f! _6 P8 Q" B: R
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),! d( d( z9 q2 F& C
                                                to_str("in docking station: \"",?.~.name,"\""));                               
3 ^+ ?2 @8 ]6 D- Z# x                                end;% b+ q. W$ p- V% q9 w* B% U6 n" I
                        else! E/ @* \& U- Y+ K! g7 m
                                @.Destination := assignLObj[1,row];
# a! Z. d# R* j& ]" S9 V3 n& r                        end;                       
& k1 }/ C" f9 x/ b+ u                        newDirection(@);" r& _8 s9 Q) F
                        @.HasOrder := true;7 R  s% T, @; O7 Y, m
                end;
& w8 d. _  c/ L        end;% B9 k- d  Q2 J. C: T/ O1 _
end;        -- of the method6 l8 t! t. A' j
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
! W! `/ X* k/ }* E
' k$ W( m5 `! r# N4 M$ z这是AGV_putin中arrive的method。0 {, o" [8 B8 v+ e2 E8 C
, s; m: K, f- g" I+ b* {
当到达物料速度越高时,这个报警更多,7 O- i" N; F9 l* K8 J; ]: D
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
; c% `' G7 e6 Q6 x6 [  u2 Y程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?; \6 W2 ~+ v9 _! Z

/ q& O. k; b! V4 a: ^/ q; M另外一个小建议,就是move,所有的move都可以这样- D/ p- ~( y7 V! N7 @- o- B
if not move() then debug end
. `( j6 ^5 H5 f, ^这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。# \7 M' C- S4 o* i- k
plant simulation中的free libraries有AGV模板,$ @$ x+ W" `( g1 D
里面也有案例。
2 |; F* D  ~7 g/ @( o) l我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
  G% H+ [1 @" g# P* Z/ n1 a; o. Z
3 u* x" @& a+ q$ q我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
6 Z4 T0 q5 J% p' B  p
6 _# H$ y' M+ D那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 , S7 L6 x# A1 k; ?
这是AGV_putin中arrive的method。
- ?  n2 p9 D1 ~7 w4 ~$ c9 G( I6 t) w* m! M0 K7 J% d
当到达物料速度越高时,这个报警更多,

: o$ p' {' W7 O8 C5 V$ ?6 |9 `/ S+ C另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-30 12:51 , Processed in 0.015489 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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