设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9949|回复: 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'5 Y" d# F6 A9 q( N
*/
% C& ~. e- m0 Cis
) d- Y9 C! j# V: A& c# g        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
) Z% p5 R" W, {' @) G0 `$ _3 gdo
) J" h1 j9 A( I. o$ F; w7 X# L+ o        Lan := rootfolder.Internal.Tools.AOLlanguage;
& G# Z5 g3 v% m5 D, C5 P  ?        if current = @.Destination -- else return
" Y5 v& R% Z" H, }        then
5 m7 L2 K/ u' H                @.Destination := void;: s, Y- e! x  @/ c
                if @.occupied then! ]1 W  W- o2 U1 t$ ?5 K
                        part := @.cont;
# Y5 O( k* y9 W' ]9 D                        @.transpOrder := void;
; ^+ S4 ]% D0 B% K" ]' L0 {8 K' S                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
$ E4 i) N2 d" p% H- k% T                                @,root.eventcontroller.simTime);  W$ c5 r1 T, ~9 g2 F
                        @.HasOrder := false;
  j( Q. Z: @  q( R- z/ f                        @.DrivingHome := true;
' d4 K+ m- U# I2 _                        rgManager.tryToStartTransOrder;
+ u* G  r- B, L6 S0 ~                        if @.Destination = void( I/ m, A! Q" U% i. N: p; ?
                        then -- no transport order for vehicle @) v& D* {* L( e" j" t6 o& T
                                @.Destination :=- B* d& M/ P' z4 `$ S" J/ U
                                rgManager.nearestFreeStation(@,track.~);
' V+ N- n# ~3 n( N7 K; q                                newDirection(@);   7 r3 p; d+ J& H% S) v* j( ]  _
                                if @.Destination /= void then
* K& {1 a5 }0 ]0 ~, I1 n                                        @.Destination.NumReservation :=9 R; b9 B8 C4 }: n2 c, q% s
                                        @.Destination.NumReservation + 1;
) G) A3 I2 l- O, z# l# h$ O2 j                                end;
, R$ f( Y# J+ e                                @.CurrIcon := "drivingHome";. A7 s9 x' J2 T2 }9 f
                                @.DrivingHome := true;3 v) X, @* H  X! O6 s/ {: w% c
                        end;2 {, h+ C7 }7 ^' L2 g
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
8 u1 M/ u+ c3 G+ H4 ~% q) y/ X! l                        part := @.transpOrder;4 O7 ~3 x2 W' o; E. ?
                        part.move(@);-- load part1 |. |& |2 E( U) W4 y
                        @.CurrIcon := "load";
' t# t% M6 \/ `: H, Q  {  A7 ]                        GlobalDistObj := part.globDestination;
4 B$ Y+ O) X3 [8 N6 Q9 g                        assignLObj := rgmanager.rgAssignL;
& R4 I4 M3 |2 _  `                        row := assignLObj.getRowNo(GlobalDistObj);1 w; [/ A3 {- b9 w1 i
                        if Row = -1 then -- since 70
$ a# {% C+ l+ {) O# y) `                                if lan=1 then
3 s; j- D. J# l8 j) v7 w1 x) C                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),; f8 ?: d$ h5 @+ p5 V, w# X- l* y
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
- l$ b; d4 r4 \                                else# Y  `. C3 `; g7 D3 m' _+ Y! r
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
+ Q; {8 N' D8 y$ P5 ?7 u                                                to_str("in docking station: \"",?.~.name,"\""));                                ' Y" z' X) E6 ]7 a9 |; G( u5 R
                                end;
* H6 ?) F, Z1 ~/ V+ G9 h                        else. T$ S4 w# |1 }  M4 g4 \( u+ j- t
                                @.Destination := assignLObj[1,row];7 U2 F3 S/ U. y7 z' k* w
                        end;                        : \0 ~" Q' o! q( R" i7 N
                        newDirection(@);" j* {4 M$ B. f7 R% ?0 l# [
                        @.HasOrder := true;
. ]. z. L) L, Q4 A1 Y- [                end;
* Q2 E4 R) H4 Z* L7 W$ ~1 M        end;
# d8 `5 y! h$ l* cend;        -- of the method, Y! u5 ?2 ~9 m( M% E0 V
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 8 o+ {7 m$ u+ o; V% d0 n: u

1 B1 b( i$ F7 Q  ~" a2 V这是AGV_putin中arrive的method。
8 \  z: {# Q1 ?7 S/ f/ K, F5 G
当到达物料速度越高时,这个报警更多,; _! g. U$ a3 k  R, N. o% h' E
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
# _$ y7 X$ ^' ^5 x0 O3 f- t3 V& `程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
7 J$ ~; T! X$ P9 ]2 p: r' v7 m2 H  b2 r* I
另外一个小建议,就是move,所有的move都可以这样
4 e, C; V* ], }* I$ e* aif not move() then debug end
% D5 Z1 ]" @3 a- W, H6 l3 p0 i1 M2 v& R这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。* {" k* J) o% }! d6 n( l( G& P; _
plant simulation中的free libraries有AGV模板,$ W$ R& W5 P: M0 ~# M+ Z/ O
里面也有案例。0 j) i7 c$ P+ J# H1 A/ a( r% N7 S7 D
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。; A% r' H( @4 d1 I
- _# l1 h" A" h
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 " Q2 t# A. [' B. R$ i9 M
5 j" I( S* a) w+ V/ Q7 v
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
) n7 v# m$ v' d2 t" P这是AGV_putin中arrive的method。
' r: ?2 g% U8 P( C4 P
# y% v8 l' `( p* y% i当到达物料速度越高时,这个报警更多,
9 |) X. ~* k8 v7 ]& R
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-4 00:50 , Processed in 0.021970 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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