设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9496|回复: 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'/ j- C9 _7 V" ]5 ^7 }
*/
7 g3 `3 b! p7 ?+ wis
4 m: Z8 @7 w& E1 J7 t        part, GlobalDistObj, assignLObj:object;row,Lan:integer;) i) r( G0 Z+ J: ]+ h
do
- O( {- e; w" c, b        Lan := rootfolder.Internal.Tools.AOLlanguage;
" {9 Z0 q- w+ w4 M        if current = @.Destination -- else return9 X! i( h4 }& j" [9 m0 ]3 S) t8 g
        then
! i' B! M/ I' O4 T                @.Destination := void;
9 f3 i3 ^& `; O7 H! O$ V8 c( I2 q                if @.occupied then
. X+ @9 B0 D" }, ^) M- F, C$ j                        part := @.cont;# ]  Z3 c6 Z( _! N& g
                        @.transpOrder := void;
8 m" J4 ]: z- A# ?, K3 s                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
6 p0 U' }- Q2 r% L  p/ n2 [0 i& @                                @,root.eventcontroller.simTime);3 H7 I8 Y6 Q% Z
                        @.HasOrder := false;) O4 e# O% y& c5 R, ~
                        @.DrivingHome := true;
' j$ a+ _& N. e1 x5 K                        rgManager.tryToStartTransOrder;
/ C+ e) x% S" N( L0 N& T: t                        if @.Destination = void
0 S; `' Q  P1 Y) o                        then -- no transport order for vehicle @
  y9 i' Z3 u% `, e                                @.Destination :=9 K+ e' P: n3 \2 }2 D
                                rgManager.nearestFreeStation(@,track.~);' B- M: t- y! S* o/ I0 o  `
                                newDirection(@);   
) f+ v5 v6 t( ~4 b                                if @.Destination /= void then
, r6 g( S  A( v' C                                        @.Destination.NumReservation :=
: e% F/ q7 D+ v                                        @.Destination.NumReservation + 1;
9 E! b! T9 x* F5 N* C                                end;4 a# o- g6 P: R' f7 c4 H* ?. }
                                @.CurrIcon := "drivingHome";
" ?+ M1 U1 T% a: ]# C                                @.DrivingHome := true;( M3 H! a5 d3 H3 C
                        end;8 ~, u% r& F5 U& u
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station  z8 i' O. \0 {. E
                        part := @.transpOrder;& }" ?2 M2 H5 e% B0 \7 X
                        part.move(@);-- load part
+ [' `! Y& h) h. I5 u5 v                        @.CurrIcon := "load";" t; l, W# |; C" T; [
                        GlobalDistObj := part.globDestination;. V' p. H; F, G1 i1 W
                        assignLObj := rgmanager.rgAssignL;+ x# I  X: \3 b) }
                        row := assignLObj.getRowNo(GlobalDistObj);
  C* C2 q1 l, b3 G6 y( n% E                        if Row = -1 then -- since 70( R) {7 t9 O; q. D+ h, @
                                if lan=1 then3 Z  r6 W# n' ~+ M& b
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),6 N6 X! M3 p0 O
                                                to_str("in der Andockstation: \"",?.~.name,"\""));3 [/ s& y6 D2 C0 J+ K
                                else
' N/ G+ W, P$ ~( u( B                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),: T3 V1 m0 d. Z  T- J) D3 M
                                                to_str("in docking station: \"",?.~.name,"\""));                                4 O" v, M( b( ?# {7 v, x' L$ K
                                end;7 K+ B9 S, a9 _: t
                        else8 @: `" p8 X3 o: L- k
                                @.Destination := assignLObj[1,row];
' v# X* C6 Q! d" }3 I& |; J                        end;                        - t* \% W5 T$ Y' h8 L
                        newDirection(@);
2 w9 h" s  U5 e1 ]5 ]4 U4 q/ v# ?                        @.HasOrder := true;1 D4 v) t9 l9 t  z
                end;3 L, a9 C9 _4 |4 `
        end;0 e5 K$ z8 C( ?! I3 S" |/ e
end;        -- of the method! R" n+ |9 ]2 e' ]/ T; q
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
4 n) n3 s* X7 W9 o8 b( D
# g) c- `! I. Y. A: u# O% q; p这是AGV_putin中arrive的method。9 V! F7 }: K0 b7 ~' C: U0 O
7 a( W7 l5 P$ E9 t
当到达物料速度越高时,这个报警更多,
& i, g( G+ M, \7 j  a& X# E可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。, V3 \. H1 P+ r+ e! ^8 J- N; Z% S
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?1 l5 K/ Z" F2 P" \, h7 L: h
& O. ?$ v( i( J
另外一个小建议,就是move,所有的move都可以这样% ?. m( W7 t; U# y8 x8 Y- m% x( Q  Z
if not move() then debug end: k) p; k" ?( Z% n! {- }6 r& p: h+ a
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。% Z4 `4 _( r/ b1 P9 e8 S; T; \6 Q
plant simulation中的free libraries有AGV模板,2 L( Q3 B2 B4 g' l
里面也有案例。5 F, Y) ?4 n9 H
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
  T7 c9 b- l4 F, B  d9 l) w4 h# J  e" X8 e
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 : G5 u0 o5 d+ k  |) \. x& g8 e2 h

5 d7 G4 N4 d4 y  l" r% C) s# `  ~那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ) {1 [( D: t- l# ?) D
这是AGV_putin中arrive的method。2 Q1 K& @! c. n3 C

1 _0 U! t) _2 u* _3 i当到达物料速度越高时,这个报警更多,

) @* T' \6 n1 |% w' ~/ a另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-4 07:41 , Processed in 0.015941 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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