设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7853|回复: 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'
& _+ a% Z, `' b6 o*/
4 r- J  w* P; B* L: x6 m; Y; E1 Jis
6 F7 W( F8 G  y% r        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
) `, Z$ Q- @. |5 x6 [7 ?2 Wdo
, N4 l5 V8 H0 c: F        Lan := rootfolder.Internal.Tools.AOLlanguage;
& R4 X& k. T2 W& y% z: i        if current = @.Destination -- else return, R% ?: a" T1 z8 e) P& t  I
        then" v; j" v1 m: V" x7 j. B1 v1 Q% a
                @.Destination := void;
6 Q' R$ [4 o  B. m* t" S                if @.occupied then
) m5 F! C( K# v" ^                        part := @.cont;
9 e8 L5 Z, F$ r7 e; ^- I3 P) }                        @.transpOrder := void;' g/ s" {% z% L5 O
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,2 e0 {/ e; u1 J, I
                                @,root.eventcontroller.simTime);
0 y) ]+ j% n: @8 a  y8 X$ D                        @.HasOrder := false;
5 |4 q/ w. U. a. P3 E. t                        @.DrivingHome := true;
4 f! I1 L& y5 H9 B  a+ e                        rgManager.tryToStartTransOrder;7 X2 C2 \: d; F2 k0 a' J- i. R
                        if @.Destination = void: P# W( ?9 a3 p- `) u
                        then -- no transport order for vehicle @4 }5 m6 z2 H) n$ U$ A
                                @.Destination :=
, k5 C" Q) ?" u; k) f4 W6 p                                rgManager.nearestFreeStation(@,track.~);
7 |& _% q* E% g7 O& M- u8 `                                newDirection(@);   & [* ]9 M) i# y# ~) v) {9 C$ G- e. D
                                if @.Destination /= void then
9 u2 h0 a' Z$ z$ V3 q! w" G                                        @.Destination.NumReservation :=
! w: g, a5 G& y6 B: k2 ^                                        @.Destination.NumReservation + 1;4 d9 U+ Y" K& J* B
                                end;0 {5 }* A& F+ ]) c# L- [
                                @.CurrIcon := "drivingHome";, e$ o! N! P/ b" }- q! X
                                @.DrivingHome := true;
0 s/ S2 ]/ b2 ?' M; V/ p                        end;0 l2 W3 l4 D+ P! M; w
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station( G" \* c9 ]; x* \! D0 e9 {" N$ o0 o
                        part := @.transpOrder;
: s0 I* y& |2 ?0 [: z9 n6 L) T) P                        part.move(@);-- load part! v8 l6 ]! O7 h& S: j& f( d4 f
                        @.CurrIcon := "load";0 E  j: N  X0 N; l" E  |& D- k3 V
                        GlobalDistObj := part.globDestination;/ \, z1 K9 _4 L# G" N
                        assignLObj := rgmanager.rgAssignL;  S  s% f5 k( Y' i- U$ l& g
                        row := assignLObj.getRowNo(GlobalDistObj);4 J' F3 ]# u, K' i4 W4 l
                        if Row = -1 then -- since 70
: c2 m0 l3 ~+ K; D/ l: K                                if lan=1 then
$ c+ ^$ O! a+ Y                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),, F7 L" C* K6 l7 l" n" w% f. g0 Y
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
9 j/ B3 j+ U; D8 O. H+ a5 b                                else
" J5 I1 b3 Q- ^# R. U' q                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),& ~% u, X4 j* Y$ R9 J
                                                to_str("in docking station: \"",?.~.name,"\""));                               
* G8 H' R5 A7 K+ Y                                end;
7 ]0 J& _' `* O$ b# [( ^                        else
! ^. n( l, n2 I- _& D                                @.Destination := assignLObj[1,row];" y" V" m" u' I/ r7 U# s1 O# J
                        end;                        # }2 d. X8 |# w+ Y' b. y; C
                        newDirection(@);* T+ Z& i0 F, v- D
                        @.HasOrder := true;
; q8 U- ]0 A# B3 l+ W) Y2 g                end;
8 u7 o: m+ x+ L  |# l* [9 R        end;* Q" n1 U% Z/ ]8 c8 u
end;        -- of the method
: J* d5 [/ |$ X3 v9 J) k
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ' Y. P( t- W8 U0 l

# N5 I  p8 a3 l+ J5 ]( M这是AGV_putin中arrive的method。
7 [' V0 r. o) q2 J( z8 p+ _* i/ W5 C# T& L, K
当到达物料速度越高时,这个报警更多,
, D5 T# F: w  ], p# G1 I可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
& M5 j5 w/ [# y5 v) M程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?0 m' T1 E: [* i/ ]7 j. e8 v  G) F

) ^  `- @$ v2 Z+ E' H9 Q另外一个小建议,就是move,所有的move都可以这样, I4 u. G! ?) g" `: {1 [8 C
if not move() then debug end4 Z2 w+ T9 Q, L
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。" d/ B2 a8 q/ f
plant simulation中的free libraries有AGV模板,
% v6 e% i7 z+ Z2 `( p9 u8 p里面也有案例。" ?& v0 s+ Z& n8 _9 Z4 C
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
5 S  w  L7 C/ M0 L# N" A) t  |3 \/ a% `/ K& P+ G1 x3 ?3 \
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
) V# p7 d& o4 d1 Z* K
1 }5 x! ]( d% M5 M那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
% K* X6 O* O7 l: M( C$ |1 z这是AGV_putin中arrive的method。
5 O/ Z' R' z# a3 a/ K
& l# ~* U: D" y, m% A1 c0 I3 |: _当到达物料速度越高时,这个报警更多,

/ ^( c, E% F! [: \0 g另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-1 20:48 , Processed in 0.028383 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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