设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6865|回复: 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'
3 J; G4 W+ V5 s7 c1 V! k% h*/& E' Y$ d7 C0 z3 M: m: _
is! q0 Z5 R) H' i* }
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;7 W% X/ d7 p& w; i- s* @  d2 {
do. V! P7 r+ Q0 E" N* @! ]
        Lan := rootfolder.Internal.Tools.AOLlanguage;
. N4 R) S! d  g, y0 ?  u. A        if current = @.Destination -- else return
2 o( W- Z6 [) b        then6 Z! B3 _: n8 c# @! X8 |5 N
                @.Destination := void;
- \1 u% i; {% }9 T" Z$ }, Q" a                if @.occupied then& _2 F0 z) f/ w& |: e( `
                        part := @.cont;
# C  X2 h6 W& y1 w$ B) M  e                        @.transpOrder := void;+ ^* q7 E4 @" C- n1 o# v
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,0 |4 X$ C3 w1 x2 h" Y! J( v
                                @,root.eventcontroller.simTime);
' Y* w% U: z" `$ D                        @.HasOrder := false;
" u, U1 ]; V) @  W8 h                        @.DrivingHome := true;
% S7 L  n# q+ x$ z                        rgManager.tryToStartTransOrder;
0 v0 E$ I, I1 V" c# T. Z* Y                        if @.Destination = void
4 r9 [' f4 \  a1 w+ J                        then -- no transport order for vehicle @
8 Q  H# y! e: v: d4 E- X5 a                                @.Destination :=
4 T; }5 ?- t* z8 ?                                rgManager.nearestFreeStation(@,track.~);. x8 ~; E: Q1 u6 z' j( _# i
                                newDirection(@);   5 O8 ]0 n* S" v; [, j7 ^9 B4 o
                                if @.Destination /= void then
! Z$ C( r- j  {  r3 p                                        @.Destination.NumReservation :=5 t0 J/ a8 x' e: O# B3 H4 _' O
                                        @.Destination.NumReservation + 1;
. H, ~3 I4 n8 ]                                end;7 R+ ?' u+ j6 I8 _4 h
                                @.CurrIcon := "drivingHome";  b3 l7 b7 Z  T  y- T8 x0 ]
                                @.DrivingHome := true;
/ z' q6 ]! f$ k3 o" v. H                        end;
* z( F4 H5 r( {6 q# N) s+ W                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
3 U+ V- {$ P' w# q3 c& p9 ~                        part := @.transpOrder;4 W2 a4 H& k% m6 v' v# v
                        part.move(@);-- load part
* b1 A, G8 C" {' n+ Y6 g; W5 @3 j                        @.CurrIcon := "load";
# Z/ S% f8 h6 d# y" I% j                        GlobalDistObj := part.globDestination;
: Y. }9 R: o4 u5 d                        assignLObj := rgmanager.rgAssignL;
' ]+ Z+ {# b: O! O                        row := assignLObj.getRowNo(GlobalDistObj);. e, _5 O$ X, i% [4 P+ e$ t
                        if Row = -1 then -- since 70
5 J. Z& _* D3 |; e7 g( v                                if lan=1 then
& M9 F9 x, e8 Z& y                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
( h! c7 c- ^& d4 v9 A; B                                                to_str("in der Andockstation: \"",?.~.name,"\""));( M( o- r" D8 H/ O0 J& d' I
                                else
: G8 U* W* P7 m; ^                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
. T* Z' p- P# u0 a6 N- R" g                                                to_str("in docking station: \"",?.~.name,"\""));                               
- w5 N: J% L2 P: c/ ^                                end;2 y  y, }5 ?0 a! J$ q" Y4 O# ?2 ]
                        else$ M! V) N: d9 X- t! {5 v- c
                                @.Destination := assignLObj[1,row];! i2 S' q/ w& h3 F+ x. c$ k
                        end;                       
! @) @1 f* m- D# w' V3 Z' F                        newDirection(@);
5 j9 P/ _5 q! b% U  L9 n                        @.HasOrder := true;
: _, M3 f/ U: c. Y# L/ p/ w, V                end;
" ?( G3 ^. w" v. W- f        end;( P) p$ A) G! o$ t1 C7 r) c
end;        -- of the method
5 x5 _  D+ p% G$ S7 ~% J# B$ m
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 & X" m3 m7 b, Z* x) E3 m0 U

. j4 `% g  ?' @& B这是AGV_putin中arrive的method。
0 w' G; d- P8 \: |
5 P; u- M" @7 l/ i8 @7 M当到达物料速度越高时,这个报警更多,
8 h" U: c% p  I( u7 f7 v可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
# @! N% j5 [, Y# V+ i" ~& k程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
! H' G/ j9 }4 ]( C  c
. t) |6 }4 G+ U  L% M+ [另外一个小建议,就是move,所有的move都可以这样
  e! d, r7 Z% e6 h3 P9 xif not move() then debug end
  L' i2 C5 A. y' Z* s$ ~. s0 }! {这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
/ B1 v+ w) u( \* n+ u3 W. Yplant simulation中的free libraries有AGV模板,9 i6 h9 d2 S' I2 U2 M
里面也有案例。( z  @  c/ C' R. a3 W5 X
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。% a4 r! V2 G$ L6 b$ K
$ I) y* s" h7 \, {% w/ q2 D4 h
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 : u# U: E2 ]4 x! P0 O# {

' x+ x% F; f4 H, I那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 * e4 _; v. J% Y- D  V$ u
这是AGV_putin中arrive的method。' M8 s! B+ i5 `) H# b# q# K( V

6 a* S* H2 l9 n: L; {& O当到达物料速度越高时,这个报警更多,
. C$ D- f. O' V' Y( ]: }9 \
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-3 13:44 , Processed in 0.021123 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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