设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7875|回复: 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'
- b7 @; V- X* {8 N; Q: f6 ^9 t; Z. V*/7 m: c7 \, Q3 E( z
is  V9 P3 r; q& B+ h) r3 w
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;3 l" @* f" o" h5 j
do3 I% {9 D2 n$ T# A, `0 E- T
        Lan := rootfolder.Internal.Tools.AOLlanguage;0 u- \+ T% P5 ~/ W8 k6 e
        if current = @.Destination -- else return4 H+ N4 w3 t7 a7 }0 k9 y
        then
; i, W9 K" Q' p* l+ j5 s6 s                @.Destination := void;
5 a( K1 C* \0 @; |& A) l                if @.occupied then
: U+ p) W8 [7 q: \- f                        part := @.cont;( D/ x9 I" h- x! Y+ Y5 S
                        @.transpOrder := void;
( D9 g) y2 p" Q" W2 Y- m. c2 s% M                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,8 z' S# R* H+ r9 z( y/ \
                                @,root.eventcontroller.simTime);3 O- B/ u  o) w& N- |  w
                        @.HasOrder := false;$ G1 E* S+ }  @2 c$ ?
                        @.DrivingHome := true;, r( a% z/ O4 J* ]7 N+ A. I
                        rgManager.tryToStartTransOrder;# V4 r" L& z1 ]( l7 B; j
                        if @.Destination = void
5 b: }4 d3 Y' k                        then -- no transport order for vehicle @& m" j7 }) O/ Q' z- d. }6 j! [
                                @.Destination :=
' q; @. p$ Y3 x8 X                                rgManager.nearestFreeStation(@,track.~);
) X# u! L2 m0 v3 H4 |                                newDirection(@);   7 g3 b4 a' Q4 r
                                if @.Destination /= void then1 M& E+ Q3 u8 Z! j; Z' i
                                        @.Destination.NumReservation :=
2 A; U: `% B4 W, G" E2 `8 Y                                        @.Destination.NumReservation + 1;
8 a, |) _: B( i                                end;5 }) Y& j0 h9 m  I6 r  i% R0 O% s, B
                                @.CurrIcon := "drivingHome";
$ J: ?$ a4 M, C  s6 F                                @.DrivingHome := true;
( f* T9 [2 f7 h" O                        end;, n% q, R3 g- w$ f# Z
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station2 N0 h# Z: @' l, n" V
                        part := @.transpOrder;
' s. I& G" [9 l2 z, h                        part.move(@);-- load part9 f: T, {5 I1 U% |0 f
                        @.CurrIcon := "load";
0 B, J* w. }  D$ S; n                        GlobalDistObj := part.globDestination;
1 J4 i8 c# O0 h" E) z                        assignLObj := rgmanager.rgAssignL;4 i0 U  `9 d, Z: Q2 y4 Q- i5 y
                        row := assignLObj.getRowNo(GlobalDistObj);
& n3 O; y4 d+ @6 x                        if Row = -1 then -- since 70& e4 m+ {! G' a1 y' @+ @
                                if lan=1 then6 t- U% x7 ]& n$ Y' f. [
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
8 r$ Q5 ^+ Y1 V" G+ l                                                to_str("in der Andockstation: \"",?.~.name,"\""));
7 M4 ]) }# ^+ _2 E                                else
: D( I' b. [4 a6 D+ z5 e                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),9 K+ Y" A2 {) ^! Y# D5 L3 g( m
                                                to_str("in docking station: \"",?.~.name,"\""));                                6 f5 e5 _* Y. F
                                end;! Z9 R% a( L  n
                        else
# h5 M; w& j) g5 }' a0 q                                @.Destination := assignLObj[1,row];
: _1 H0 Q; t% s7 l$ k( f                        end;                        " {( ]2 }& c& Y1 \  f5 S1 T. ?( E
                        newDirection(@);* C6 v6 k- r, [9 e2 T+ k# k
                        @.HasOrder := true;8 p0 Q2 [! B" z6 d- I" ^; k2 f
                end;
5 g2 s5 U7 n8 |5 W) T        end;
. q. \" h( ~3 d* gend;        -- of the method
% U! I" n4 [0 W9 @
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
* Q3 s- h1 L: ?& S4 ^
+ {0 A7 N& P9 _; t2 E这是AGV_putin中arrive的method。
' X/ i$ e2 S0 m9 W* x/ Z* X5 @2 s" s: q+ Y% V
当到达物料速度越高时,这个报警更多,
% y" Y5 S* ^5 i2 a% i7 K可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
6 s" A5 A1 N* X, E0 b程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
8 o, _  I# a; _9 ^2 ^+ i0 Y+ H7 t" J; }* F
另外一个小建议,就是move,所有的move都可以这样2 j- Y: I! a/ f9 v
if not move() then debug end
# T  q8 T' _5 u; U& b" m这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
7 A. p1 e. V/ v' A5 q0 k, eplant simulation中的free libraries有AGV模板," V$ W1 i' P7 l- L  i5 N/ P3 C
里面也有案例。
4 C9 \& j: Y# I7 I; V我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。: J# G3 o2 C4 B" e
! i+ D! J% E6 _: u
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
6 |" g% X/ [& d5 E$ k. r' F( @1 @6 M* h! g* r
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
% Q: m+ ?+ p4 f& @' s# I这是AGV_putin中arrive的method。$ F; l$ p( e7 V/ c- G# @
/ i/ X# g& N, r' k8 U+ f* C! B3 q
当到达物料速度越高时,这个报警更多,
& L( G, c- ], U6 D
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-2 20:53 , Processed in 0.018747 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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