设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7356|回复: 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'
. d5 e0 A5 K% c9 b6 \*/9 V: r! [% t2 T7 S) j1 ]
is6 C/ }% {4 X. \2 Q: O
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
6 s3 U6 \  i& w: N8 ydo
4 M- I" s, C- Z7 y* O4 @  K        Lan := rootfolder.Internal.Tools.AOLlanguage;
" E0 z- i4 Y9 s6 P' L        if current = @.Destination -- else return, W9 X" `) d. @2 g) \/ J# C& Y
        then$ {. i: }6 B7 N' A' r" y
                @.Destination := void;
; f" {& U2 R, h- z1 w' s                if @.occupied then
8 T' w6 \" Z/ H- `  ~& p2 Z                        part := @.cont;
5 l+ W4 Z; A0 G) g9 B; o                        @.transpOrder := void;$ p$ Z4 m+ [. [9 j
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,% U4 G5 R& S4 d2 t7 r& g
                                @,root.eventcontroller.simTime);' T# ~" I& \' W
                        @.HasOrder := false;
" Z/ g8 W0 W, U: y# ^( {                        @.DrivingHome := true;
1 r+ d' J9 |* O, L' {+ A/ h) A, l9 W                        rgManager.tryToStartTransOrder;
0 |* k0 ?4 w1 r6 @6 Z; k; t                        if @.Destination = void
8 F% |! Y! ?* @                        then -- no transport order for vehicle @- C( j+ ^4 {/ _, A2 f9 X1 M
                                @.Destination :=
8 P; E' W( G. }! t! G3 \                                rgManager.nearestFreeStation(@,track.~);, }' L8 V* {' A7 r4 y; ^: V
                                newDirection(@);   
" d/ Y7 Y) {8 m+ t                                if @.Destination /= void then
5 N/ h9 e4 T% }9 r- _  R+ M                                        @.Destination.NumReservation :=3 ^2 {$ N* y- N8 W2 F
                                        @.Destination.NumReservation + 1;5 p( C2 C, ?" W& _
                                end;  @  U( y$ Y. G8 D1 [, K
                                @.CurrIcon := "drivingHome";2 A  k3 u) U  @/ @  {) `
                                @.DrivingHome := true;, ~$ X8 ^: @2 h, k
                        end;" \; U$ Q0 ?" c/ `% ^$ R& v2 \
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
; a* i: K+ b- Z                        part := @.transpOrder;
2 o8 X. ^; B" x, I5 I5 O: k: J                        part.move(@);-- load part' F1 e  P+ A. o0 d# V1 B( _
                        @.CurrIcon := "load";
: W: J6 n$ L/ {0 k                        GlobalDistObj := part.globDestination;
% c& n/ _7 \! I1 F$ J0 D% h9 [                        assignLObj := rgmanager.rgAssignL;
, C4 g& k5 i7 a( G                        row := assignLObj.getRowNo(GlobalDistObj);* h- Z3 ?3 l) d' j* A
                        if Row = -1 then -- since 707 ?0 ?0 r! p/ }; j
                                if lan=1 then
6 s1 O; d- T9 O) y5 E9 P0 r6 m/ C                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
6 U5 H' v9 B2 |( R. E5 T* R                                                to_str("in der Andockstation: \"",?.~.name,"\""));
% o* G1 o9 s6 J  G  S7 j                                else
" E3 _9 w- U7 U# ]9 |4 x                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),* t5 w6 Q' n1 g0 ^
                                                to_str("in docking station: \"",?.~.name,"\""));                               
# a* ^" a% z: N1 N                                end;
7 z1 E2 l6 d* O+ t& R9 c7 z" U  W                        else
# y, r/ [6 t* {2 k# g8 V4 y" A+ w. Y                                @.Destination := assignLObj[1,row];( V. T% Z7 {1 O' v1 a# A4 y( V
                        end;                       
6 W6 G4 u' E, T7 l& b7 D                        newDirection(@);
: }3 r: s* c! m" T) i                        @.HasOrder := true;! i: @" r0 X' Y* W- F) K
                end;
! }& a: M6 N; [/ M% a" L, K        end;  L( V; H" t% o6 |+ f) k# B! P0 R
end;        -- of the method. s+ y# E* X7 w) I; I7 j, `
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
4 Y& v3 G  ^* Y% W; O8 z
& T5 ]  s% C: @; \这是AGV_putin中arrive的method。$ w: e' p0 {2 v* G4 `. E
$ V" a+ E. R, l8 E! d! r
当到达物料速度越高时,这个报警更多,
, n# v& J* F; Z; K可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
, @& p% k) ?* k+ [. `程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?4 v- L( z+ ]  h5 z6 d$ j5 K! _
$ K9 i9 M: m4 _: H
另外一个小建议,就是move,所有的move都可以这样/ D5 K3 _& P, \9 ?$ s
if not move() then debug end
  C, A. F  F5 \/ S5 H% d0 b这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
& G: C5 {- n8 m, y9 Z' ?" Y# v4 aplant simulation中的free libraries有AGV模板,
' ?! `5 w" j2 n+ O+ O! V" r8 l& d里面也有案例。
# s- }7 v  _1 g8 V+ R我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。# h  R# @9 Z5 ^
# D8 Y, R0 I1 D0 C
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 2 H! B# `& |# D8 c2 K# B7 @
3 {1 J8 D1 Z6 o
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
& V3 z+ q& _$ M1 T5 p% E; I这是AGV_putin中arrive的method。
5 T' W* \& X, \9 k! @5 y# i  b& @7 a
当到达物料速度越高时,这个报警更多,

! A" n3 q, a+ Q6 x" D另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-6 15:31 , Processed in 0.018528 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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