设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9235|回复: 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'
- i5 w7 d+ Z( H1 m*/
8 i) X- |! {. L  @( y) B, uis0 p% k% g, O/ Y$ A6 f2 H
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;, ~% p% p0 P6 n; g
do* w& x) s* z, H! h/ _9 F
        Lan := rootfolder.Internal.Tools.AOLlanguage;) r/ W( u. `! v6 P
        if current = @.Destination -- else return. z- v" i) `3 p& u0 m$ Z! B: {
        then
7 G4 Z$ K* h0 t& W                @.Destination := void;
1 x3 t( b# ?5 o" f                if @.occupied then
0 O2 N! k! V' a6 c                        part := @.cont;
) B1 `. r6 j$ X; G                        @.transpOrder := void;
% R; r# O- s1 J. ~' _                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
) n/ t2 O0 I' g- j. A6 ^7 G                                @,root.eventcontroller.simTime);
+ @& s& Z8 S* R" t                        @.HasOrder := false;
( H! y7 I% g! b) X                        @.DrivingHome := true;
, X: c1 o- H: S, n& k  r6 K% J: U                        rgManager.tryToStartTransOrder;' Y) t0 T$ C, u% w
                        if @.Destination = void. p8 r4 X. |& U8 T6 }
                        then -- no transport order for vehicle @- o2 j' a& J+ S+ @0 X0 i8 d9 M' N5 v
                                @.Destination :=1 p+ R5 a3 q# M8 U  Z0 \
                                rgManager.nearestFreeStation(@,track.~);
7 ^6 u# m5 z. G/ N/ q                                newDirection(@);     E) M& c3 X- {3 x" ?
                                if @.Destination /= void then
5 U( `4 E$ j' ]: Z                                        @.Destination.NumReservation :=3 _' k$ O* e! z! X, @7 ]+ D7 |! g
                                        @.Destination.NumReservation + 1;
2 }  f  M8 S0 R3 ~. M& x. ?                                end;
  G2 R* \+ n9 r! }  _( [                                @.CurrIcon := "drivingHome";
4 t) N  f( w6 x, X9 z+ w" ]                                @.DrivingHome := true;$ X3 S$ S6 _+ ]& N! f
                        end;
4 P: S0 ]  w7 ~; g                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
% l' t) ~: P0 p. n                        part := @.transpOrder;
1 Z( }7 T7 {; p# J3 E( {3 H                        part.move(@);-- load part
3 i. V) J1 E* h4 Y' K# N7 I                        @.CurrIcon := "load";
- D, k) B7 v& N$ C                        GlobalDistObj := part.globDestination;
' y0 m: J2 k. q9 B  n7 {                        assignLObj := rgmanager.rgAssignL;" Z8 u( m% b  n2 b( I
                        row := assignLObj.getRowNo(GlobalDistObj);6 o) e' m! V* M% w4 Y4 A4 ]" b
                        if Row = -1 then -- since 70* u- C# ~9 v# [" f
                                if lan=1 then
" R# }+ \7 p8 W  F0 G6 Z: k: Q7 K                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),# r! S. O2 Y6 w# ]9 a5 F
                                                to_str("in der Andockstation: \"",?.~.name,"\""));1 z. P3 l' }8 [  X# s3 l
                                else' d' \/ g! p# U: z; l# ~: J
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),1 r$ X0 s! d0 g+ v
                                                to_str("in docking station: \"",?.~.name,"\""));                               
) i4 _) i# k  g; n) ]1 v                                end;7 E+ }2 ^' g/ G
                        else3 c# U1 E1 F% W( J- h5 x. h# I
                                @.Destination := assignLObj[1,row];
+ u0 J  T0 A  I  \                        end;                        & L4 a9 b. w* @# v, J3 N! I
                        newDirection(@);3 k. s" V9 L8 \% N' `  q
                        @.HasOrder := true;
# ~& E' v' @: w% r                end;
- g& A/ |2 {3 n' D& D        end;2 h4 y, _2 D( f9 k; j. y8 k
end;        -- of the method
" T, j) n+ u) G
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 9 ?# m4 A( M3 o/ ~7 o+ y6 t/ C

& l, X! Z+ z( N这是AGV_putin中arrive的method。
  k: o" t! t! D  l
1 I& T: x+ S1 {% X1 |( l& A' P当到达物料速度越高时,这个报警更多,
! i, G" ~* F/ G8 z可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。, B" s' W- z- `  i" m( _
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
' [7 u; `, I% U8 }# y6 D
9 Q5 e0 V  T9 d) a$ U, _& `另外一个小建议,就是move,所有的move都可以这样0 _2 h' u: k+ A# d3 [
if not move() then debug end
" r; e/ O  P% ^* a这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
) s# K  `( }: e7 l4 v! |; \plant simulation中的free libraries有AGV模板,
/ Z! U. s5 E- y( E5 E, F里面也有案例。8 @1 T7 i: F/ S$ D0 I- a1 u  D
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。9 q& X& x; K% u

- b) k& o& Y5 c3 e% P我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
; a- S# y# b% y" [  V* e) j- o2 q
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
0 t# r9 {7 k& w, o5 r" j0 V这是AGV_putin中arrive的method。# R+ ?9 \, {! b+ q3 `

: v3 g2 L$ h! T2 Y当到达物料速度越高时,这个报警更多,

/ H0 W* r' C" }$ A另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-20 16:33 , Processed in 0.018118 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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