设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9114|回复: 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'1 G2 B) [! G9 j3 ~" `# y. u5 `  w
*/
$ x8 Y! d8 {3 E8 l* Jis) ^2 t% V: {! b9 H$ k
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
& _; R7 g: }( h2 \/ F5 J/ b  d6 Cdo+ X5 [( s- N. H: r! @. G0 o2 Y5 @
        Lan := rootfolder.Internal.Tools.AOLlanguage;
) L( G" Y1 K' U        if current = @.Destination -- else return
) `( K9 C' V4 C; j3 K4 d; v        then3 f  g! t7 H$ z+ w' r
                @.Destination := void;6 i2 T* h3 ?% l: R
                if @.occupied then
/ b7 I$ {" j  V4 O                        part := @.cont;( \6 y+ M* A( m  Q4 }" r
                        @.transpOrder := void;
( b& L! I/ y) r2 I$ o, ~6 l4 |                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,7 |5 z& h3 f9 R
                                @,root.eventcontroller.simTime);7 r; h( C# o! J8 e5 o8 d* @3 r4 I# `
                        @.HasOrder := false;
" i! l* P# Q! ~                        @.DrivingHome := true;5 X  K( y4 c8 {  J, f$ U" F" \
                        rgManager.tryToStartTransOrder;
9 H2 R- T8 v; ~* @( t7 F# n: g                        if @.Destination = void
6 f3 U$ p8 _9 n$ i                        then -- no transport order for vehicle @
* u: @9 ]- K/ v+ |, V" u                                @.Destination :=
1 U9 f& n- C7 y2 I; ^' O                                rgManager.nearestFreeStation(@,track.~);+ J" `3 d: J! x: v: a8 P5 E
                                newDirection(@);   
! `3 N' a1 l% C0 b5 b5 [                                if @.Destination /= void then
% m' o' ]6 Z. h2 P- a2 G' t                                        @.Destination.NumReservation :=
( N( q) C( k; T; I+ c! x+ f, ]                                        @.Destination.NumReservation + 1;
) d; ]9 X3 l2 j0 _) A* Y$ ~3 o                                end;0 Q  q5 R) c; B! i9 d2 m
                                @.CurrIcon := "drivingHome";
. l1 T7 e+ j  H6 H0 ]  W" ^+ o                                @.DrivingHome := true;1 F; F3 O$ O$ ]3 Q  ~  [% a* \" F
                        end;/ w, m1 y: s; B
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station9 ~4 b' @  Q" s- Y
                        part := @.transpOrder;4 a- m. Z. o% F5 r& z; U5 L
                        part.move(@);-- load part) e6 A+ ~) x* _) G! ^% P& {
                        @.CurrIcon := "load";4 O, Y( p7 e  C2 N  b: G  Z; v, V
                        GlobalDistObj := part.globDestination;
1 o9 W- P4 K- t* y! S7 y1 G0 z                        assignLObj := rgmanager.rgAssignL;- H) c+ l- T- N+ J5 x
                        row := assignLObj.getRowNo(GlobalDistObj);
& T( ^# q- `$ B                        if Row = -1 then -- since 70
  l& U8 a4 {8 a2 j1 \                                if lan=1 then
0 J) d* w8 G" I5 n1 |! e& L( ^                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
* m, n8 r  w. _% @) F/ u" u                                                to_str("in der Andockstation: \"",?.~.name,"\""));; v8 I( X; ^& @9 v0 X5 _8 D
                                else
2 v1 |( U0 j0 E% R' h( P                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),0 v/ u2 l! P) Z7 ~
                                                to_str("in docking station: \"",?.~.name,"\""));                                : ]$ e8 M; @! q8 n
                                end;' e& g" U0 c0 I$ m+ e3 B# G6 F
                        else# u/ O8 `5 ?  A3 E1 g( N
                                @.Destination := assignLObj[1,row];
7 I5 b! o5 n5 J! O2 o' g                        end;                        + }: s) J4 T9 L% z' ^
                        newDirection(@);
% M$ c* e+ T4 r% p" u, n                        @.HasOrder := true;
4 Q$ o# X2 r+ [; g+ I                end;4 s  N2 h: Z" B* p+ G) A
        end;; P. [+ `- M% O  S. |+ K  G
end;        -- of the method
& I3 z0 ?- g0 ~/ d+ }: _$ l; Y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ( N  N+ A- O; u' ^2 D. M% }3 P
& ^% O1 S! G( d6 i4 \- ^
这是AGV_putin中arrive的method。
4 I  B! R9 E7 H) g- ^: v
$ H" l3 L# b" j, z' A8 N当到达物料速度越高时,这个报警更多,
6 b/ j. I  N) m& @1 f; H可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
* B' l) P2 ]' z9 ]程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
) Q1 {/ @7 P! w6 U
. \  f5 p- p, ^. m! ~% @另外一个小建议,就是move,所有的move都可以这样
( O4 {7 v% F7 w7 Dif not move() then debug end
$ ~/ N( L4 z4 N9 B" E& x+ U这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
$ J, [2 F8 @; W# C3 q8 w2 w1 A$ m. Cplant simulation中的free libraries有AGV模板,$ G& j9 ^/ |3 v3 I7 t
里面也有案例。" \! ^$ G) b  E% w
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。! M9 s( ^5 H/ @
9 x, z4 ?) N$ p1 ?6 _& O
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
/ y5 a, S# x. s! a! t9 m: F: v% Z5 u+ V' Z4 A2 d, e
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 9 m* O% k( {/ l1 n% ^( e
这是AGV_putin中arrive的method。
, h3 X! ]" {* J/ b+ r* j, u
% x5 Q6 ]% Y# T0 [; E( _当到达物料速度越高时,这个报警更多,
" c; [. ^% q$ t! w
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-14 11:56 , Processed in 0.018497 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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