设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9981|回复: 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'4 H7 _7 r7 u. H$ T
*/0 z5 l$ ^: r; S
is
7 L( t4 h4 T7 D9 S. G4 h' ]' ~* Q        part, GlobalDistObj, assignLObj:object;row,Lan:integer;+ V2 c3 ^) l& E4 _
do9 a3 J& O# T4 x* p" v9 V
        Lan := rootfolder.Internal.Tools.AOLlanguage;0 [6 D( e+ \- b1 F- L3 g
        if current = @.Destination -- else return
1 ^7 C- B6 P& I; d! a! v7 W        then9 f( A7 k7 h; [+ D( l, ?1 d: h
                @.Destination := void;% u: A8 J" T0 c/ p1 ~  z; b0 K1 x
                if @.occupied then
% k) b  {: R9 z+ {& t/ m                        part := @.cont;* n! W( a9 J3 J( C/ ~* n( i( a
                        @.transpOrder := void;  ]/ G) ~$ x& l
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,! B# E$ X  S4 x# X
                                @,root.eventcontroller.simTime);
( h5 J  O3 S  `2 ?0 ^2 e                        @.HasOrder := false;
) Q( _- _# R$ X' f  g5 Z. y                        @.DrivingHome := true;# T0 v- `; q/ Z5 Z
                        rgManager.tryToStartTransOrder;9 f2 s3 F% E5 Z
                        if @.Destination = void
: _& Y/ o3 d' t7 R' q  E$ ]6 I                        then -- no transport order for vehicle @; Y! R) Z, W0 W
                                @.Destination :=
& t( P2 d+ L* A1 x/ M                                rgManager.nearestFreeStation(@,track.~);+ a# w6 ^2 b  y4 J8 K( g( C
                                newDirection(@);   
; P- }$ r. }, {3 [# A                                if @.Destination /= void then$ A- b/ m  G- U+ {8 o3 x7 L1 t
                                        @.Destination.NumReservation :=# Y% x, \# c: V3 i- e4 M
                                        @.Destination.NumReservation + 1;
. s6 r& e* d9 n3 v+ f% z( K8 m$ \3 J                                end;8 k6 r8 _7 C, Z( H1 M2 V' H
                                @.CurrIcon := "drivingHome";2 s& v% Y/ E* J& ?
                                @.DrivingHome := true;. Z& m/ C2 j3 [- x7 W# d
                        end;) H  T0 d  L* n1 Y9 `; x
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
4 h) Y5 S6 i, B+ i$ a' q                        part := @.transpOrder;' b% b" D7 ~" O$ Q0 _# b5 n7 }
                        part.move(@);-- load part/ E  m" T. s1 J; r- c
                        @.CurrIcon := "load";/ W2 d! F. G& ^6 m1 z& P# k# l5 Z
                        GlobalDistObj := part.globDestination;0 }* V4 J9 }: P/ y+ w8 a
                        assignLObj := rgmanager.rgAssignL;
0 P, p" q( w2 {                        row := assignLObj.getRowNo(GlobalDistObj);( N, L, o4 ?' a9 X  z
                        if Row = -1 then -- since 70
5 \; G: A; l# N: v0 U3 L0 n                                if lan=1 then% K9 I% |6 ^  p% k( ?1 f
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
* g) X3 j2 q9 d: D                                                to_str("in der Andockstation: \"",?.~.name,"\""));& x1 l% g3 J7 W: q
                                else
2 z7 j1 X, B9 ~7 y                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
/ y4 \2 B. ^+ C                                                to_str("in docking station: \"",?.~.name,"\""));                                : }1 m) g& Y' T. O/ R( j6 y+ V5 l
                                end;
" }1 c- O8 Z! \2 D& C& h8 E$ _5 D4 g8 e                        else1 |/ c9 i% F* g& z, Y3 p6 N" w# _8 @
                                @.Destination := assignLObj[1,row];
9 f4 p  T+ Z" Q% O" n                        end;                        , o4 N0 @$ o7 {: K6 ?0 u1 p: ^6 p
                        newDirection(@);
% N+ A9 W9 \8 L2 i0 t4 E- ]                        @.HasOrder := true;
6 k+ \9 O, `" q# j                end;% W3 A' j6 o, h7 c
        end;
+ O$ l) n, X; }/ Vend;        -- of the method
# {" V2 H; n  }6 a$ o
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 + o) B/ @4 g  _  Z9 C

1 i# i6 w# g' Y( `1 j/ b这是AGV_putin中arrive的method。
! t1 P* F% y  J+ f: I8 g  o4 {2 c3 g( ^- y4 U2 e
当到达物料速度越高时,这个报警更多,
, K/ D  G. `8 q% c" s- h9 Q$ v可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
" e* j" e9 a( T程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
$ }" |* z/ W  P- X6 j, S
5 [& t8 {9 g  o4 _  M  A另外一个小建议,就是move,所有的move都可以这样
9 u& h2 b  u$ J( ?4 S6 ?) Jif not move() then debug end
% `& H) ~0 v4 }( [这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
$ W/ W! Q/ b' l( b! M7 P" cplant simulation中的free libraries有AGV模板,2 H- H1 \* S+ r
里面也有案例。7 d/ t$ Y, P/ l9 o  l
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
0 k: b' R( a; v( X& Z5 Y5 _
, ^/ I+ z2 h1 B% A) y( S3 Y4 t我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 # Q7 c! P0 [# h8 [0 A

% J. ?0 N+ ]$ h; T那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
  o8 d5 ~3 _4 |2 N这是AGV_putin中arrive的method。% a! O% g( G3 M9 D7 ]; X) X. j9 x$ e

% P! h, q4 r4 d- E当到达物料速度越高时,这个报警更多,

4 O; A0 I) E& j/ m! _另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-5 17:54 , Processed in 0.020632 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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