设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7335|回复: 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'
) d, O; N. a4 u5 s. f& l" t*/, r1 u  ]: r8 a" \# y% B( u/ o5 u
is  h, p; h, n" Z/ X1 G' T3 y. v
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;0 I5 T- Q/ ?5 g* `
do
; a  C7 q0 t2 }  f) F0 L        Lan := rootfolder.Internal.Tools.AOLlanguage;0 `9 o. }; x; C
        if current = @.Destination -- else return
( s7 R" q  c% @$ L, f& ]. t$ l        then! n: Y0 v, O6 z! E+ _' ]
                @.Destination := void;" K& d. U7 ^! {) C% i
                if @.occupied then) C' R& _6 y  Q! R" R7 I. {' ]* g
                        part := @.cont;
" Z" T0 S$ i; p+ J$ z: _4 D* O1 n                        @.transpOrder := void;, z, a, s3 a4 A7 L! |
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,: r! V5 L8 F, ?; H  I# n
                                @,root.eventcontroller.simTime);
8 R' M2 n& s1 N4 J+ L$ Z# j                        @.HasOrder := false;3 i) V# K" k  ~9 y; t" T
                        @.DrivingHome := true;
2 z  ~& q. U/ h                        rgManager.tryToStartTransOrder;; r7 b: x* S  V$ e
                        if @.Destination = void9 [3 J4 k* W- T' q
                        then -- no transport order for vehicle @
( l' w6 ]" S/ h                                @.Destination :=' H: Z7 E) a' D7 p8 N2 @# C
                                rgManager.nearestFreeStation(@,track.~);5 H" x0 T* b* R% s, P0 f5 {
                                newDirection(@);   6 Y5 h: ]; a) P
                                if @.Destination /= void then
$ T' R! v  |, A3 A7 k* J+ Y                                        @.Destination.NumReservation :=) ?: a0 F6 S; K3 [6 r3 r
                                        @.Destination.NumReservation + 1;0 H# W" @7 B: H$ A# _# ~+ B8 E# t
                                end;  _! V" O& n* ^( Z
                                @.CurrIcon := "drivingHome";
; \1 C, `5 k& x9 w: F                                @.DrivingHome := true;0 a' k% o4 c6 |- J
                        end;2 ]3 f1 l2 ?' l2 ]: u# S
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
2 L" t$ C* J9 V( ~7 }% b                        part := @.transpOrder;' K- H2 J4 u$ ^  r
                        part.move(@);-- load part
/ t2 m5 A% |8 ~) y/ U                        @.CurrIcon := "load";* X  S. ~: J; V9 S! M
                        GlobalDistObj := part.globDestination;" e# v8 [7 B  [. K
                        assignLObj := rgmanager.rgAssignL;
; N5 ]$ V3 p6 \2 d7 W1 a                        row := assignLObj.getRowNo(GlobalDistObj);
4 [( w0 ~/ ^! j0 w/ b+ u                        if Row = -1 then -- since 70
1 z/ k3 N  V% C6 j) R/ U- ~& U$ ^                                if lan=1 then
4 ~- {, ]7 R$ [$ O2 B8 @9 M% H+ K" Z                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),7 ^: O) T) R( ~+ K
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
. x2 d+ o% P: |( ]" d8 o                                else
+ @3 x- [7 M+ v) k                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
1 [, a* K4 V/ V/ [% W9 \' W                                                to_str("in docking station: \"",?.~.name,"\""));                               
! h+ D. Y" d7 v( Q9 q) P! t$ ]                                end;
0 `3 Q$ B2 T/ u3 D, r: H, [) p' o$ F                        else
. M+ A" l, J3 a8 `/ R5 ^' L                                @.Destination := assignLObj[1,row];
7 q4 @0 t4 R* Y                        end;                       
/ P4 I8 o9 {. G: s                        newDirection(@);' U7 y0 |; P! u8 P' g) N; D
                        @.HasOrder := true;) E5 x3 g& O  E1 t
                end;
- q  R( Q* J6 A" D4 d        end;$ }" I% n; j: e# {! e( d- k
end;        -- of the method2 ~) u* M( }0 l
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
7 n4 i& J: j) W+ a6 I$ Y, `+ X
- v' [  P" p; Q5 N- }这是AGV_putin中arrive的method。
0 H8 N4 f8 q3 H5 r. s8 Y: g
# [! B, w9 `% {* r9 g当到达物料速度越高时,这个报警更多,
0 o  h5 [: _8 \6 P0 G: w( K- l可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
- m1 n2 C4 ]. _7 z7 [2 }. E& d' Z程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
# {* t5 {+ N4 s' N+ M& k0 C; V6 k5 @$ w. d* a4 `! H
另外一个小建议,就是move,所有的move都可以这样9 ?$ J1 \2 E$ z) w6 E* t
if not move() then debug end. w% d, Q% r% Z' Z
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。# N* I) B, t% B7 e  g0 Z. D
plant simulation中的free libraries有AGV模板,3 V8 [0 a7 H- p. T
里面也有案例。
( I: Q; Q/ K$ u, F. y6 T' h我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
  A% z" }8 M; _1 o& d9 r* z4 O
8 j5 h2 K! b6 F5 a  a我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 + s3 `- B. k9 B3 o5 v- k

% ?( k6 n) B' p: [4 `( E那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ! y# `( O9 {- M: X1 \" F2 h* Z
这是AGV_putin中arrive的method。
% m8 j- j. w: G  H2 M6 j
4 K% A& h( G, i% c4 i+ [* G7 [当到达物料速度越高时,这个报警更多,

4 p) j- y; A2 ?& D" n6 |另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-4 18:44 , Processed in 0.018257 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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