设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10236|回复: 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'
+ }& v  l+ y+ ]*/4 ~. w0 `$ f0 {  C
is
& n: C7 f$ N4 g+ G0 [# \! W        part, GlobalDistObj, assignLObj:object;row,Lan:integer;8 R% h% a+ o, i1 b1 v) T) A# @
do8 C6 [) ]5 [. s$ e
        Lan := rootfolder.Internal.Tools.AOLlanguage;
% D* k0 C( Q9 L, m3 W        if current = @.Destination -- else return( D& S( X& v! @" y! B; y! p
        then1 u* p4 P% u6 P" z3 R, J: P
                @.Destination := void;2 G2 F$ K$ ?$ a' a* P% t4 r- s
                if @.occupied then
- f- q+ L0 L$ G- Y* m4 t% F2 Y% L                        part := @.cont;
  f4 r) s6 B( G% |                        @.transpOrder := void;5 ^- i% I: y! j( C- o; d! q
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
5 _4 b7 t# e; K6 T' z  j3 \                                @,root.eventcontroller.simTime);) P  q0 _  p" @
                        @.HasOrder := false;' P/ a# X& }0 }8 S; M2 U+ G
                        @.DrivingHome := true;
3 `! A0 G( L+ |                        rgManager.tryToStartTransOrder;" Z, w' u$ [, b1 E( m3 }( s2 E2 k: e3 \9 h
                        if @.Destination = void- Z: u* e4 o; x& d
                        then -- no transport order for vehicle @
# ?% f' X8 S- Z- {$ S; Y                                @.Destination :=
( n3 h1 M) I" E- a# y/ q2 ^0 y0 N                                rgManager.nearestFreeStation(@,track.~);
: M7 ~7 A8 p+ H% h1 e, j1 _                                newDirection(@);   
3 i% N( w/ f9 X+ u                                if @.Destination /= void then6 x, v( [% m, c- A! y$ p9 e
                                        @.Destination.NumReservation :=
. d9 f: }7 [% g) S2 p                                        @.Destination.NumReservation + 1;+ G( o9 S$ ^. L. [
                                end;
2 w1 x4 J( y- c/ c                                @.CurrIcon := "drivingHome";
2 s/ w2 `" V0 ~  o+ {                                @.DrivingHome := true;6 \  c0 e$ ^# B! V
                        end;
- E5 f) n# N$ ]) M; I8 n! {                else -- the vehicle @ is empty, both vehicle and part are in the same dock station4 ]( f* Q+ h9 z" I: c0 m
                        part := @.transpOrder;
3 `) f, G4 |3 C                        part.move(@);-- load part
0 ?5 D. T7 n8 j/ x                        @.CurrIcon := "load";. `9 _1 E  B4 {7 L$ ^
                        GlobalDistObj := part.globDestination;9 u$ {' {3 S* S6 W4 X
                        assignLObj := rgmanager.rgAssignL;( p2 h! m9 e3 q- @' i
                        row := assignLObj.getRowNo(GlobalDistObj);
' _3 _7 m- v* o( |7 p8 M) ~% P1 K                        if Row = -1 then -- since 707 U: @0 ]' z, v3 k. a7 o/ o
                                if lan=1 then+ m: c. ?" f* K( a
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
- x) {+ z# x* S; T& C                                                to_str("in der Andockstation: \"",?.~.name,"\""));
" F) T8 |6 u/ n                                else# @& M9 S8 r/ {# A5 f. ?9 u  ]' ]
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
, l+ b( B2 g/ V* |$ n1 |& ~* L                                                to_str("in docking station: \"",?.~.name,"\""));                                & \2 w7 _4 P# }' ^/ C+ ]
                                end;& |3 a* I6 M$ ~0 b# I/ a5 |
                        else
8 I; @1 ]6 V! H                                @.Destination := assignLObj[1,row];
6 e) B; e1 e/ Z0 R4 |5 h' S: R                        end;                        4 M$ w( q* J" k( x" S
                        newDirection(@);
0 s  N+ k! g6 o+ N                        @.HasOrder := true;$ x1 L4 t8 b8 e% {  N+ A+ O
                end;6 t8 R0 x) b( k  j& [3 }( {
        end;
8 u' _1 T0 U6 A5 y1 Zend;        -- of the method' u4 V! T; `& ^6 [. c9 M1 G8 Y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
3 s( r: u. t3 d
9 S! S) G2 L- C; }+ X这是AGV_putin中arrive的method。
8 x8 F# P. O/ u* f& x# B
' Z3 Q& ?4 e3 i# b当到达物料速度越高时,这个报警更多,
* s# a: a' L  H8 |( O% }可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
! C% s0 R* Y; Q程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?3 }! U7 Y0 n1 i$ e5 l8 N2 p2 d4 z
- R; ]* K9 Z$ ~6 W
另外一个小建议,就是move,所有的move都可以这样
# G+ a6 E- ^; ]6 d. n  Q# s2 n* vif not move() then debug end
$ m# N' U1 S0 s" v这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
( Z: l* o& V- w2 y/ i$ Mplant simulation中的free libraries有AGV模板,' @. d4 m  k" H
里面也有案例。7 Q3 Z% p, {6 U* {7 X% g3 E9 S: ^& v
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。8 ?' x' Z4 P* B+ m/ h
+ }- e1 ~3 P5 F
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
  G3 R2 R7 P+ |/ h4 v, \/ a& U+ h: k& c3 K4 Y
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
" O( E: R1 I5 J; P' J0 S这是AGV_putin中arrive的method。) ^; l" {1 T; g( U

5 c- L+ D: Q0 T* H) u5 D# o# B当到达物料速度越高时,这个报警更多,

" ?& p6 }/ G) K% h9 [另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-21 19:00 , Processed in 0.018483 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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