设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7748|回复: 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( H$ c9 I" Q2 o1 F*/8 L! ?  t" j6 q' f# v2 U
is7 d! C) ]5 W5 F' A+ w
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
' h5 w  v% F2 u- u' _/ ldo
# \) X, v0 @  P  ?4 n; S  ?* w        Lan := rootfolder.Internal.Tools.AOLlanguage;) j0 Y# @' q7 Q0 s1 b
        if current = @.Destination -- else return
8 w' B2 `; k2 w' |4 h% p4 n$ J, a        then
) ^, i% X  D# G; c" _% x. v5 l& l                @.Destination := void;( n+ D( a2 t7 I8 I- H6 i  A  N
                if @.occupied then
" t; K+ o2 b8 ]$ \8 ?8 k                        part := @.cont;
3 t/ Y; g; |& ~) I2 N                        @.transpOrder := void;
! ?9 p+ @& w- @, h+ c0 R  K+ @: h                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,9 c1 M3 D) Z* C7 j, t
                                @,root.eventcontroller.simTime);
1 n: N2 _2 ~  l                        @.HasOrder := false;+ n- n' ~- G4 p3 o: {- Z! W
                        @.DrivingHome := true;
5 K& F6 r  _; L1 y( y                        rgManager.tryToStartTransOrder;& i$ q* V8 \% M6 `9 H: `7 z
                        if @.Destination = void) ~; V0 ?# l: d; x6 }& n. C
                        then -- no transport order for vehicle @) W$ d, J7 r, Y. g4 I# b
                                @.Destination :=- @# Y7 T% B( l7 U2 O
                                rgManager.nearestFreeStation(@,track.~);7 {, G8 C3 {2 R4 J8 X
                                newDirection(@);     T/ f: L" H2 y0 B& h$ m! [
                                if @.Destination /= void then
& X4 K: ?" m  v: x                                        @.Destination.NumReservation :=- M, D, K  s  X9 m! ]% ~5 X9 a2 B
                                        @.Destination.NumReservation + 1;
2 c/ U8 Z7 l( [1 I  }                                end;
0 x1 F& I' Y- `                                @.CurrIcon := "drivingHome";* c3 s; s; N) ^9 I6 U2 f1 }( G
                                @.DrivingHome := true;2 E+ s! ~  W. m& I5 i0 f0 ^  u& E8 ]
                        end;5 ?+ h  u% c0 @
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station' b: Y% x, v  o! z8 g/ O; M" U
                        part := @.transpOrder;" P3 Z9 z* d7 o9 D6 T; p
                        part.move(@);-- load part
, |& Q4 y8 ^3 P                        @.CurrIcon := "load";8 C# A) z2 b2 I" \2 S. a5 Q
                        GlobalDistObj := part.globDestination;
; U" ?! ]6 i" t5 T( K                        assignLObj := rgmanager.rgAssignL;
2 k+ z) D; G& A1 v                        row := assignLObj.getRowNo(GlobalDistObj);# O6 K5 O" n( z, Q/ H; w
                        if Row = -1 then -- since 70: J4 B6 R4 _5 w8 I1 \& A& a
                                if lan=1 then
4 R  v2 a: Y- A8 ?  j, y, a                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),* `3 I1 @7 g8 _
                                                to_str("in der Andockstation: \"",?.~.name,"\""));* a5 {1 ]1 o2 k# F; e8 S& M
                                else& F2 T" ]5 E, d0 r1 v3 q( }( S
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),4 ~; \) h( `+ g* F) H$ a3 S7 T
                                                to_str("in docking station: \"",?.~.name,"\""));                               
4 G- i  N! [$ V0 f& y, a. N                                end;% Y2 a% @9 q6 N9 g0 u
                        else) I' G8 p: g' q" L
                                @.Destination := assignLObj[1,row];" N+ p1 g/ N' o- f# h. s& Q
                        end;                       
7 C0 ?- k/ C  S7 h! z. X                        newDirection(@);
% W  p/ b4 n, z7 ~3 Y  y                        @.HasOrder := true;) P) Y* Z2 ~4 [2 x- y0 M# C, R
                end;! j, c4 d6 f: P* S* H6 i' }' x
        end;0 z3 w$ M( a1 d
end;        -- of the method  @9 y! O& i) j) K/ D( w' _- e
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
1 T$ \; ]  Y, i
, d8 n% [* _) i* \4 ?# Q这是AGV_putin中arrive的method。
0 d1 E' X$ W0 L# Z8 e( Z
) y# O: I; h, K: j1 x8 x  u3 J当到达物料速度越高时,这个报警更多,0 u$ b7 d3 [3 ~2 J2 ~# n! F8 ^
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
! K7 `- U6 c( C0 W1 e# d' a5 R& W程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
# i; ^  `1 |4 V1 r6 s  Y# A, {- ?# u. e' B2 e8 h
另外一个小建议,就是move,所有的move都可以这样/ ?9 F+ g! c' L! `
if not move() then debug end
1 v  d3 |7 r% G; ~这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。3 _  W. G7 k8 \* [. b0 S
plant simulation中的free libraries有AGV模板,( g) ?  [' c' F9 ^- v
里面也有案例。+ r$ ]/ ~8 ^9 E- q9 n: M. L
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。4 ]0 U, Z$ s3 x/ H2 U+ s1 u
+ R6 U: `3 v# Q7 m3 Q+ s. u+ P& q
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 6 p5 L5 R; G# R

$ v2 f  B& ]! x那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
$ x& k. P- H5 f& M% j+ |这是AGV_putin中arrive的method。- f: h) E5 ?, R# s: m

9 m# V. q8 b9 M# w2 N- ]1 J3 ]当到达物料速度越高时,这个报警更多,
7 Z3 A3 Y* `5 m( ^7 X' ?
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-27 17:51 , Processed in 0.016678 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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