设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7889|回复: 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'
  g5 w3 s5 K$ A/ L" `+ G3 c*/0 f& @1 j" ~* g/ B3 y5 e
is( r. f; v# c/ K/ a
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
; \  m4 q+ |+ @do
' z, R5 R. o+ ^  T/ j        Lan := rootfolder.Internal.Tools.AOLlanguage;
( e! t2 v" r  r        if current = @.Destination -- else return% a  y8 q" I0 u: L7 |! e; i
        then1 t0 s1 O- |/ ]( Q! ?% i0 C
                @.Destination := void;
* J/ f* j8 v4 i+ |. H, r! {% {/ X                if @.occupied then) x( u, h2 T/ K/ |) J: M3 p
                        part := @.cont;
* G. C$ [5 z4 f+ N* Z  b5 K" T9 K                        @.transpOrder := void;$ Y7 u; S3 r" o: E- U# S. M, z( o3 H
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
: P7 A6 w! f+ [$ m                                @,root.eventcontroller.simTime);4 D: t+ A+ e8 \" g$ F! P; s: o
                        @.HasOrder := false;
& t& D/ N- K! O; ?, |                        @.DrivingHome := true;
% B: ]1 K' g+ T7 [                        rgManager.tryToStartTransOrder;
# y& C, f1 @( J0 M; U3 k( M8 t' `  v                        if @.Destination = void
. ?- H$ C- i( b8 c) e; A  Q$ z                        then -- no transport order for vehicle @
1 v; [3 i( ?7 o, D/ Z0 e- ^3 ^                                @.Destination :=3 o8 Z; o/ D. R1 T6 k
                                rgManager.nearestFreeStation(@,track.~);
3 ]: a8 P! U: P% H# H+ [7 G                                newDirection(@);   2 o, r$ k1 J0 }: {" C
                                if @.Destination /= void then
& P" i, ]+ c; c( o                                        @.Destination.NumReservation :=
! M* B+ \! u  f2 f$ z                                        @.Destination.NumReservation + 1;( L$ w. V' W* B: a% j* m! V1 j
                                end;
$ n% z" B6 T  ]2 Y( A6 l. h0 H* W) g                                @.CurrIcon := "drivingHome";4 [0 I# `1 R/ B
                                @.DrivingHome := true;( n, z! C5 G! q' t9 L( u1 K
                        end;; A( S1 R& b% l: x% }4 A$ e
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
) G; P/ _% r! l, z                        part := @.transpOrder;6 e/ i* O3 u" P: O% h* B; f2 D
                        part.move(@);-- load part
1 x) z5 v# S$ A; \* `                        @.CurrIcon := "load";
- N6 o4 M3 B+ M6 q  T6 p! P9 @                        GlobalDistObj := part.globDestination;: Q' I3 j7 X2 B) n9 @) T
                        assignLObj := rgmanager.rgAssignL;
+ `1 l. N% c) t/ C                        row := assignLObj.getRowNo(GlobalDistObj);2 n/ W2 F6 o$ |* H6 Z$ `* V' e( B
                        if Row = -1 then -- since 70) {6 O5 n0 C( M$ _# d
                                if lan=1 then3 P9 k7 V6 H; z# u* k
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),  C3 p9 Q3 v8 m/ f  ]- Q
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
" s! \& g, }% X' i                                else4 {. \1 ~2 r  {& x
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),# V4 j3 F% J/ f/ o- |2 v
                                                to_str("in docking station: \"",?.~.name,"\""));                                ; n1 L( D2 b& N* ]" U
                                end;
5 E2 H$ a, Q" h8 b8 B3 `                        else2 L- _8 B. s3 b2 U% e
                                @.Destination := assignLObj[1,row];1 w: Y- f5 E2 a) E( _$ I1 E
                        end;                       
2 A* g; }7 |' Z# ~1 J: x3 X0 Z                        newDirection(@);) \, V* V6 h1 a4 U
                        @.HasOrder := true;' |. K& W; y" D( I( j, |
                end;
- p1 w: L/ W& G3 c/ z' y        end;
* Q1 h* K+ D8 P' {3 [; Z- xend;        -- of the method/ q+ T" y* z$ R7 J( j* j
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
; n% B) S* v' ~8 p8 Y3 Y& e
" B/ T# j% O& Q/ ?这是AGV_putin中arrive的method。9 Z5 L! L1 R) W/ s; _' u$ Q
, O* B* w) Y) O' e: I- y
当到达物料速度越高时,这个报警更多,
& T1 B/ ~, U  m1 C- }4 ~可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
3 D0 \" V* m% R% Z% K. c( k9 ~6 P1 u程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
. b5 }1 u3 ^3 R5 @  `" Z) p8 b# m+ q' x9 S$ P3 K6 q" Q; W2 |4 ?
另外一个小建议,就是move,所有的move都可以这样
; U9 r/ L+ U- lif not move() then debug end
) l; U8 b2 I1 F- ?这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。. P1 H- Z4 J- M! w! E' L+ {
plant simulation中的free libraries有AGV模板,6 \' _3 ~. p8 \0 O7 A, y" z7 \
里面也有案例。
# x- a0 q6 ?0 b2 ]/ R我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
! y2 v- v8 T7 u/ A8 j0 G
  V! A  Z7 @5 W: q8 m我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 $ {1 B. t% s7 ~
" d% @6 G7 g4 P8 P
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
* M1 w9 b) ]) [$ n9 A  T这是AGV_putin中arrive的method。  ^) o" {! \$ n4 X
) x/ X8 o' t" G  Y1 t7 b
当到达物料速度越高时,这个报警更多,

0 _: S' \) V! z另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-3 14:59 , Processed in 0.016995 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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