设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6591|回复: 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 g2 @0 e1 n! g4 j0 A$ ]*/) N+ t3 K/ `: r& [: x
is( R! M9 M, q( B6 y& K/ }% V
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;# O, V+ M' L' W% b0 d
do
3 W( U  Y9 I, w3 Z7 W/ \  X% y        Lan := rootfolder.Internal.Tools.AOLlanguage;4 w" @. K! S, t! p
        if current = @.Destination -- else return
$ ?- ~6 q! R* _) d2 b        then
: \& X# `% O/ |' e5 ^; U1 |8 s  y) g                @.Destination := void;" [# a" v  w, ~9 {# b
                if @.occupied then
8 E( s$ f1 K- `; V3 M                        part := @.cont;
/ d* h- f  x8 j& I                        @.transpOrder := void;
$ @# t6 Q3 C/ f9 D+ Y                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,: k! }$ z4 A4 c- F$ w
                                @,root.eventcontroller.simTime);
% k4 v; }8 _6 k% l, X- D! C                        @.HasOrder := false;, ~5 T  b- h- y4 |9 V
                        @.DrivingHome := true;# n! C, X* J! k6 Q* v. q& h4 E
                        rgManager.tryToStartTransOrder;
$ {4 L  `/ T) k$ _/ Z                        if @.Destination = void6 _. A* R  R' V# \
                        then -- no transport order for vehicle @
. d/ B+ K2 j/ p" @8 u* `* _. ^                                @.Destination :=
9 k$ L0 I6 _+ I5 W                                rgManager.nearestFreeStation(@,track.~);1 f; p0 }2 T2 \5 R8 }
                                newDirection(@);   8 F$ Q, U' `/ M" F* w/ K% ^
                                if @.Destination /= void then% E- v6 a+ L; l0 [/ `" T
                                        @.Destination.NumReservation :=4 @* |4 @* U$ o) q
                                        @.Destination.NumReservation + 1;
/ _, i) q! d& @$ }) [2 J! y& L5 P6 i                                end;/ }  ^, I7 j5 @( Q* f' @% v5 a5 y
                                @.CurrIcon := "drivingHome";& y, x/ a. K5 m( g8 w$ Z: C- Z8 p5 R
                                @.DrivingHome := true;
1 g  l/ l0 R9 ?, J6 h                        end;/ f& g/ @) p1 `
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station/ v1 O" {+ P3 _0 @' q1 E  C
                        part := @.transpOrder;
4 _/ z. T% |; F: Q# i, A3 S; R                        part.move(@);-- load part0 S- F1 Q$ j+ c* u, e$ b
                        @.CurrIcon := "load";4 [# a- F' U: p# `$ e! @3 P+ p3 R
                        GlobalDistObj := part.globDestination;6 `# j" E/ Y1 o* A$ w
                        assignLObj := rgmanager.rgAssignL;
/ R* a- d' }' v                        row := assignLObj.getRowNo(GlobalDistObj);
0 Z/ k& E% o9 |/ X                        if Row = -1 then -- since 70
6 S/ a( s- h* ~4 S* |, P# {7 T5 F                                if lan=1 then
2 n6 \+ y" u( t6 z. c: \, A                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
- ?' k) {0 }8 K# |1 P                                                to_str("in der Andockstation: \"",?.~.name,"\""));
/ s3 |2 ]1 v$ E$ \: ^7 w* u( A                                else
) G% N7 Z: a- x5 L' n                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),1 R8 l# y4 W1 X1 E( f- l$ r. \
                                                to_str("in docking station: \"",?.~.name,"\""));                               
4 x2 p7 ^( A( G8 Q$ V                                end;
3 b" ^/ g% V1 g9 v8 q5 B5 |                        else: ~9 O+ W; d# s9 w& J) T
                                @.Destination := assignLObj[1,row];" S. M2 E) j0 q* [# T  U' I
                        end;                       
; X' t1 e, Q' j4 N% a                        newDirection(@);
0 e+ V" v$ W$ D                        @.HasOrder := true;; ?3 T* Y' v6 u7 b
                end;
% p# u! C# q9 o        end;1 J* [% P/ |0 j# U- f9 G1 o9 f: {
end;        -- of the method
: `4 S, U& z( U3 u- r
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ! V+ ?# n) W/ o' h
6 l4 S! F+ U/ X; P( P. G7 N: m/ d
这是AGV_putin中arrive的method。& O4 i/ C) t; R) j

9 Z3 J: j+ B9 u% ^% j当到达物料速度越高时,这个报警更多,
5 ~* z0 W% R; n% n7 l9 _' Q5 W可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。; Z6 j6 u9 @0 N7 B0 F* n/ ~
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
, W5 y+ A, U8 ^0 m2 m; H" F6 x* B5 {! k" q4 M. N3 k$ \
另外一个小建议,就是move,所有的move都可以这样
1 B* M, z2 O! E3 G! n/ h5 R' aif not move() then debug end
: u' j- z: A- a+ d1 h这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
2 t8 n; B8 v* z7 x$ Pplant simulation中的free libraries有AGV模板,- P% ]4 m, e7 |1 Q, Z3 Y
里面也有案例。3 V* E* M: [: O+ E, G
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
9 \* \6 w& W& `1 Y, C) C) w; p& i+ _$ c, [1 R
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 6 J+ V2 g, t7 F3 L8 w2 |; Q

: t* o# t: n( ^& l那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ' B6 G* O5 O! Y
这是AGV_putin中arrive的method。$ F+ C- k2 v7 ]' P7 J
7 \( d: N' K1 W# j  M3 N; a  [( y
当到达物料速度越高时,这个报警更多,

( v) @1 ]2 `1 O/ t8 Q' B, f, {另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-14 20:50 , Processed in 0.022871 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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