设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8637|回复: 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 l( y! Y# S% R9 h8 S*/. J/ ?. A# t8 \3 H( O8 X' V- h
is8 G" v9 x- s0 @5 J. l) e7 h4 F- L
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
8 i% x( M: Z' v  n3 {7 Vdo$ ?3 c$ P+ E0 |2 P2 a
        Lan := rootfolder.Internal.Tools.AOLlanguage;& u, D+ g& }& }% j8 x
        if current = @.Destination -- else return2 w9 g( @4 a# k" o' Y# t( m( h
        then: b, N5 g3 r8 f$ V9 D( u( c: M: M
                @.Destination := void;) P$ \* o9 ~5 n8 ?
                if @.occupied then! u* f+ T! b, q# }
                        part := @.cont;
& M: R6 ~! u2 j+ Z/ E                        @.transpOrder := void;
2 J0 ~  }7 y: Q6 z4 a6 S                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,: l; h" x( k3 q9 |. t# U( p3 I6 J/ ~
                                @,root.eventcontroller.simTime);
! |3 T, U& t4 K1 T" @                        @.HasOrder := false;
* [, l- n% }/ L, I                        @.DrivingHome := true;
4 D+ _% l& v5 A5 V                        rgManager.tryToStartTransOrder;+ G, V( o9 t+ ?4 g2 h3 l& U
                        if @.Destination = void
) F3 E  j) b5 Z8 y/ ]                        then -- no transport order for vehicle @/ A7 ]! s8 e9 [- t# r
                                @.Destination :=
4 [. S& R: {" L) c0 M: v3 G1 I                                rgManager.nearestFreeStation(@,track.~);
8 ], |7 x+ Q, [+ I                                newDirection(@);   ) F5 w( y( Y6 ~+ j, |4 Z% l4 k7 M# c/ S4 w
                                if @.Destination /= void then7 f0 ^: C/ e, R9 D" q6 Q( T8 a
                                        @.Destination.NumReservation :=
' @- I" l* F; J: a7 {% |, y: S1 j                                        @.Destination.NumReservation + 1;
1 E" _6 Q2 _8 }' v" I4 g5 W                                end;( v, ~& X4 w8 V) Z
                                @.CurrIcon := "drivingHome";
: M6 A) c8 {# t9 f& l                                @.DrivingHome := true;  R; r7 j/ p- z7 l  u2 `9 E
                        end;
4 g% _# i: _! o% T                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
0 Q# D  a6 H& x3 }                        part := @.transpOrder;; L2 m5 D* K: o5 J
                        part.move(@);-- load part
3 z5 d8 p, O  T" M, l& \$ X                        @.CurrIcon := "load";* y; g& T9 e) L  Q& D; B; V" W
                        GlobalDistObj := part.globDestination;
: V' i- @+ U  B6 z4 P3 J                        assignLObj := rgmanager.rgAssignL;4 Z9 G) E$ g0 t9 F0 i
                        row := assignLObj.getRowNo(GlobalDistObj);
8 B  z0 {, ]6 |9 H* {! W                        if Row = -1 then -- since 70
; U2 i0 f1 k# u                                if lan=1 then" l8 q7 ]# G" {" R
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
5 F) b5 r# D: k4 z$ n: r+ d                                                to_str("in der Andockstation: \"",?.~.name,"\""));. E7 K0 [! ?+ S5 b0 C8 Q
                                else" r5 I# p4 ?- e! v+ v# q
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\"")," ~8 _$ U( b/ ~, g* p5 T  s: H
                                                to_str("in docking station: \"",?.~.name,"\""));                                . ?4 [2 d4 l+ u. E0 E6 z
                                end;
- X( g8 k  k  Y* k* x& u  z" B) c                        else0 S0 A0 g9 T& W1 `3 y( b
                                @.Destination := assignLObj[1,row];
2 ]& S% w. h! h# y( r4 o                        end;                        # P7 p2 s1 O, B& c9 Q% C& W) O) J
                        newDirection(@);
! `$ \$ W' Q  A/ A( P8 E8 {                        @.HasOrder := true;
2 G+ B( I% u7 f4 N$ w2 w  o                end;
' C/ K) s2 t# M0 u/ v. G        end;
- j( d2 ?- u$ Y, b6 Z2 r- R5 kend;        -- of the method
4 D/ G, T" `3 F  r9 H
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 * v# v  @( e9 V# ~, _
$ p* a* S" U3 o5 R: {2 ]" K
这是AGV_putin中arrive的method。+ Z4 X0 a& {4 d% G6 B

8 f! o+ l: I! X: }$ U当到达物料速度越高时,这个报警更多,( K, G  e% e6 U# `4 n! T
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。5 H$ S- \6 a% C  G
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
" u3 F0 ]  V( Q+ a. i
, A/ m/ A  F7 v另外一个小建议,就是move,所有的move都可以这样0 g8 s" X1 g+ S# |8 R
if not move() then debug end! m* P. P) u/ e, b% V  }
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。$ v! {3 j5 @+ C, T
plant simulation中的free libraries有AGV模板,
8 i' d- b8 G4 M, L& ?) p; K里面也有案例。7 b4 G8 A. c. r+ |2 R
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。2 i1 ^8 I7 I& N+ S3 Y! Y+ l) M4 o
4 R( f# y% b4 a2 i& l5 E3 g
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 " a. }  w& q3 r/ W+ s% ^/ e9 Y) L
' U/ c, o2 c) t* C* l: S! s- v- E1 T
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 3 Q' b* ~; B8 p# {
这是AGV_putin中arrive的method。/ ^5 ~5 K; B2 Z
, Z' N) ^; J" |0 @: ^) F+ t
当到达物料速度越高时,这个报警更多,
5 m- A7 A% s7 T* _" X  Y8 F. Y
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-17 13:49 , Processed in 0.015951 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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