设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8054|回复: 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'
  |& \/ X/ p* h0 j+ W' ]" L*/2 W& ~6 @! e' q5 t! Y
is
& b* ?0 r4 n1 ^2 l5 ~        part, GlobalDistObj, assignLObj:object;row,Lan:integer;' U( }, R# J* |: g2 H' A
do
% J& b; _8 r, r1 W9 F; }" \7 L' l0 J        Lan := rootfolder.Internal.Tools.AOLlanguage;
+ i3 |- m3 D& i$ H( R        if current = @.Destination -- else return
5 ~# ]% v! d. G" ?        then9 h0 x9 }6 Q( g8 x/ y
                @.Destination := void;
: n4 O. ~( u9 i3 k/ L0 o                if @.occupied then2 \  \+ p3 z+ X/ s# V9 ~. p
                        part := @.cont;
7 F1 \# L: B9 O                        @.transpOrder := void;
- ^1 m' |8 U7 }$ w7 U, M$ u, k/ x                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ c. N0 _; b4 b                                @,root.eventcontroller.simTime);5 \! ^& w+ [$ b' S
                        @.HasOrder := false;
5 R7 p+ I  R9 ^! C                        @.DrivingHome := true;" @: a; ?. F' S. u3 j+ o
                        rgManager.tryToStartTransOrder;
' x( X8 E' Y4 \& ?                        if @.Destination = void
) d& Z0 s7 c" c" X4 D                        then -- no transport order for vehicle @
- x' c* P& Z) e5 a" J7 g5 ]                                @.Destination :=) \; z! T! j0 v2 X% K: w0 R
                                rgManager.nearestFreeStation(@,track.~);
; ^5 Y$ s" Y% I) q/ j' j) K                                newDirection(@);   9 l! s. S, `4 u& Y# X$ g2 v9 X
                                if @.Destination /= void then
- `* ]7 m. K4 |  H/ e                                        @.Destination.NumReservation :=, H5 y6 w4 U2 r1 T! \) {' h; R2 Y
                                        @.Destination.NumReservation + 1;
, H. D' v% h1 T! U' b: S  }                                end;
1 W- f. }6 M2 W4 q% R                                @.CurrIcon := "drivingHome";: c* \- h/ o. u6 x& l
                                @.DrivingHome := true;7 k2 J; q8 r% B! \2 Z9 p7 Z
                        end;
& ]; q8 V- o& F2 O5 U9 T! p! e1 T                else -- the vehicle @ is empty, both vehicle and part are in the same dock station* f: x8 s7 v2 N, K3 d
                        part := @.transpOrder;( U" O$ y2 i( X2 L, D3 d
                        part.move(@);-- load part
( N( c9 W  [( z$ F: l) G                        @.CurrIcon := "load";0 X$ G& w; L  A$ d) V* s% f
                        GlobalDistObj := part.globDestination;
1 F# b% ?) u% C/ ^                        assignLObj := rgmanager.rgAssignL;
3 B$ k* d& P2 v                        row := assignLObj.getRowNo(GlobalDistObj);, @7 i9 V/ G# x7 Z" z, Z/ j
                        if Row = -1 then -- since 70
' I2 O2 g  c( d, Q- c3 w                                if lan=1 then$ N, A; E( `: _
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
) X# S! b0 A6 ~" ]: e( ^2 [                                                to_str("in der Andockstation: \"",?.~.name,"\""));
$ m7 q* I% K; S                                else
' n- B- C, e% X" @: u                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),/ H8 [" d) b1 ?5 m( i/ h
                                                to_str("in docking station: \"",?.~.name,"\""));                                ( b3 F, n; Y& g% M- z* u( k- ]* U  @
                                end;6 u; J% z  d( R8 e" m7 U# y
                        else
8 V# i( V& T* \                                @.Destination := assignLObj[1,row];
4 U8 B5 o3 u& [- ~, z                        end;                        8 Q- V7 R0 \& y! v$ ^2 f! B
                        newDirection(@);
4 N4 _5 S% w$ n8 R                        @.HasOrder := true;; c6 x4 {2 s0 ^: u6 k1 {/ w
                end;
! v+ a( ~- n8 V* K8 I% a1 h7 _        end;
0 Q. ~4 a5 T9 m/ a7 U6 O/ V/ iend;        -- of the method
6 R5 g9 m0 d5 C& u
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
1 H9 p: r! H$ D0 B$ g
% g! m) A& {* J这是AGV_putin中arrive的method。
- N6 N6 F6 s+ z% V
$ _/ G# E! Q% v& m* V5 o当到达物料速度越高时,这个报警更多,
- K2 E7 P& ^2 |4 J2 i可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
* L& {5 C! N: P# }/ Z& k  v程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
* B; E  ~0 y! w) M$ R. U, i4 K3 X* F1 _% E
另外一个小建议,就是move,所有的move都可以这样
+ M* G2 O% _# \" M0 N  j8 vif not move() then debug end
1 ]9 A* n0 Z" V这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。! |+ u- N* g/ I
plant simulation中的free libraries有AGV模板,
- C8 \% B- f2 b+ u$ J里面也有案例。  m' z" ]4 H$ u
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。+ _$ G* D1 ~4 O+ K  g" Y+ E' v. n% f

+ h9 n( C  M- e0 [* O- B7 _我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ; E, _9 ^3 g3 E4 Y9 \, i! l. H
$ O. l: ]0 z- Q) D; S" E4 ^4 h0 x
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 , h* I& f2 [9 g
这是AGV_putin中arrive的method。
1 v/ @- a( A# v) D% R/ k* Z, W
, ~# f8 a" O+ D4 |6 o6 g( _当到达物料速度越高时,这个报警更多,
8 D  u- Q0 E% I$ O" ]) n
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-12 23:18 , Processed in 6.295405 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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