设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8440|回复: 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'0 K8 [8 X; A! n) }; v: c3 p- s2 ~
*/3 r# T( N8 a, `  P; p4 x( G
is' `* J* v" x( A) F/ w/ S& c
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
+ y6 X0 h0 n4 J# K2 p' w' @do" K3 Z3 {. u# _" b4 d
        Lan := rootfolder.Internal.Tools.AOLlanguage;
) q9 V, }+ L, f) M        if current = @.Destination -- else return4 g5 a% E9 K+ X/ u1 ^
        then
& P$ t& D$ M; b' S4 c- _; z0 Z& ]" O                @.Destination := void;
/ u. `  T, ?' P3 ?) D# P                if @.occupied then
8 _4 a6 Z6 |6 s# {: e6 _3 e3 W2 H                        part := @.cont;
6 o7 Q6 V8 `4 O. x1 o/ e- M) e* z                        @.transpOrder := void;  y. ^* j1 K- ~1 u- p- @/ i
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,6 w3 m, @, S' k, ^
                                @,root.eventcontroller.simTime);
) F  s2 B+ ~! Q! @+ J7 f                        @.HasOrder := false;2 I' H2 T+ w& \' [2 B4 D
                        @.DrivingHome := true;0 ^) }: n3 h- S7 R
                        rgManager.tryToStartTransOrder;
, E8 C. w6 g: o. _2 X2 w7 A1 b: e                        if @.Destination = void% \! ~" R/ R( z; k6 S( W
                        then -- no transport order for vehicle @& |9 ?# o% m2 o/ G: K: H4 J
                                @.Destination :=0 h& n, ]- n. u% M) X7 @" m- \
                                rgManager.nearestFreeStation(@,track.~);
3 s! h4 @/ G" Z7 ~6 j  }8 j                                newDirection(@);   
! I$ H3 j6 e! G3 z                                if @.Destination /= void then" f. H/ J- `7 [" H
                                        @.Destination.NumReservation :=' a8 A1 e( b, _4 z0 |8 y# X3 r
                                        @.Destination.NumReservation + 1;( e. [9 ~/ H+ B2 m( a2 ~3 s
                                end;) y. Q8 B9 h' I$ e# }
                                @.CurrIcon := "drivingHome";
8 V3 ~5 t! E, P8 \& ?/ f                                @.DrivingHome := true;+ }+ c4 Z! u0 p" ^2 w
                        end;4 k& i& ?! {4 w
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station. d8 M2 [* Y: O) [' s
                        part := @.transpOrder;
! Z& t8 @4 k% N                        part.move(@);-- load part; M$ N* G' `7 G: z& J6 A# J3 T9 E! F: Y
                        @.CurrIcon := "load";! _1 n. \1 J$ k0 Y
                        GlobalDistObj := part.globDestination;
. ?4 q( h8 T% j; S5 e                        assignLObj := rgmanager.rgAssignL;
& a8 d+ G3 F, a8 y( l' P+ k3 c& T) l8 B                        row := assignLObj.getRowNo(GlobalDistObj);8 @& q* ^2 T: Z5 D
                        if Row = -1 then -- since 70
. e# `9 P' Y, c8 z                                if lan=1 then
4 N% s* p- D8 N6 _. [                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
$ }  J0 ]* G/ y& W                                                to_str("in der Andockstation: \"",?.~.name,"\""));- o* D% X6 |0 [0 ~
                                else
9 ^# p' Q1 n* ?" X                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),0 x) h& {8 u' p$ {: J% B
                                                to_str("in docking station: \"",?.~.name,"\""));                               
1 H# I' n0 D, H. r3 p6 ?* a                                end;
/ n" {( }1 C/ _; d, l; @                        else
8 w6 ~+ [7 }6 Y3 r! K: E                                @.Destination := assignLObj[1,row];
4 ]0 _2 O0 V+ N0 A% h7 z" ^! {                        end;                        9 D4 v' ?$ g7 ~' F* C( R
                        newDirection(@);
1 p4 H1 |  E) X& T0 e                        @.HasOrder := true;
' P2 D: R1 C2 c! Z: S                end;
- {; @( X: h! m  p1 I, R        end;
; K- I* a; V) _% eend;        -- of the method
% f. M* ?2 ~0 O0 ?# R  `
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 / r1 q$ T( [, m
$ B; j+ D  Q  J- k# g& x! G8 U
这是AGV_putin中arrive的method。
# i. q, w! G# s% G1 b: I  y" u2 C; b
! ]5 n' X8 X7 x' \. Q6 n/ z当到达物料速度越高时,这个报警更多,! U1 Y# I. |" M, c
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
' ~9 N" a  G) ^8 A) j程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?; O. D! G( N7 j
" \" A) S# D1 A+ _
另外一个小建议,就是move,所有的move都可以这样
! F3 R( G- U0 x' G8 J( \! X0 iif not move() then debug end
7 }  w& g  B# o3 S0 [这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。5 ~& K7 |- m1 I) f2 W+ r* X
plant simulation中的free libraries有AGV模板,; J: s8 ^  t8 I* R; B
里面也有案例。
# d# y* z. B  q! t2 v! |' ]我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。4 u6 _. V( J! V7 Q

$ R1 d+ k) O; q, E& `' J我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
' L: n6 ]3 \# c7 |
. t# I) q/ C% f, w% G% b% G3 D3 V那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 1 x# h7 s3 O/ E1 m2 Q$ m- d2 _
这是AGV_putin中arrive的method。& r) g  t) W& f
; Z3 R9 A, {+ M2 [; F8 m) T
当到达物料速度越高时,这个报警更多,

* o3 I8 N5 H, p7 c, l5 E另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-4 02:34 , Processed in 0.016757 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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