设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9737|回复: 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'9 n$ ^/ j3 s$ Y; T5 u; r
*/& S' L. \; d5 L) i- a
is: I0 L1 b7 s' u4 W; ]  H1 N
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
7 R" @, L' |) C# v5 c, N  h! X- @do  P) Z4 X) }: d0 L5 Y
        Lan := rootfolder.Internal.Tools.AOLlanguage;" n1 {: o2 i# s- m/ p5 }4 w
        if current = @.Destination -- else return5 q: i, H/ k1 {% z. E/ |7 ]% m
        then
4 A/ p& v% w! Z! Q6 R                @.Destination := void;
* I% d' m, E5 t                if @.occupied then
. I/ X* c( a. N; d  l                        part := @.cont;+ X- y. A& N% |, l- _! V
                        @.transpOrder := void;6 X+ ?7 G$ ]. e( y* m1 R
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
/ F$ v0 d1 X6 E" o& e9 {3 V/ R                                @,root.eventcontroller.simTime);
6 i1 {; n+ i; O# {: m; K                        @.HasOrder := false;
+ g. q" E+ ^; k. V' v; J                        @.DrivingHome := true;. h2 t8 L- ?  X1 S0 i( Q
                        rgManager.tryToStartTransOrder;  w# q$ |5 l. b9 h
                        if @.Destination = void
1 `% s2 _4 h- P+ d2 L+ U                        then -- no transport order for vehicle @
' l9 n# T# {+ q                                @.Destination :=
5 I* x2 A4 D3 W1 V  G                                rgManager.nearestFreeStation(@,track.~);
+ U) E8 Z1 I4 J0 [  b! P- ~                                newDirection(@);   
% o% ^1 s0 E+ Y( s% F) d                                if @.Destination /= void then1 b7 N/ w% I7 @& k
                                        @.Destination.NumReservation :=
+ B+ {- `1 \* b2 A2 T8 c$ c4 `                                        @.Destination.NumReservation + 1;
8 }- x# K6 e+ @; j6 l- m- M                                end;: Z( M  w7 f7 B  q+ k4 i# O
                                @.CurrIcon := "drivingHome";
6 G9 V; T+ a: f, s+ ?5 X                                @.DrivingHome := true;( Y( F8 f& l3 N- \0 H
                        end;
% Y6 Q5 ~' m* T4 `6 F1 U                else -- the vehicle @ is empty, both vehicle and part are in the same dock station  @& O7 i8 d8 D0 d6 T
                        part := @.transpOrder;6 [  y. ~9 t3 y
                        part.move(@);-- load part% P* P# a1 x  Z# `* @
                        @.CurrIcon := "load";& {8 _! E0 d& N5 x. r
                        GlobalDistObj := part.globDestination;0 X, n8 |& I7 \; M9 u4 |0 ^
                        assignLObj := rgmanager.rgAssignL;0 ^) `6 T, I+ v$ `
                        row := assignLObj.getRowNo(GlobalDistObj);4 S5 H' Y  _! n) ?
                        if Row = -1 then -- since 70
9 v2 \3 @5 ~7 y% ]4 c6 Y0 M6 K                                if lan=1 then8 Q: ~' M- F: |6 h9 S7 d) Y2 q
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),0 b% B1 X+ c' b- X. V& @) \- F
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
; x) Q0 L( R; q3 g- T, A; F5 C; q6 ?                                else" z# b: Q0 h3 F9 o' V
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
% e, F/ z: f1 Y) S5 p                                                to_str("in docking station: \"",?.~.name,"\""));                                1 V; T( t  I, L' p; b# K+ X0 I8 e  r
                                end;
. K: z" s' H! g+ v& n' u                        else
& y7 ~% g& R0 W+ z: ?% W& M                                @.Destination := assignLObj[1,row];1 e6 d  J* z3 f8 K$ w. t- _! @
                        end;                       
/ a! f" `. O; P2 z& r4 p                        newDirection(@);
$ u# i$ i, S# p) {) i                        @.HasOrder := true;
! x4 v- \* u! T4 N9 Y9 N                end;
" a' {& C1 z% Z' G0 g        end;
: V4 ]4 z0 S+ ]- gend;        -- of the method8 s  h8 L" e+ {: d7 g* _! J
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
  J% i0 g, o. A. V4 a% g3 Z
# {0 B1 g& z- E5 `) p这是AGV_putin中arrive的method。# h: }: W8 {( ?* p4 R& ^: g
1 G# P; M- K$ Z7 W3 }$ E0 ~2 T, w
当到达物料速度越高时,这个报警更多,4 r7 }5 `0 C* o  g. P+ y
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。, h* J/ b2 W4 \
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?* \4 `0 d  Z9 O

! ]: g0 S# P$ H) S, o/ }( O另外一个小建议,就是move,所有的move都可以这样
1 D' x  h! q1 ^: t# }if not move() then debug end  P6 ]2 d! ^) i5 F; {7 k
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
/ D" I& r; g, n; ?plant simulation中的free libraries有AGV模板,
6 Y1 L( g4 `7 Y6 `! U* L9 j6 T里面也有案例。
# I, \$ j& b) Q. }. w5 ?% ]+ _我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
' [$ `! a" z% h( e! q  \6 Q; N2 Q$ D- y( {2 p3 k8 n6 i
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
7 F8 F" g. J, t! P  ~' p1 ^. `/ ~/ S/ k. ]1 m- L% g; Y
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
3 K# {2 L/ S) }: e- s9 {这是AGV_putin中arrive的method。
4 L# i6 b/ N: L' }
7 Z: ^8 c0 v# f$ d! q) M2 y& A! R当到达物料速度越高时,这个报警更多,
# E  K. W, q6 P$ j! W2 l$ l0 [
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-21 05:18 , Processed in 0.020127 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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