设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7636|回复: 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'
' m" S2 g' }; t. {8 r*/: h5 R) |: f  H6 B
is
* c4 [/ x$ a! L. Q. j# J        part, GlobalDistObj, assignLObj:object;row,Lan:integer;5 K  {; f: j2 q1 w1 v
do! t5 s9 H/ w7 P/ N" F! @0 }9 f" M' }
        Lan := rootfolder.Internal.Tools.AOLlanguage;
( \2 h3 N! M6 a% R, [. T( @        if current = @.Destination -- else return% Y9 c5 y! W: p/ e. u' L, Y
        then
' Q3 R# j  V5 f* @) j" G                @.Destination := void;
$ E8 W- K% P! d6 ?                if @.occupied then/ c- ]) }( K) z' @/ \
                        part := @.cont;
1 `& {, J$ `6 z5 W1 [% y                        @.transpOrder := void;
8 A8 Z2 g6 n: g                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
/ A( F1 J9 R( n% j) B" t                                @,root.eventcontroller.simTime);. Y$ n. T* y+ s; N* X8 I
                        @.HasOrder := false;
4 w/ r+ F0 z4 Y' R- ?. n; h3 W                        @.DrivingHome := true;
5 {' A3 J; [. F1 I1 g$ E                        rgManager.tryToStartTransOrder;
( q7 P3 Y! _% H* n+ }- C                        if @.Destination = void
7 E6 _: Q  \# _8 {- a4 E! m                        then -- no transport order for vehicle @7 ]8 A( G1 g( ?# \
                                @.Destination :=
. r) R5 H* b- w0 q3 h3 u/ j  A1 Y                                rgManager.nearestFreeStation(@,track.~);
$ [) m& v7 |( r: f$ C+ p6 t                                newDirection(@);   
1 I4 k* c0 N4 @/ `  N2 e                                if @.Destination /= void then% Q& ?, B: K' @% E5 j2 B: B; {1 q1 B) e
                                        @.Destination.NumReservation :=
% q5 u8 L! y; B" v. ?                                        @.Destination.NumReservation + 1;. |' A/ y0 {' n
                                end;1 a% i- M' p, U2 Y. t: ^5 a% z9 F
                                @.CurrIcon := "drivingHome";
  b; Z6 o3 x3 ], m9 S2 l; ?                                @.DrivingHome := true;% B4 Q( u5 Z8 F& ]7 k( \! R
                        end;
/ Y$ i8 b( w* [' u1 a                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
  e* u  A+ u) d# O2 ^                        part := @.transpOrder;0 `+ X4 T& L5 O4 m6 \0 _
                        part.move(@);-- load part& V  L0 @0 j7 x3 F, {3 r, j, w' i
                        @.CurrIcon := "load";9 w! V3 v0 r& B2 q: c" f# j
                        GlobalDistObj := part.globDestination;
) a9 E3 W$ ^" b7 ?/ U9 B- M1 t                        assignLObj := rgmanager.rgAssignL;
$ H: {4 i  a  s9 @# l0 P                        row := assignLObj.getRowNo(GlobalDistObj);$ l# c2 X( L& q! E, y' n& r4 H7 U
                        if Row = -1 then -- since 70' N6 }, j7 H) f* ~: Q1 c, g/ K
                                if lan=1 then
, _* y- v0 a: M8 ~9 _7 _, A7 O; |                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ h( U& g4 t7 D6 T: x# m' |                                                to_str("in der Andockstation: \"",?.~.name,"\""));
, M  v/ q& s$ R, ?6 t                                else
7 V3 ~8 A+ F1 o# ?  D                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),1 f% P# _5 q8 c9 E, p7 R
                                                to_str("in docking station: \"",?.~.name,"\""));                                # N$ }5 i; B+ s9 u: z
                                end;
% B8 n8 ?! D$ o$ n: |( t9 Q                        else
9 |9 k5 I0 ~5 k7 a# V6 n                                @.Destination := assignLObj[1,row];( O/ j& u& h% ^) L8 |) ~. M- z& ^2 }% v
                        end;                        $ E  j9 v' I$ M" y4 ~" Z( M# j
                        newDirection(@);
7 M' f0 m/ D1 N- Z) Q                        @.HasOrder := true;# @. F9 ^! P! F! }% D/ U1 s5 }
                end;
! }: f  Z$ y$ Z' _        end;$ K0 s7 j" O/ t
end;        -- of the method  `$ S7 _" F' ?2 s3 M( }" q
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
, |/ D3 F# ?- n: m$ A" }; Y
( Q! B- |) T  n) e0 A0 h这是AGV_putin中arrive的method。
: R- x! R% }. K6 C; d( N7 l' b: L! P  H* t% y6 H
当到达物料速度越高时,这个报警更多,
" r$ M# y) q3 A可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
6 }1 G" ]. M9 z5 \5 M- w% f程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
. B: k: ?. k* k$ x  g4 v  a2 R3 K8 ^, q) B
另外一个小建议,就是move,所有的move都可以这样
8 k# m% R0 S/ D0 ~+ Kif not move() then debug end
1 `$ G! E: q! X0 w3 I( B* c这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
' R6 u% N" U- z0 bplant simulation中的free libraries有AGV模板,
& m2 t4 w. g# O+ ~里面也有案例。% T1 d8 C& b6 P4 e4 P
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
) ?" ^% s5 a5 x+ J6 |3 U1 \
0 n7 l2 z  `) t* k& ?, N我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 8 s% }* o: j1 u& n& S
; h5 q- O: F, t% V4 L; ^
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
/ H5 b( `  `9 ~! m这是AGV_putin中arrive的method。, I) O6 D/ i9 H! N8 s% P$ Z( D
6 a( G* P7 H' Y# Q3 ~1 M
当到达物料速度越高时,这个报警更多,

7 f1 E2 L$ t9 p) e: J, C另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-21 12:53 , Processed in 0.023241 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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