设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9569|回复: 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'
9 }3 ^2 |) Q5 e2 Z1 ?' ^0 r*/
- `% r3 ^& }; j: Ois
7 P- z" z" Z! K/ ~( C3 f* r/ _3 @        part, GlobalDistObj, assignLObj:object;row,Lan:integer;8 z7 S7 _& d+ @% W
do" I! D( h7 X) _* Q1 j
        Lan := rootfolder.Internal.Tools.AOLlanguage;
4 C2 T0 P( M9 `. a2 R$ C; k8 \" p% z; Z' u        if current = @.Destination -- else return
- Y2 G- m6 g7 u4 U% |) j        then
% E2 W2 K5 n0 L0 r5 K                @.Destination := void;
) a$ x" M) _7 F' u0 ?, j4 A                if @.occupied then  L& S" F; W4 c3 O
                        part := @.cont;* {/ }+ m* _! G0 q
                        @.transpOrder := void;  o3 m# g+ I: e" {+ \
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,8 j. R+ c$ |# d3 {3 n, b0 t
                                @,root.eventcontroller.simTime);; k& h4 ^- I+ D- x5 G% G
                        @.HasOrder := false;/ M4 [/ t" Q! b. P/ y3 \
                        @.DrivingHome := true;
" r& O6 E$ w" m) Z9 E; F$ {                        rgManager.tryToStartTransOrder;
$ \0 c  A8 W6 p' Z. @                        if @.Destination = void  v6 Y  ]  N9 j% @# O2 b
                        then -- no transport order for vehicle @
* L' z6 N0 B& b) m& g                                @.Destination :=
3 _8 B/ s* ~/ N. @                                rgManager.nearestFreeStation(@,track.~);. S- T! L! }7 H! Q- }5 w- u
                                newDirection(@);   
4 A5 n* p/ C: L8 \+ A+ @9 Q                                if @.Destination /= void then5 j0 y1 P  z3 C4 ]  E' U$ E! @) G# g
                                        @.Destination.NumReservation :=
. Y3 b# F; W/ Q% K                                        @.Destination.NumReservation + 1;
) Z- m: y' o1 R  U, L# [4 i                                end;8 \% b, D/ U, W% j5 j. h
                                @.CurrIcon := "drivingHome";' H2 `1 s) S+ R' N4 G7 p  T! M
                                @.DrivingHome := true;, D' P4 n/ W( F7 ?
                        end;
8 {, g& b. I2 j                else -- the vehicle @ is empty, both vehicle and part are in the same dock station' m( j. s! R8 z+ y: b; _- g) U; E2 `
                        part := @.transpOrder;3 c3 i- E$ n5 n- K
                        part.move(@);-- load part- P* y. w. Q( e+ o3 t1 A4 G
                        @.CurrIcon := "load";, Z# o3 y; W, R) a7 O& S
                        GlobalDistObj := part.globDestination;6 T2 r/ h; P& e
                        assignLObj := rgmanager.rgAssignL;# X$ x9 E- n/ r' c# `' C. M/ n
                        row := assignLObj.getRowNo(GlobalDistObj);2 K( K- ?& r' |. y9 v+ a
                        if Row = -1 then -- since 70" {- f. k) v) s/ n$ }3 m
                                if lan=1 then
8 S0 `0 _) d; g& }2 s" g8 e6 N                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
! W8 }: H( j8 x, \/ i/ f7 c' p, X                                                to_str("in der Andockstation: \"",?.~.name,"\""));# ^2 ?% g% g3 k' d
                                else. t  S/ e" G, c: t" H; Y
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
! G! K" V) M; h                                                to_str("in docking station: \"",?.~.name,"\""));                                # x' F+ Z; \" {+ N5 {, q; M" m
                                end;
+ C- [2 @  {& [3 T9 H) E                        else
8 _0 w. J7 ]( m. ?; E8 N                                @.Destination := assignLObj[1,row];
: @9 E) w% e+ x+ ?8 D( a! ^) ^' i/ D                        end;                       
3 Z' S3 I3 m8 K/ p                        newDirection(@);9 s) A: I) R* Q% A' D: j, v0 s
                        @.HasOrder := true;, b; x8 f! K" g" ]' k5 M  i
                end;
( o0 W, i) ~; h        end;0 k# {( Y, J' T/ f; H
end;        -- of the method
* g4 X2 n# W3 n- r, a$ I
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
- _( j; p4 ?. B( S& q# ?3 }/ K+ o* b
这是AGV_putin中arrive的method。
) H) B9 b* p% n# L  t/ P2 E
$ ~9 o6 C$ K: b6 l0 s当到达物料速度越高时,这个报警更多,
/ u+ c6 J( Z$ `  r: o, H+ W' s" c0 R可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
8 N1 U5 M  q" ?8 F程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
. w! l1 i+ |7 S5 F. J. ?: [, z3 {  }( l; A' Q" h3 V$ J9 |
另外一个小建议,就是move,所有的move都可以这样9 |/ L3 u% u* W
if not move() then debug end
9 J, {5 |8 P2 ^2 o" }这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。6 f4 p6 G8 p& m
plant simulation中的free libraries有AGV模板,( A7 l/ h7 d5 j9 D$ E$ ]
里面也有案例。6 A2 a9 h- X% R( ]$ [
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
1 W! F8 y6 X2 \& c  ?8 u
6 C1 j7 O! x1 C* X. v* F8 r5 A4 K% Z我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ' M8 D; _8 r7 Z1 t' A/ `  V

* c! A5 q2 e1 n) E* @0 {8 k7 y那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 - j+ d. z( J, W/ H) @" h9 r$ v
这是AGV_putin中arrive的method。
* ?5 x( Y& j& \% E+ ^' d
' B* M5 {, z; s. S当到达物料速度越高时,这个报警更多,
# d# e( {6 p' q
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-8 20:13 , Processed in 0.014579 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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