设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9051|回复: 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'# J7 R, T) k8 w+ d& C% G
*/
/ o+ U5 ?  M) j0 K5 d8 E% His
# i1 c* ^2 k0 V2 Q$ l2 j" a* }        part, GlobalDistObj, assignLObj:object;row,Lan:integer;$ S- ?& T& r% {& a: Q
do
- R$ O& L- v3 J0 f        Lan := rootfolder.Internal.Tools.AOLlanguage;
5 H4 L1 X+ J% u& B        if current = @.Destination -- else return$ m5 d$ j# S' M# u; y+ D, |% O
        then$ Z/ o! T0 h  z1 C1 r+ a6 [. }& U
                @.Destination := void;
% [$ a; ^+ {/ p: Y. F. \                if @.occupied then
/ `3 m# Q5 g/ D) ?+ f/ ]' `1 j4 r                        part := @.cont;
) t3 s& D( k9 ^, o6 W/ i' a5 T                        @.transpOrder := void;+ Z8 _8 O1 [7 Q. u; B4 l
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
0 L, k$ H" c; w1 f0 h, K                                @,root.eventcontroller.simTime);7 q& ?$ e5 F8 n7 u  l7 y3 ~$ m
                        @.HasOrder := false;5 E% L2 O- i& I; B5 }
                        @.DrivingHome := true;
: N, p' V8 V& N+ p, k0 R. ~                        rgManager.tryToStartTransOrder;
5 f4 E, |  b3 p3 J                        if @.Destination = void
& d% U1 a$ t* ~2 x                        then -- no transport order for vehicle @- h- p  K0 K4 p6 {4 {; B7 Q
                                @.Destination :=
% v- \, J1 o) x5 n+ Z. W                                rgManager.nearestFreeStation(@,track.~);0 g3 B5 @! p# f9 ]+ ]
                                newDirection(@);   ! r5 ^! j! U* X
                                if @.Destination /= void then
7 i5 S! p8 {8 F- k% f* E                                        @.Destination.NumReservation :=# e- _: ?) \. R0 t
                                        @.Destination.NumReservation + 1;
" u' x1 `2 [/ N1 S, N' [                                end;! g+ w% E4 W3 b2 I# Y' }0 x, B" S
                                @.CurrIcon := "drivingHome";
* S- _4 _8 _$ e+ Q( G1 R  D                                @.DrivingHome := true;" u) ]! r5 a8 _& Y5 s! X
                        end;
6 P( P! z! d* [+ z: y                else -- the vehicle @ is empty, both vehicle and part are in the same dock station$ J5 q/ C8 z3 {- w3 S+ O
                        part := @.transpOrder;$ Z5 z- A, u" U: r) g+ w( F) ~" E
                        part.move(@);-- load part: g/ |$ Q) }! ]4 I8 ~+ n$ m
                        @.CurrIcon := "load";) }! E1 k) }/ w+ ?4 W
                        GlobalDistObj := part.globDestination;# f: l- T- V0 c# g
                        assignLObj := rgmanager.rgAssignL;: j+ V7 H& L/ |5 X& M( Y
                        row := assignLObj.getRowNo(GlobalDistObj);2 G! F: @8 N8 N% g5 O0 [
                        if Row = -1 then -- since 70, E8 i7 w' v8 X6 |
                                if lan=1 then- P' H' p" c6 P- B
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),) G) C. d" l; r, {; T- [3 Y
                                                to_str("in der Andockstation: \"",?.~.name,"\""));  F+ D2 i: T' r' a8 c" s
                                else5 J2 M" B) |3 l7 a+ Q
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),$ k8 ]5 F$ b/ M! k* j
                                                to_str("in docking station: \"",?.~.name,"\""));                                . L  f+ c( X9 X* Y6 a
                                end;
) V# l# q! ]% O- g8 E                        else& r$ b6 u/ y! A
                                @.Destination := assignLObj[1,row];3 S& x. k5 L. P% v
                        end;                        $ L6 X: F- u1 j6 ^% B
                        newDirection(@);
- C0 a& c0 f2 g; T1 v0 t& X                        @.HasOrder := true;
! [3 e0 }1 {/ N, U( q' K9 F* `: K! s8 b                end;6 h; K# Z5 Z; M# j
        end;7 f" r9 l, t. Y1 n
end;        -- of the method
& _* o# Q  D1 h& B3 |  S0 s8 W; f
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
6 g8 U# T3 T$ Z& r2 `" v; m* T) L$ w
这是AGV_putin中arrive的method。+ J) C5 |! M5 a$ T6 x4 i

2 m; {) L( ^2 c3 k) r8 `  n. J1 B当到达物料速度越高时,这个报警更多,
, o, Y/ t- s& P可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。% h/ p; h6 P* U8 A: s/ Y
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?9 f' b: O6 X+ F$ [9 ]  [; k

4 U$ @$ V0 q3 ?另外一个小建议,就是move,所有的move都可以这样9 T3 c, o0 s. e
if not move() then debug end
9 o1 h; n4 f* S0 X' F/ j这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
* q% X' K2 k% c- v7 v* h3 Xplant simulation中的free libraries有AGV模板,2 K* p% p( r  ?9 o/ Q: v) y
里面也有案例。
4 U6 j2 Y, U* E7 t0 M我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。7 m+ `% ~3 a1 o" ?5 n' a9 W; W
# U8 J' W" n6 X, X: U' }% {
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
1 z9 }6 l8 U; }+ X; c6 \: l2 _
) Z5 X  s$ [+ x! ~那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
8 k( n5 l. L" M# @0 ]这是AGV_putin中arrive的method。) a; Q  J7 p. c" H1 x2 \
. H( r8 H1 n% b7 Z9 n8 z
当到达物料速度越高时,这个报警更多,
' i) @2 W$ D2 k! p5 l
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-10 21:36 , Processed in 0.016338 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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