设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9058|回复: 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'
6 m6 r- ]0 N0 m4 b*/2 @$ C: n9 O6 C2 |
is
" ~. `$ J- t5 H/ Z+ F5 C+ x        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
, z6 ~" y  J; J5 l6 X7 ?2 {do6 G: `2 M; N& Y  G
        Lan := rootfolder.Internal.Tools.AOLlanguage;: B8 q" m$ v2 U" {+ J4 h& i
        if current = @.Destination -- else return
# Z+ d8 w9 ?/ O( D        then
# ?2 U7 h& f2 z3 q4 ]! w                @.Destination := void;
! i) {$ M( o7 n) [                if @.occupied then) J: [1 o% {& [6 p3 @6 l
                        part := @.cont;* l& Y4 ^- g2 x
                        @.transpOrder := void;3 x% ^! ^* W1 s
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,7 G! E2 O- x8 K8 ^7 l! g( G9 m$ }3 y
                                @,root.eventcontroller.simTime);: L0 N$ d! ^2 b* ^
                        @.HasOrder := false;
( z* P! Z6 L1 f8 z                        @.DrivingHome := true;
8 ~, V3 V* V# c; c% m6 `1 ~) z- E" L                        rgManager.tryToStartTransOrder;
$ E7 J! ^% O6 D5 A2 p                        if @.Destination = void
6 x( c- w1 U0 T, P' F) ]                        then -- no transport order for vehicle @% x5 m# y1 |) j
                                @.Destination :=
8 i3 b- [8 u3 }" ^                                rgManager.nearestFreeStation(@,track.~);( j; B  x" s8 p! q# x. v9 c
                                newDirection(@);   / I- @, l1 u: e
                                if @.Destination /= void then
  P* E6 ~% |' S' C% j! K6 h                                        @.Destination.NumReservation :=
: @. h* ?/ w5 Q6 O7 p0 [4 T% P                                        @.Destination.NumReservation + 1;9 _2 B- o* M# j8 x7 z
                                end;
/ l# x& S. V  S7 `1 Q                                @.CurrIcon := "drivingHome";* ^  M! C- |' M
                                @.DrivingHome := true;
. E1 v; W1 Z4 I/ [                        end;9 z8 s, l! S+ F. B: c* a1 c
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station( {3 q2 ]& F7 |, p+ i8 K" I$ m" L) M
                        part := @.transpOrder;
( h) L8 b4 ?. \" W& E3 s                        part.move(@);-- load part
5 y: o# y- o/ g: `8 ?. Q- a                        @.CurrIcon := "load";* ]) U# Z" v5 r- v" g
                        GlobalDistObj := part.globDestination;
7 }5 S. J( U- k4 ~* s$ M                        assignLObj := rgmanager.rgAssignL;& D2 n/ S9 _5 X4 F2 y9 `' `: V
                        row := assignLObj.getRowNo(GlobalDistObj);6 N% _' j1 n- o
                        if Row = -1 then -- since 70. g$ x3 Z. n+ @* u8 A9 n$ I8 l: m
                                if lan=1 then
& J' A8 f! k7 I+ f6 n' h& a                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),6 n* G9 k0 p) l& u/ K/ \: i# q" A
                                                to_str("in der Andockstation: \"",?.~.name,"\""));1 o) k; A9 O9 e+ g9 M
                                else! g6 m. }6 t4 W/ T1 p% m% C( `
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),& P) m$ q  N' v% Q
                                                to_str("in docking station: \"",?.~.name,"\""));                                . c- L$ ?' `$ {/ C7 e3 I
                                end;4 M* D6 L5 s* h# @7 Z) R! y
                        else9 n7 s! a2 t- Q0 I$ A
                                @.Destination := assignLObj[1,row];$ {/ Y' d9 w2 {5 U, L
                        end;                       
; [$ q8 i) G  G6 }4 B9 F$ h0 N. X                        newDirection(@);
( U8 ^4 k- f) y5 _& @                        @.HasOrder := true;9 @& e$ x9 c( ]. ?0 y
                end;# [1 z& d+ L/ F: V4 g( ~/ J: o
        end;9 P8 ~" h% |/ ]3 r+ A: [4 m
end;        -- of the method4 D& r: L( a. y- y0 E( D, R( v
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 5 U- n. w0 n5 c5 Y* @

. o1 [" T/ h" h; ~这是AGV_putin中arrive的method。
! @- L+ ]% u8 S
4 x! T: T4 u# D! {, G8 v当到达物料速度越高时,这个报警更多,/ x5 R4 n% l/ @8 ^0 L0 Q
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
; ~- ^. U+ U! _; c* s! `程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
/ w* h: f  }# n! {& b( Z% q: b
; ^/ a- b/ j8 S5 ?9 k9 ^另外一个小建议,就是move,所有的move都可以这样5 i, V; o' }/ |* z0 a0 G
if not move() then debug end  s5 Q) q  x2 `0 B1 q- D4 X
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。3 z" ?+ _$ a( s2 A. }
plant simulation中的free libraries有AGV模板,
! P, A+ B: f' o; E里面也有案例。1 I4 \% L/ |8 T: \8 i4 v5 S
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。' m5 I1 ?  R# @
2 h2 ^& t, N$ H& Q2 z5 c8 F
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
6 b, n2 a4 G% D+ D  n& a
; X$ I+ @, m  R  a- g那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
$ \: h. }1 c' Z! O这是AGV_putin中arrive的method。
# W& i5 B5 ]: h1 l+ N) C
: Q+ v: {" o! n, t$ h当到达物料速度越高时,这个报警更多,

1 J1 a1 E" D3 R% S另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-11 06:29 , Processed in 0.017964 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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