设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7815|回复: 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'
8 c0 l$ m1 ]; \: G: ]0 @( s*/
( O+ e/ U1 L2 E. k% pis
4 x: n0 {: h1 I        part, GlobalDistObj, assignLObj:object;row,Lan:integer;* h0 s2 T  B; K' j. H3 U
do; H9 H4 A* ^7 _, c
        Lan := rootfolder.Internal.Tools.AOLlanguage;# ]) c% K% T8 O/ \" M
        if current = @.Destination -- else return
9 w8 _% G  ~  c) l9 I  A1 Y        then2 w6 ^' V8 M) n& h' Y% ~' Q. H
                @.Destination := void;
4 X0 Z; i6 r2 c5 z                if @.occupied then
* J- ~( @% U' ~* n0 O$ o                        part := @.cont;0 X+ d9 O( z( c5 r) ]& C3 ~
                        @.transpOrder := void;
  @8 D4 S. l- r2 o! y                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
& w# s/ N8 l, c) s                                @,root.eventcontroller.simTime);
8 ~1 w& ?8 M- }; |8 |                        @.HasOrder := false;
6 \. _/ P5 E+ o$ |( E! G* M                        @.DrivingHome := true;
2 q" \( F. I# R4 O9 e1 J                        rgManager.tryToStartTransOrder;
1 o4 I* ^2 G$ N' ~6 q  z3 H0 V                        if @.Destination = void) p( _$ X$ X3 ?- X3 A/ C. G
                        then -- no transport order for vehicle @
# @9 R1 M0 l% e7 K                                @.Destination :=
3 p0 R+ w; T. q. \2 }- ~# t) p: |                                rgManager.nearestFreeStation(@,track.~);% L# a: [. F" l8 N7 k. }% v
                                newDirection(@);   ) Z" k: s* K: G" v  j7 a) Q$ ?. M& L; c
                                if @.Destination /= void then  t9 Y) y' n3 @# x" h8 K( N
                                        @.Destination.NumReservation :=
$ c6 V) W9 Y2 X6 T, {0 p                                        @.Destination.NumReservation + 1;. o) [" m& s5 O6 w
                                end;- h3 x: H/ b* E" m) ], y
                                @.CurrIcon := "drivingHome";& M/ R; @7 K6 g  e' \
                                @.DrivingHome := true;
/ Y+ H. X! @0 }1 y/ X0 j* b* B                        end;; n7 k+ c  Q4 D5 L
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station% n% G; l- _" H- w# R. f1 O  }
                        part := @.transpOrder;$ n5 `$ ^: g, w" G% ^6 B: [
                        part.move(@);-- load part
7 g) M2 \' j3 K8 c9 ^                        @.CurrIcon := "load";
6 y+ I8 \' w- ]% U& T" ?                        GlobalDistObj := part.globDestination;1 U) g3 }$ s6 s8 a
                        assignLObj := rgmanager.rgAssignL;
0 H: i! z. K$ A+ J* |                        row := assignLObj.getRowNo(GlobalDistObj);2 w# i, X; Q4 M+ X
                        if Row = -1 then -- since 704 A) n" e& K$ s: @' M
                                if lan=1 then
* R' ^* m! d* g7 J! m. ~8 \                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
5 F/ ]1 e) F4 v1 F) n                                                to_str("in der Andockstation: \"",?.~.name,"\""));% [9 i$ Z- T8 I' V# P; X: j4 q
                                else
& F& p& H  x- Q4 a* |% v                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
+ f/ n( H- G( ?! W                                                to_str("in docking station: \"",?.~.name,"\""));                               
4 t& o2 p  l, n/ a# F                                end;
4 a( z0 R$ z6 v* R0 e- I9 T+ w                        else
( K# B3 i, ^- V                                @.Destination := assignLObj[1,row];
  G6 _* e( {0 v# ?2 F" U                        end;                        / }, }( G: k# a+ U) H
                        newDirection(@);# ]2 `6 o2 z& v) U, w" ?% B
                        @.HasOrder := true;
: O3 e1 P8 v& g. [& M' e5 w                end;) Q+ Y. g8 S7 n# r! P/ w/ F9 h+ ?
        end;
. i% p9 q% P- q% v- |1 pend;        -- of the method
7 H3 Y- z" g- D9 a
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ( o$ n9 T+ v& y0 M  k" J8 u5 w
$ _$ Z$ u7 m8 U  O7 i3 g+ F9 y
这是AGV_putin中arrive的method。8 b1 W. x/ u! G; A' Q

1 v6 O5 N1 X6 p- E( a& R* J9 A当到达物料速度越高时,这个报警更多,
& M; y" I2 {  R* _6 f可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
! c5 N. A8 M6 K6 `* |$ j程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
2 [) B  Y' B, d, l" _  o1 y1 f# r. Y" I  W( R/ A
另外一个小建议,就是move,所有的move都可以这样
+ I! R: o5 U. l  x; R% _7 ?if not move() then debug end" f$ K, a9 j  T/ c2 V9 {
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。; ?+ B0 u+ v9 H0 \+ S) m+ h
plant simulation中的free libraries有AGV模板,5 X" `* o0 G$ d/ G
里面也有案例。
& S5 A) l% d( U) B: `我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。- u, O6 S; t4 T3 K2 H
5 i7 _% ~' b; F1 g
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 3 Q; }! j6 T3 d. m0 u8 i/ M' m# V

4 j+ K. ^) O3 L, _5 `6 o那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 0 g$ J- X! u9 Y' d$ j
这是AGV_putin中arrive的method。
: J, Y1 ~+ ?+ B2 l% x" d+ w3 t! a- H
当到达物料速度越高时,这个报警更多,
. v1 S5 U8 [2 K8 H- [( |- @6 x
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-30 09:35 , Processed in 0.013898 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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