设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6432|回复: 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'
! ^4 H9 i1 i0 C*/7 B! s" f% K" e9 s. B( z4 l& M
is; }: E" A7 q! J3 A( G
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;/ Z6 T. N/ _1 G9 j4 ~7 ~
do) k! l5 A0 E& `6 n
        Lan := rootfolder.Internal.Tools.AOLlanguage;$ u' E" o  v1 u; a
        if current = @.Destination -- else return4 ]5 h  j; Z5 f7 N) \' n* I
        then
2 e5 h  v0 q& p; I+ O  N                @.Destination := void;
. ~( ?. l3 }; ]; ]6 b" Q                if @.occupied then5 n, ]- Z8 J+ r; p, n- _- @
                        part := @.cont;
. l; T1 ~5 g" V. a                        @.transpOrder := void;
( J! c2 m5 k; y$ U, n1 U                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,5 M5 p* A5 A- d( [
                                @,root.eventcontroller.simTime);: b! |& N( s4 j0 u) S$ F3 T5 ]: X
                        @.HasOrder := false;1 h! G7 K# |  y! o. i% ?  T& @
                        @.DrivingHome := true;9 A( h. m/ X) Z* z# ~$ k
                        rgManager.tryToStartTransOrder;
" F1 ~: n/ i8 v) @0 {                        if @.Destination = void
$ O8 s1 R4 K+ ?: q8 `1 Z' a( {! `' m                        then -- no transport order for vehicle @' l% `& v" T0 B8 ^% A
                                @.Destination :=/ k" @* Q  N$ ]( ?0 [' E0 E' K
                                rgManager.nearestFreeStation(@,track.~);
: G- [# D: O# v% D- }                                newDirection(@);   # w3 R2 @! f. |2 o* x- i& q
                                if @.Destination /= void then
: p/ D. e  O0 j' S3 c7 a$ r                                        @.Destination.NumReservation :=
' A7 ~6 q) U. Q! ?# o6 X                                        @.Destination.NumReservation + 1;: b. ^+ Y0 e+ F% ~: k' c
                                end;" a  P  e' C9 E  R5 i# b
                                @.CurrIcon := "drivingHome";: \# X% K; P  m# F, s5 d* @
                                @.DrivingHome := true;
# e. w7 f, |1 f& S/ _                        end;
; N  i# t( ^% ~+ m0 t                else -- the vehicle @ is empty, both vehicle and part are in the same dock station1 E9 c9 u  ^# p8 h; b- S9 |: e& o0 f
                        part := @.transpOrder;
6 ^3 x3 E4 {, F                        part.move(@);-- load part
: i8 V( j2 K- L; d                        @.CurrIcon := "load";3 ^) I* {6 w) w: M0 _* R
                        GlobalDistObj := part.globDestination;3 S. ~0 X& n8 Y
                        assignLObj := rgmanager.rgAssignL;( z! n) i4 F: |; b5 E' ]
                        row := assignLObj.getRowNo(GlobalDistObj);: ]. I3 Y& {$ d8 L- k$ k1 n, h
                        if Row = -1 then -- since 70
+ h% M. t$ I; R                                if lan=1 then
1 L4 Q( H1 `, r( H, N4 |* i                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
" `1 S) @# i, W9 S3 k9 V4 e$ u                                                to_str("in der Andockstation: \"",?.~.name,"\""));
9 k5 _% B! \% Z1 N7 {0 H                                else* V9 @0 a  F; x! W/ ?. l5 Q
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),- W: s+ ~  V0 a
                                                to_str("in docking station: \"",?.~.name,"\""));                                6 I" b) g# G6 a+ w# c# [
                                end;3 ?/ z! p2 |! f# \8 `
                        else
, z5 B' |6 n; j% ^. W                                @.Destination := assignLObj[1,row];3 p' I( N# P# m. t) ^; q
                        end;                        4 g; y* R5 n9 N6 h1 B- Z
                        newDirection(@);5 p1 h% @5 J' R, ^
                        @.HasOrder := true;
: b; L9 |+ ]7 \: o                end;
5 y. i" d1 i* Q" }9 J' T1 y9 t: L        end;
- ~: C& C! n. o' D6 `* qend;        -- of the method" P" h$ H/ r$ m( t( ]' u
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 $ P) C% S1 M9 {
4 X1 Y; t9 x# f) A
这是AGV_putin中arrive的method。: I& X) e0 R% j7 Z3 E9 O
2 l" P; P# g4 |% v6 m* j
当到达物料速度越高时,这个报警更多,! x' h1 Q9 K  g* @5 s6 J
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
2 Y6 w8 q* U( U2 q! F% j程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
; H$ c# P4 S: R/ J% H/ M; `! h
6 t5 c1 l7 h" f/ m- j另外一个小建议,就是move,所有的move都可以这样
6 z' y2 V% m/ A: M. j0 }1 Yif not move() then debug end
9 @, r! S% b# d) i: z/ e这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。6 m% ?- ]4 ?8 Z) M) G8 \, Q
plant simulation中的free libraries有AGV模板,6 ]/ g( Z' F, r' L8 J3 J# I7 Q
里面也有案例。/ y: S! I! E3 P/ k3 b! e% a, H
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
- c" c2 o, j, ?# _1 r# ?
' f; e$ H  H6 `( m! b  h: b! d我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 2 a  W/ n6 R/ R0 ~
. e( x: [1 ~! p; E/ \
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
* ]( H% ]# U% o6 X这是AGV_putin中arrive的method。4 L# _! Y% M2 v- Z% ^. E6 J& N

" @) l2 r4 j. |8 V2 Z. V2 V当到达物料速度越高时,这个报警更多,

2 W7 i, o1 O6 ~# S! @9 p- k另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-6 08:07 , Processed in 0.016749 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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