设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10091|回复: 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'
0 _( a* R9 |  I8 t& \*/& d* W' V5 X) _/ H
is
7 s5 V3 j$ d: O        part, GlobalDistObj, assignLObj:object;row,Lan:integer;6 g, Z5 M$ l( e) J
do" n5 \) w4 }' u3 ]; T4 J
        Lan := rootfolder.Internal.Tools.AOLlanguage;1 W: T7 Y; G+ _" R
        if current = @.Destination -- else return
  B3 U4 T0 y8 n. I9 h  T7 f        then
0 A7 Y" O% C7 t" L! `                @.Destination := void;
% d- I$ t. z7 \, e2 ]& g+ M2 ~9 R                if @.occupied then
. R  T9 }2 |/ h) B2 F% s                        part := @.cont;+ q0 P. u! q" f
                        @.transpOrder := void;
8 `  P! o. j7 ~8 e                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,. x) s9 L+ U5 A+ }0 `+ v
                                @,root.eventcontroller.simTime);% H1 t: z5 h7 a* y9 L
                        @.HasOrder := false;
- X! v5 s5 Z4 j" S- S) x& v                        @.DrivingHome := true;
- o9 T  R* U, m8 Z* i- M+ b                        rgManager.tryToStartTransOrder;- M- a" l$ l0 E8 L
                        if @.Destination = void
$ d% ]# o/ Q3 e* r  ~! ^                        then -- no transport order for vehicle @
$ L+ U+ R2 r0 H$ M, R                                @.Destination :=
" P" R6 r+ B( e+ u6 X" c                                rgManager.nearestFreeStation(@,track.~);; H3 p: ?4 G1 h& E+ H
                                newDirection(@);   : k4 r& B2 L# f2 e
                                if @.Destination /= void then
! c, u( c7 F: P: V- d                                        @.Destination.NumReservation :=
* H9 I- r; g$ e1 I' c" J0 I5 o                                        @.Destination.NumReservation + 1;
: \0 V" a$ n6 [* p: c                                end;
% b0 h3 u9 D2 N6 U$ ?- u% g                                @.CurrIcon := "drivingHome";
; W( [- ?, u8 v5 ]) I) o/ z# y( L                                @.DrivingHome := true;: y- v. C3 i( @
                        end;, T# z* d8 r  n9 U
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
% Q8 x4 T6 a' |) k) N$ m4 E                        part := @.transpOrder;  X" g7 M: G) \# W
                        part.move(@);-- load part4 k7 H/ V4 h' t1 o
                        @.CurrIcon := "load";
- f* K: w8 G" b                        GlobalDistObj := part.globDestination;  v; y' _0 J  p/ H8 m' f0 d
                        assignLObj := rgmanager.rgAssignL;
# ?( z- w" O. f+ e& D                        row := assignLObj.getRowNo(GlobalDistObj);
# F' d' q( X) ?6 S  ~( I* l0 g                        if Row = -1 then -- since 70
; }, N! z. D  ?) z9 Q, m1 R                                if lan=1 then/ ]# W+ }% N  l
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
$ T# Z  t' k- J" J8 k4 s                                                to_str("in der Andockstation: \"",?.~.name,"\""));
) x& K$ I. y3 S                                else6 Q* N3 a' g; r& y; N, a4 w
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
1 V0 U- q5 G! D; [                                                to_str("in docking station: \"",?.~.name,"\""));                               
- n' B4 @% x- K  s# Z                                end;& n; x9 j4 U' t( L% c0 _. Q+ o
                        else
+ ?4 l* R$ G/ I( O. r                                @.Destination := assignLObj[1,row];0 f- k' ?1 S9 q$ C! B
                        end;                        7 Z: P1 F/ H3 b9 _  O* N4 H  A
                        newDirection(@);8 ^( D& a5 @, [1 K. S6 Z. e
                        @.HasOrder := true;
* \* ?) I$ R3 m" b- M) K$ B& ~                end;: L9 e# z/ o3 E! [$ \, _+ S
        end;- o% I1 X! `5 E; Q4 K
end;        -- of the method2 Z4 i; o" x  \
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 + J' a4 a8 w8 G# ~4 i' I, J

( L& L& I. d& D0 @! |6 Q这是AGV_putin中arrive的method。
% F& f5 @- |' i# {' r1 @& z$ Y, W% z* n
当到达物料速度越高时,这个报警更多,+ w3 P: C& c$ ^3 [
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。3 g) Q/ v" T+ v* G" K4 Q
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
: S' q$ n8 X. g7 k( w0 N5 l0 j- A. h/ T& [. b9 |) J
另外一个小建议,就是move,所有的move都可以这样
+ q9 {* g: n5 U8 d$ k$ {7 Hif not move() then debug end. v1 p# L' v1 r1 `* y
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。: c  r3 p: ^' W
plant simulation中的free libraries有AGV模板,) i' J* K- u6 n% A& g2 n
里面也有案例。' J$ i  H* d+ i6 I- q  @, L, d7 s
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
; c: o1 u1 ^6 P7 K4 E
. D- t4 y. g: p( W( s0 X我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
8 I8 j+ A% ]6 J7 f. ]: x( p; m
) b8 x) g* \  Z那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
% e) r- Z% o% K1 p) ^这是AGV_putin中arrive的method。
! m' X, r. W' T/ x( n6 A. J; z, n; z: K/ ^; a" W/ P
当到达物料速度越高时,这个报警更多,
  a/ z. ~0 i1 f+ n9 T
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-12 18:55 , Processed in 0.017799 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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