设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9741|回复: 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'0 c3 d2 g( S: p/ G9 @  R
*/$ t  Y# N# k( i- V% m4 ?2 e
is. |7 I: p0 i+ }3 d  d
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
; F/ R2 I8 p; w) j+ l3 C8 tdo: X7 M) V% v, ?
        Lan := rootfolder.Internal.Tools.AOLlanguage;1 B" I3 M, t3 |" D3 r/ C- k! C1 C5 D
        if current = @.Destination -- else return, a3 P/ k( v, A; _( M
        then
4 o, y- ]3 h4 ]8 Y5 I: P                @.Destination := void;6 ?  y* f/ Y& e- Y3 ~+ S* e5 C* M" ]* @4 L
                if @.occupied then
6 y9 H. q3 e/ I6 c4 I1 k                        part := @.cont;
$ L; T$ D; t4 t% v& a' `                        @.transpOrder := void;
. n5 r4 S% ]" ?4 j+ ?: t' n' @                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,4 L/ k3 c8 [& X/ L9 r, }( F
                                @,root.eventcontroller.simTime);
9 Y; E( n" a& y1 v% d* c                        @.HasOrder := false;
" N3 p3 }, k6 r0 z                        @.DrivingHome := true;
3 {; R  H+ S; Q                        rgManager.tryToStartTransOrder;
  H" c& k* {0 ~/ V+ p                        if @.Destination = void2 A& a% q! I! {/ N2 M! ~
                        then -- no transport order for vehicle @
1 r3 p# ]" L( k$ b                                @.Destination :=
/ G% [; b( H* |3 @* W                                rgManager.nearestFreeStation(@,track.~);" J/ p% Z# ~% m) {! q* B8 T
                                newDirection(@);   . I, Z7 q- o5 V; _
                                if @.Destination /= void then$ G+ G: o: C( d! w+ f8 M, |5 |: V8 w
                                        @.Destination.NumReservation :=' |$ \5 K+ ~7 o$ x) d1 \. ^
                                        @.Destination.NumReservation + 1;
% j. y+ {9 D) E4 a8 E/ Q9 u                                end;
9 O/ C5 M3 P1 R; T                                @.CurrIcon := "drivingHome";
# v% {& z# ~1 Y! m+ p5 H9 u                                @.DrivingHome := true;0 w" V- o6 C1 o( z/ c3 k# `. ~! `
                        end;3 k3 i. n0 g4 X' h4 _/ e2 x) v5 n
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
) J6 ~7 U) Z1 S2 J  z                        part := @.transpOrder;
- P$ l, `  K$ T1 l                        part.move(@);-- load part
8 ?. u& `7 p+ _0 l% R9 J( m                        @.CurrIcon := "load";) g- Z) I& O- L! q0 o# \# f
                        GlobalDistObj := part.globDestination;
1 x+ E% j0 A/ ]                        assignLObj := rgmanager.rgAssignL;- l+ k- S4 q3 y
                        row := assignLObj.getRowNo(GlobalDistObj);& |" L0 Y) B" j0 U# G4 V' q
                        if Row = -1 then -- since 70
. m/ E% @/ p, f! N+ y+ \5 d; S                                if lan=1 then; b7 b* M# W" w+ |- e
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),# q" H+ d4 D; x- Q) \: N  H
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
0 z6 m8 g# b# ^  i+ h) H                                else
) K/ s0 H( m0 X: o                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),) t( R, n. e! P2 ~
                                                to_str("in docking station: \"",?.~.name,"\""));                                & p5 }- h- c1 a9 C+ X( D
                                end;
' n4 V- h! x3 Y0 Y4 g. b' Q                        else5 E4 ?4 b" y$ ~5 T; h" x- L1 o0 V( Z
                                @.Destination := assignLObj[1,row];
8 J/ U4 ]. R! S  h' D1 g8 f                        end;                        . `6 F+ h4 l& x3 S2 ~5 `
                        newDirection(@);
  _2 @1 D8 x/ b( R" h$ i# b                        @.HasOrder := true;
; J5 Q9 e$ ]! r; p0 w; n                end;( l  N3 B2 C' I- L1 v
        end;- u2 u2 U: x$ J4 I  L8 I0 o2 o
end;        -- of the method0 F1 H7 p  l+ A& J5 X! C
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 + A: E2 Q+ A+ R) u+ s( x

# W/ V9 s7 L6 |9 Z& v这是AGV_putin中arrive的method。3 A% H- S& j0 h5 I2 L
7 u0 X3 ^# l1 X1 [- X
当到达物料速度越高时,这个报警更多,
; b4 j! N7 ^4 e可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。: d! E# P" L2 M
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
8 R% Q% K$ ^( f/ e" K( K: e+ z! E' {0 ~. A' G! K5 ?0 h! A& q6 q# d
另外一个小建议,就是move,所有的move都可以这样; c2 j* C/ c% `& I: a
if not move() then debug end
7 [" r. J6 P; L& I这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。7 e' |& r/ p4 }6 a; I; B
plant simulation中的free libraries有AGV模板,
( i2 T( w  M- {- |' g: h2 V里面也有案例。
0 T$ j7 [- z# K我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。; b! f3 @9 p# R. ]$ d

2 ?( P; a7 P. R, p( d& {& L" c我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
6 |+ L5 u: {7 B' m5 D9 Y. T
1 x4 A9 k$ r, k4 i2 d6 }: t那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
8 D  E) e1 V0 O! C* a% y+ k这是AGV_putin中arrive的method。9 S6 E" y) e6 o8 R

; |( b; s. A2 [# E2 ~' A当到达物料速度越高时,这个报警更多,

) L9 \% r' y' q; {另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-21 13:28 , Processed in 0.018580 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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