设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7039|回复: 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'
2 p/ p# `4 L0 [% }7 |*/" \: ~, k' [; C
is( I) L6 s  M0 |0 P- p# ^0 `
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
8 V8 k1 T) _; Q5 S1 ido
* I! c8 [0 Y7 n7 M- {        Lan := rootfolder.Internal.Tools.AOLlanguage;
) k( H* o4 v; b9 \% a        if current = @.Destination -- else return
1 r8 P$ T( b2 y7 O* Q: _        then( ]' z. \5 M- s7 h
                @.Destination := void;
" a1 ^' I3 m% c, q                if @.occupied then
! G! d7 ]7 _* l0 v0 @0 m3 d                        part := @.cont;# H0 ^6 v% w/ U1 ~* ?
                        @.transpOrder := void;
# I& N% d# y7 ~) V$ n8 S( ]                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,5 v5 p+ F) [0 U0 v3 d" r
                                @,root.eventcontroller.simTime);! M/ P4 m! D0 T: S
                        @.HasOrder := false;
( c: g( A' B' D1 Y                        @.DrivingHome := true;
+ y( R& ]* V" U- I9 C( E                        rgManager.tryToStartTransOrder;
( E  ?+ b' w. y4 H( r$ W5 n7 a" a                        if @.Destination = void6 x' R, \& z2 M) n- d, E7 ]! W
                        then -- no transport order for vehicle @
! p; N) _# x  P/ L: b                                @.Destination :=
0 \" b4 O$ }5 i9 T: R                                rgManager.nearestFreeStation(@,track.~);
! X# y( Y3 I: K, z; d: R                                newDirection(@);   / W+ n* V: V# |2 J/ k& ^
                                if @.Destination /= void then5 v, P6 h# {9 H: p# G+ f, U/ O' |
                                        @.Destination.NumReservation :=: X6 Q; u) i8 I3 b2 T
                                        @.Destination.NumReservation + 1;- L- l. q- K8 B# O1 q
                                end;
' _% w$ c' w$ G7 M                                @.CurrIcon := "drivingHome";
3 x7 ~8 q  y& E                                @.DrivingHome := true;7 v* E' Z' F, S/ S
                        end;
. `2 I9 Z$ J! l1 C                else -- the vehicle @ is empty, both vehicle and part are in the same dock station: P5 {: X! X: G/ b: X( {  C
                        part := @.transpOrder;7 e- b" j& m2 G& D' p+ [  J
                        part.move(@);-- load part; T" S) b: j  K# }5 A  ~) W  o
                        @.CurrIcon := "load";3 l% A4 U; t, x& e
                        GlobalDistObj := part.globDestination;
1 a& [) t& E8 k1 I/ V  G: ~                        assignLObj := rgmanager.rgAssignL;: ~4 C) t) [' ]" p7 J$ l
                        row := assignLObj.getRowNo(GlobalDistObj);
# y: S' r; d3 v! L- B                        if Row = -1 then -- since 70
. U: L4 m* q, \9 d3 Y                                if lan=1 then5 v' ?$ ?4 j0 b; M! ^! H) }
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),' \1 e* b* d& }+ |
                                                to_str("in der Andockstation: \"",?.~.name,"\""));4 U$ Y  Q& ]' v- H9 c( [% i
                                else
( h0 |% m9 [3 ], ^# j5 z                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),# L+ S. S: q: t- b+ n0 F
                                                to_str("in docking station: \"",?.~.name,"\""));                               
/ m# v" |- U' w, _: @                                end;7 }# M3 Z9 A; O
                        else
% E3 v- x( J6 D4 n, p                                @.Destination := assignLObj[1,row];' M  h9 k+ g2 `9 k" r
                        end;                       
0 ^) S8 |4 K& ?                        newDirection(@);
( N* K" J( k+ T                        @.HasOrder := true;
4 G% p, @- o& T& Z5 @  {3 v- M                end;
+ l' P0 e' {* m: S        end;
* Q0 X# y( G. i' p3 U9 Y% Bend;        -- of the method
+ e, _( t6 s, T# a
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 $ m  h6 Y- X% p! v" r4 s3 y- E

! B+ p5 ?- h2 ~/ b- m这是AGV_putin中arrive的method。4 l5 ^* ^( N# l! J
' a3 D# J  |6 ~% C" s
当到达物料速度越高时,这个报警更多,
: e. O2 S8 m$ o4 A  d% ^# d可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
% Q. D, Z+ G# X程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
1 |# B1 C$ g+ I1 a5 i( ^1 N, m$ w) v' R1 Z9 L3 C+ z6 `* _3 x
另外一个小建议,就是move,所有的move都可以这样( W$ i' y4 P5 |* {3 D- @
if not move() then debug end
2 G/ B  F5 ?, N9 w3 X5 L这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。" _# k" g8 c! [: f2 _
plant simulation中的free libraries有AGV模板,
& E4 E- K5 L4 g5 q" p里面也有案例。
$ o1 a+ J. G' K/ B# ^$ _0 x我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。7 b" k/ G4 W$ j7 T0 r

# E- z; I  {2 x" r' \- c& h我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 3 p1 e7 U4 E8 C7 Q

% ?3 Z5 |; `" i  [那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
) l0 w3 ?1 G  Q7 [, Y3 [. y) h6 _5 Z这是AGV_putin中arrive的method。0 W+ @) [" B, v" L; |9 W

! N8 ?2 @7 X, z" @+ X$ o当到达物料速度越高时,这个报警更多,
2 @; P5 n  O6 N+ i" k- B2 j
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-12 17:04 , Processed in 0.020250 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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