设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8197|回复: 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'
) F* H# q# E& f/ n1 t& i* N0 T*/
( |& S" F+ i2 P/ i$ Gis
0 x& j2 T4 L9 k2 o5 A        part, GlobalDistObj, assignLObj:object;row,Lan:integer;- C, A; n4 r$ @2 e6 |6 t
do( e- c- @/ l- n& i. [7 b- j% n
        Lan := rootfolder.Internal.Tools.AOLlanguage;
6 Z1 l- m+ x9 A0 B2 o# t1 Z0 `/ p+ D4 @        if current = @.Destination -- else return
3 N8 m8 u2 \9 z+ z- a        then1 N" B6 y1 F2 O0 z" i% f
                @.Destination := void;
6 w' n" e; d3 D0 [                if @.occupied then) ~1 f/ o$ F' K. Q, n
                        part := @.cont;, g0 ]% d* s$ V' |# }
                        @.transpOrder := void;
* @! L, G  j! K9 E9 M( W/ ?& g                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
' T. B5 S5 s- E) u0 z1 O                                @,root.eventcontroller.simTime);
+ F6 S7 c7 S. z, e/ T                        @.HasOrder := false;4 w3 c4 u0 G* @0 K& t7 x! O: Q" n. y- n
                        @.DrivingHome := true;
& W: ?0 u. e. I& L) w8 Q                        rgManager.tryToStartTransOrder;
9 y: o! y. N/ S! q: d. ^                        if @.Destination = void% @3 P# c, }; V5 B* n' l' {
                        then -- no transport order for vehicle @
5 f2 C* t, M; R# f1 s5 @                                @.Destination :=$ I, ~. g  I; ?
                                rgManager.nearestFreeStation(@,track.~);
8 t  h" [1 \9 O                                newDirection(@);     c" E- N5 l3 `0 T6 a/ m* o
                                if @.Destination /= void then( }0 ]  {  [+ N2 p$ B  w
                                        @.Destination.NumReservation :=/ W, _8 X+ f! O) w( }
                                        @.Destination.NumReservation + 1;
( N& s) M& I) x- q1 R8 w7 g9 `                                end;
9 l" C8 d2 _* w! X                                @.CurrIcon := "drivingHome";
# v6 d2 d9 a" L9 f                                @.DrivingHome := true;
. x6 `. k, K$ }  k; w                        end;* H( D- A! v3 i  ?) n
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station# O& ?6 X, [! I' q* v2 F  G/ X
                        part := @.transpOrder;
) T9 [+ t; c1 D0 A$ W; o                        part.move(@);-- load part
- _& g: n/ Z" S  r4 j6 B                        @.CurrIcon := "load";% k2 a7 m# j/ Y; \% T
                        GlobalDistObj := part.globDestination;" u9 n4 _) s3 X8 C% U9 B$ z
                        assignLObj := rgmanager.rgAssignL;; x% Z$ h- s. Y3 r7 s* j' N. X2 ~
                        row := assignLObj.getRowNo(GlobalDistObj);7 e7 k. }4 D7 }+ x8 B- j# g  W
                        if Row = -1 then -- since 704 B2 d% n4 ?* a6 |- ^
                                if lan=1 then
9 B6 \$ T- }9 `5 C' }                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),6 N# i4 p7 l" v, d- D. g
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
/ ?, |, V( k' g9 Y# E% P                                else
4 X) E: E( z1 d- z4 O  K                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
, V; b2 r" d5 r1 a, R                                                to_str("in docking station: \"",?.~.name,"\""));                               
4 z8 }, K8 [/ [& B; A                                end;4 H( B7 b. f% a+ P9 F( O. T
                        else
% M3 O9 L5 H0 Q# F! I% i                                @.Destination := assignLObj[1,row];# ]; B, Y4 M# _" q
                        end;                       
: V! u! H9 Y$ K* {6 _7 h                        newDirection(@);
9 H# O& I. a9 |# F" l8 q9 R                        @.HasOrder := true;. {; X) }+ j, ?9 C' Y
                end;
. w- T. a) [4 G& Z        end;
: P% G  A( p# i& l  o& T3 jend;        -- of the method
5 t1 Z$ O( B  h
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
3 C9 U; Y4 R9 W% x  {2 ]6 r, D& d  p! x  Z  N
这是AGV_putin中arrive的method。
- l+ L3 o) p) X' R( [4 ~7 V! A; j% @+ u% G; E7 P$ }
当到达物料速度越高时,这个报警更多,
2 c: J5 P# Q! _6 k可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
% k9 X# B6 D/ u. d9 u- m$ O程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
+ t; i5 ]" H6 b8 ?! j( {: k6 D+ X) K- M# h  R
另外一个小建议,就是move,所有的move都可以这样
# U, ?! d  r5 I; x# Uif not move() then debug end
9 G2 ^9 l+ h1 U1 k9 \这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。; |6 e4 S4 v. r  O0 v  @0 ]
plant simulation中的free libraries有AGV模板,* P7 f: ^/ C4 z
里面也有案例。/ I" k$ M+ K9 f4 e" \
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
+ s4 O% H( F% w3 w$ J& K% z' V& R
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
1 P$ f2 }& M. \. M- `4 k9 i* T( N! a1 h; d- |, [7 n$ ]4 e9 C
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
! B9 x' \) g2 M- u( K这是AGV_putin中arrive的method。+ `8 r( E, L/ ~' B. D' |, G
7 m- p1 @" O# @% C* w" `0 Y
当到达物料速度越高时,这个报警更多,
8 l+ u  V6 L& S# S! g8 g
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-20 06:38 , Processed in 0.021761 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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