设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9854|回复: 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'
, R6 e) M. Q& P1 l! f) h*/
4 u* t4 q9 d2 Q# ]0 W& r) Ois
+ R8 J  {/ ^  w4 Q1 i% m' s5 t: ?        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
0 B5 x4 W$ s0 u  edo5 ^& Z& Z# O$ ?' B1 [9 X# K" H1 q
        Lan := rootfolder.Internal.Tools.AOLlanguage;
/ h: _" j0 W( A& m        if current = @.Destination -- else return
7 q  N0 H. ^9 k- L5 i, D        then
# G* O% J) V( B: b                @.Destination := void;. U# P3 _4 F& O4 d! q! W' I" b
                if @.occupied then6 b0 h3 B* T# ?+ v
                        part := @.cont;; j; t/ a7 E8 D% I. i5 f* l7 A* g
                        @.transpOrder := void;
% A. R3 n3 ?2 {$ P" i2 L                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,( f1 B! h8 E8 v  v1 Q, V9 N% X  k
                                @,root.eventcontroller.simTime);4 R7 X& a: x2 {9 K/ K
                        @.HasOrder := false;
. c/ }3 C1 G% N9 O- Q. a                        @.DrivingHome := true;
  z% u% P& T. ^                        rgManager.tryToStartTransOrder;( ?' e( h2 Z" ?, V8 r
                        if @.Destination = void
3 a  w+ W5 }: b- w- l                        then -- no transport order for vehicle @
3 B7 t( c( |; c. G5 r( k                                @.Destination :=
+ O3 A4 H7 Y) c) s) a                                rgManager.nearestFreeStation(@,track.~);2 p& n) p% X' |$ Y- W
                                newDirection(@);   , w( T" d3 k% W. S+ z
                                if @.Destination /= void then: B5 @$ p& i9 N9 n8 X" Q
                                        @.Destination.NumReservation :=
6 s5 ^& t3 `# l9 _! [  L0 U                                        @.Destination.NumReservation + 1;: E7 g! W/ N; ^) W4 Y- \8 E3 r
                                end;
5 l+ i! s/ [$ o                                @.CurrIcon := "drivingHome";% w5 H2 ~% k6 G) _% N) Y6 ^9 b: o; e
                                @.DrivingHome := true;
  g$ f3 O. W- ]                        end;: q9 a. o! y! h( a( ^+ P. j
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
: N0 W) _  E: \- ?                        part := @.transpOrder;! s& ?. R; e- {" a3 J! \  H- q
                        part.move(@);-- load part$ e# P; a$ m2 o! m- N/ m
                        @.CurrIcon := "load";, S* G1 O; j8 k$ H. L
                        GlobalDistObj := part.globDestination;
$ e, F3 j1 z4 V7 \6 I                        assignLObj := rgmanager.rgAssignL;
# [0 u' f# z+ s                        row := assignLObj.getRowNo(GlobalDistObj);
/ I" n1 r" t( }9 ~! a0 {/ \                        if Row = -1 then -- since 70& t: l5 M0 f# D- f& j- t
                                if lan=1 then7 R9 e. R7 C2 n8 r% q
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
8 Y& y4 {- ?+ K4 [8 K9 L$ o* O* j                                                to_str("in der Andockstation: \"",?.~.name,"\""));
; x. V2 u, O& k2 R6 l+ D  P& X                                else; x- U' n% ~0 O9 H4 j# k  k
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),& ?  v; U6 G4 {1 X0 r0 K
                                                to_str("in docking station: \"",?.~.name,"\""));                                : }6 x, ]% X' v
                                end;1 {* M; t2 r0 J* A
                        else" h. ]  `, _% ?8 g+ A9 M. |% P
                                @.Destination := assignLObj[1,row];
! g7 _- x" F3 H8 z' \! P1 u                        end;                       
8 m/ S3 Y/ ^$ W, z                        newDirection(@);
; G) k3 y! Q3 h$ E$ C8 a5 [                        @.HasOrder := true;
' f  U/ j5 }% t* C" F* t                end;
( _% ^) h8 n% |# c: M        end;5 y- _" b' D0 O; S; e
end;        -- of the method  ?. p# p. q0 K! \% Z) X
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
8 y) E* c9 w& W" Z
- x+ U# N5 g4 p% r: J! p' n& y" ~2 Q这是AGV_putin中arrive的method。
# K4 j* y7 D- F+ K8 b* I% ^( |& J1 j5 E9 }6 n+ q! h7 [" t/ f
当到达物料速度越高时,这个报警更多,: R' b4 `# e2 ~( O+ d+ N
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
; K# E1 u$ ]5 l. X! H! @程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?) V; j* V  M  T# Z* B
3 }$ e, U% u# H" q9 s
另外一个小建议,就是move,所有的move都可以这样% E2 S/ s& j+ @2 ?2 j) W
if not move() then debug end
$ Q  x$ }, a, `' m  m0 g3 \这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。+ N! s. l. _; H% f* X
plant simulation中的free libraries有AGV模板,5 K" Z, B1 B8 y( d, `
里面也有案例。4 z: w* j# E0 `( T; g5 X  s& W
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
5 w0 }$ |, L0 ]% c9 T& v: e7 U% ~% D% _( Q) |, ]) Z
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 - M. u, R) D6 Z, d! q; W( T- [
4 D6 T3 X4 R- m0 B
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
4 k" d$ |4 z# O2 V$ {. u3 V# c这是AGV_putin中arrive的method。8 g3 k8 k; P5 v+ M3 w9 r. ?, f
' q2 a) i/ \: e
当到达物料速度越高时,这个报警更多,

5 V& Y4 F5 l! h1 p另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-29 14:45 , Processed in 0.025667 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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