设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8935|回复: 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'
+ w( W$ K7 I! l; }6 p! J* A9 J*/
8 |7 A+ c' v% u& ]; ]. |& \- nis
. U5 U- Z7 D/ P# ~$ Q" v8 V; B        part, GlobalDistObj, assignLObj:object;row,Lan:integer;3 ~# v8 _! |, d+ ~2 \2 S7 W2 ]
do9 X3 {1 C/ `& o* O5 z1 c8 Q' M* v
        Lan := rootfolder.Internal.Tools.AOLlanguage;" f& L4 Q% u1 b5 n
        if current = @.Destination -- else return
$ P1 t- u6 \' \  K& f        then
% F" V$ U$ w3 H% k, U( H8 i                @.Destination := void;
" m) b1 X! K+ C0 H1 A; c* U                if @.occupied then/ A2 d+ Z' W' `
                        part := @.cont;- u, z0 t8 m! }* V) H  Z. b. W
                        @.transpOrder := void;
# P3 y; s) j1 C; P                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,& z% s- X) Y- [. }# }( M0 Z1 b
                                @,root.eventcontroller.simTime);
6 @! Z0 T5 }" t- g' ~                        @.HasOrder := false;: D2 r) n1 t) [* r
                        @.DrivingHome := true;0 B2 H7 F7 W! _9 r3 k! Z
                        rgManager.tryToStartTransOrder;2 [% G7 p, u  k
                        if @.Destination = void
# ^7 _& V& n+ y, w3 X                        then -- no transport order for vehicle @2 _3 ?- t" e" w; L# C
                                @.Destination :=
: G* M' m7 I! ~% V9 R                                rgManager.nearestFreeStation(@,track.~);
  }1 Z% G+ E/ b- p1 O8 X# E; C                                newDirection(@);   9 ~3 g- F6 H# H2 l8 W
                                if @.Destination /= void then
1 |9 I8 m# \& W8 P7 ~9 x4 V5 I                                        @.Destination.NumReservation :=4 }3 e) T" l2 m
                                        @.Destination.NumReservation + 1;
2 P6 {: l* M7 I% P  B" Y                                end;: |6 B  r0 Y/ l7 N/ Z
                                @.CurrIcon := "drivingHome";' {7 X" G  K0 m) [' l7 D
                                @.DrivingHome := true;
! a/ ]. j  {) [  _                        end;- K4 o) c' j6 s; n" a1 z" Y- q. ^
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station+ r0 U2 f+ s: b8 S5 r
                        part := @.transpOrder;
* F6 q' q1 V- m$ ?1 O, ^                        part.move(@);-- load part
/ }1 C0 m; F  ]' R2 U                        @.CurrIcon := "load";
1 A% R- F2 @. N( O- [  t; r                        GlobalDistObj := part.globDestination;9 R+ g- ]" f( I0 F( c, a
                        assignLObj := rgmanager.rgAssignL;. [) }5 ^3 @' J
                        row := assignLObj.getRowNo(GlobalDistObj);
& U8 w2 ]& s" P( w) Z7 p                        if Row = -1 then -- since 70
8 Z3 M6 l# ?* b, t5 Z; V0 H$ Y' f                                if lan=1 then+ g3 H1 N+ K2 Y3 t; f* K7 G
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),( x4 i& r# N: G* C( W4 ]1 ?
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
  r( X- [6 |% V# R: }                                else
) P( I6 u; ?4 s) a( n# |, q                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
. [8 G- `+ M1 q                                                to_str("in docking station: \"",?.~.name,"\""));                               
& ]- d6 [' k1 h0 ]                                end;+ T  K9 G/ D: p) Y5 k1 F8 Y1 z6 x6 n
                        else
# C5 L7 \* S: C, R, ^4 N% f3 }                                @.Destination := assignLObj[1,row];+ M8 W* u  C3 D6 b
                        end;                       
# P- G2 E$ O8 s* K2 D                        newDirection(@);$ O7 b- i) B2 V/ t. q( M1 ?" x6 g8 x7 |
                        @.HasOrder := true;
% k* e$ t2 c  l% {! M6 g5 V                end;
' T7 `8 X$ l+ b" P7 F        end;  v$ I9 C2 T- H5 j+ }; w
end;        -- of the method! T( @* F, j, d8 _; k
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 # Z3 B+ F4 ?% v

1 s5 K: b# z/ A" g+ y这是AGV_putin中arrive的method。% n6 _: ]' ^9 Y' ~! C) ]
" N( D$ W" Q9 l; _& V
当到达物料速度越高时,这个报警更多,9 w* Z6 B8 A, b1 Y7 G
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。- @# r4 w7 P. o( h- S" y8 k
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
; ]; h: Z5 s& C6 q7 `" b; f3 P  d# d; A+ T* A4 `
另外一个小建议,就是move,所有的move都可以这样! t3 a6 w: X1 _% Q2 F& y
if not move() then debug end
8 N; p% x! Y4 R1 R这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
# C, v! M0 l9 i, Z/ v+ [  T+ e# j4 M% Splant simulation中的free libraries有AGV模板,
2 g( s7 R5 i: j9 Q4 t+ O里面也有案例。6 [9 ~7 M0 m" I: i
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
1 x$ v- R. o) t! p0 W& g3 Y9 F3 o
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 / L7 g' M, j5 a' L* C! U( q
: `. A" r# Z* w# ~- B% L: k
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
' I; ]4 U, N3 V) \  Y, G+ h3 x这是AGV_putin中arrive的method。9 X; l: r* j8 d8 }8 O

- V% V6 d9 Q, N  I3 m当到达物料速度越高时,这个报警更多,

6 c3 Y# L) s' _1 y1 a9 O3 H4 m另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-5 05:49 , Processed in 0.017521 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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