设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9788|回复: 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'
8 f9 ~% B- `( S" Z2 V& P. j*/: k' T$ B' T+ i! C! i
is
9 K* I* n: w( w' V  u        part, GlobalDistObj, assignLObj:object;row,Lan:integer;6 r0 K* _4 b5 v$ ?  h
do7 n- N* F7 ?" `- k; v
        Lan := rootfolder.Internal.Tools.AOLlanguage;
0 j# L, t# ^, p        if current = @.Destination -- else return  y+ N* ~( _2 Z' m2 y  i. x
        then
" Z% w/ b8 J; ], G                @.Destination := void;  A9 a9 M# E( I: l) [
                if @.occupied then
/ j- B- H; y$ b& S                        part := @.cont;
+ u7 Q3 e1 S3 f7 T* ~9 |) }* |$ h                        @.transpOrder := void;6 L$ K' ~1 i7 \$ o1 C9 ]
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,1 w* z7 i! ^; f, A; v, ?2 y
                                @,root.eventcontroller.simTime);0 J7 I# f6 b" E6 V
                        @.HasOrder := false;: b$ q  S9 L$ K' ]+ A, F
                        @.DrivingHome := true;: T8 Z" D9 }% y0 |
                        rgManager.tryToStartTransOrder;
0 J7 s1 {2 F* Y) x1 q! i* J6 s                        if @.Destination = void( ^" c# ~2 c, D* m0 Z3 E
                        then -- no transport order for vehicle @5 _) j( }1 V' I& K: f3 B0 X! q& k
                                @.Destination :=
! R  {5 |* D9 o5 s- S& I3 J                                rgManager.nearestFreeStation(@,track.~);
; C2 g9 c2 U, ?1 w                                newDirection(@);   ; u1 L3 R' L& U- P
                                if @.Destination /= void then
! S, X6 g" B& O- l. g, i4 t                                        @.Destination.NumReservation :=1 Y8 T' k0 _* A# o! @
                                        @.Destination.NumReservation + 1;
" @/ v5 x3 G- A$ x+ i: Q0 G                                end;0 a$ `# c% N) r% z: w' U
                                @.CurrIcon := "drivingHome";) m0 d: D; R( s
                                @.DrivingHome := true;3 n$ \% ]2 m: W3 p' n) U2 P2 B
                        end;
3 \2 k, @% F- b) |3 y4 S0 m                else -- the vehicle @ is empty, both vehicle and part are in the same dock station$ P* V6 d/ V( k+ w8 R# {7 u0 `
                        part := @.transpOrder;
1 o, I) V. c4 _* ]2 w                        part.move(@);-- load part. V6 o$ m! `6 h% _4 v6 |: ^
                        @.CurrIcon := "load";
" X% g& L  i/ E: l# a$ y; a$ a; X                        GlobalDistObj := part.globDestination;2 y2 ?1 f) l, i5 b: n
                        assignLObj := rgmanager.rgAssignL;
0 p; A9 }+ b! W$ T) q- l3 X                        row := assignLObj.getRowNo(GlobalDistObj);" n6 d) p  Z' s$ m8 E7 a
                        if Row = -1 then -- since 70
, v: f* E4 Y/ o                                if lan=1 then
7 t0 e% D1 ]$ y6 x                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),) u, r4 y6 g/ p8 X1 I
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
# }0 h9 {) L+ K+ K0 `. B9 t                                else" U% ~4 R$ u0 h# J
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
2 B7 a5 Q* p# v: _2 J                                                to_str("in docking station: \"",?.~.name,"\""));                               
) F: N5 }, E7 @" V6 s                                end;
* p7 e# I) L, d  w0 l6 W                        else
! L* h2 T8 X/ q                                @.Destination := assignLObj[1,row];
" P* C0 D/ G7 m4 ^/ h. ?/ U0 `  ^, {                        end;                        8 T" L5 y% S) u% D3 {. n
                        newDirection(@);/ |1 v( i2 y4 G% Z
                        @.HasOrder := true;9 j; ^1 W( l, G: E' K
                end;% A6 W6 J% K% d0 K+ N$ e1 F! Y
        end;) [# Z: B& f+ o
end;        -- of the method1 o( L7 R1 W6 r# p3 q% @- L4 y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
! A5 `. N" ]8 `# f
) ?# q. `) Z9 i( C6 s6 P4 N这是AGV_putin中arrive的method。* f+ ?; ^% g! X; D4 F2 `# n2 E
  ~& g2 `4 E: t3 ^: [5 B
当到达物料速度越高时,这个报警更多,
( Y( V: t$ _% n9 P可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
5 T- N7 t+ G5 l3 T  _3 c程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?6 H# V  s, z8 D0 G
  l: |9 W$ m) x
另外一个小建议,就是move,所有的move都可以这样
0 e6 w9 w/ r& b! V6 Xif not move() then debug end
1 v+ b6 \+ a6 ], }  ^# E  Q7 t这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
* \& W  M9 z( d" f+ Pplant simulation中的free libraries有AGV模板,, b( F- `" a1 n& M' q6 |. O
里面也有案例。
/ C2 y" C* H  ^+ B我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
" n; V8 q+ ?6 i3 I2 @
) ^3 A" t+ x7 t* O5 w8 S我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ' \+ r, t4 H- @, o7 {+ B! k1 I
  F7 m1 N. j  {; E! z8 j
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ' B; `, A$ n8 ~2 M/ D4 c
这是AGV_putin中arrive的method。
( d& d7 w1 J3 R7 O5 z8 o4 A- n  q# V' J% T
当到达物料速度越高时,这个报警更多,
7 R( e# v% A/ C2 w0 {9 J
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-25 05:24 , Processed in 0.020170 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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