设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7510|回复: 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'
# f/ I3 W7 {6 }: P; c7 a*/
2 D  n# `* k9 x8 p. ]$ {4 Eis' _- n  h4 t" g3 ?; T
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
% F% N! V# |# h4 A8 jdo. S, k& X: a8 M0 Q% T2 L
        Lan := rootfolder.Internal.Tools.AOLlanguage;3 j- z8 B8 d  h: O
        if current = @.Destination -- else return
, @) Y  x1 L# `* I' Q        then( E9 K$ d$ ~" J% k$ z& b# g0 K
                @.Destination := void;1 g+ r' r' B: d" E) A' w' ^
                if @.occupied then
2 B# e. f* C. G. f                        part := @.cont;4 J6 z! H3 J4 u8 c- V" R
                        @.transpOrder := void;* Q0 N( Q7 S& n! D
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
4 ?4 Y+ c8 @0 p( w) e* r                                @,root.eventcontroller.simTime);+ O" Z$ m0 n1 T! B) M# \
                        @.HasOrder := false;( P0 t+ y. q' R/ o' c
                        @.DrivingHome := true;% I. v+ U4 |( L% Q) r: e" X
                        rgManager.tryToStartTransOrder;" [- e- W5 ~6 T/ D% n" J6 T
                        if @.Destination = void
& u8 J; T; G" ]& E                        then -- no transport order for vehicle @( d" [3 L7 F5 J& m* P! C
                                @.Destination :=
4 w1 F7 P: \% S% C; a7 K                                rgManager.nearestFreeStation(@,track.~);5 {1 }. R/ k! t5 h9 u
                                newDirection(@);   
  Q6 E5 X9 H6 z2 f: j9 t; P& U                                if @.Destination /= void then
, w- w* O: M% C# O  \& \  g                                        @.Destination.NumReservation :=- V$ {0 ?1 ^5 z  n1 A, H
                                        @.Destination.NumReservation + 1;
, O7 X2 C  _- m8 w, o$ A9 o                                end;) D. j& u3 P' O( i
                                @.CurrIcon := "drivingHome";
! t' C, f1 L$ I                                @.DrivingHome := true;. Z2 g! {0 H- f5 A. [: }9 ^
                        end;
3 K) T; |0 d  \  K# ]0 N/ s1 [* x                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
0 W6 ]3 N. W- ]- c3 m8 U8 |                        part := @.transpOrder;+ W4 U4 W* z8 y5 Y' I
                        part.move(@);-- load part
7 G* Q( U( u; Y- h# P                        @.CurrIcon := "load";1 ^  T1 y* {# K
                        GlobalDistObj := part.globDestination;
" u) m! A- _$ d2 `                        assignLObj := rgmanager.rgAssignL;8 t3 i" U1 a' H. \$ `) x
                        row := assignLObj.getRowNo(GlobalDistObj);
2 J- G# ~2 K$ Y6 k: {  s* Y                        if Row = -1 then -- since 70' J% g! {2 }0 h, {8 a# q  E1 A
                                if lan=1 then
+ |) T& h4 p3 b8 f# t                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),% T* q; q% W/ U( l
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
7 k2 _/ i3 e2 l+ H                                else
/ H+ n9 P$ a/ M% K                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),$ C; S% q/ [. K& H
                                                to_str("in docking station: \"",?.~.name,"\""));                               
5 d* ]0 V) q$ @( R) z4 e                                end;. i- ]1 F: ]# x8 O) Z
                        else
5 c/ i/ o1 S( S% P                                @.Destination := assignLObj[1,row];
9 U& V5 B% L9 L* r- \; y6 ?. N                        end;                       
$ D2 Z7 Z( U; w                        newDirection(@);9 d( \- p" z) L: B
                        @.HasOrder := true;2 q9 G0 u9 Q+ x8 ?# t* @
                end;; N+ M3 Y+ ]2 u( s1 S8 A
        end;
5 d- L5 k, I6 e  Jend;        -- of the method3 h1 O! C& Z; |! }  u
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 2 u( {) d: j8 T' Z9 ^' i

/ {( n: n  u% b# C1 b; Q1 j. v这是AGV_putin中arrive的method。& Y/ D) q6 t( j. q- A
. N  d& }; J0 k" F, H* t0 U8 e, [
当到达物料速度越高时,这个报警更多,6 _5 I+ B5 W. G2 m
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。% q- n( ~4 i3 L( Y2 ?
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?- d$ {3 ^3 e0 g

9 I+ x  Y" @& m另外一个小建议,就是move,所有的move都可以这样' u9 R* _$ B0 C+ s& c* F( n( O
if not move() then debug end, z& r7 @9 J6 Q/ z
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。  O! I1 X) h8 b6 c
plant simulation中的free libraries有AGV模板,1 r: {( M0 x5 P. n
里面也有案例。
9 T- Z% m9 H( M4 O3 ?2 x- R我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
1 X7 {: t/ _: [2 a
/ j! _6 g9 k2 N+ D5 f6 m: \) w我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ; q$ }+ I) n2 \. C

( S& i/ g6 m& _那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ' O5 ~) x) X+ m- r0 A7 ?
这是AGV_putin中arrive的method。/ M8 r0 s. K  _2 [

; ?) I1 k! g2 [5 ^6 x- n1 z* g当到达物料速度越高时,这个报警更多,

$ x# O% P' N5 X另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-15 14:07 , Processed in 0.022640 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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