设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8277|回复: 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'
3 z, t$ {+ J: `1 `6 O- P/ f*/
7 }+ M! j/ O/ R: Dis2 Z$ E* G  J' j( k& L- }0 Y
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
, _3 d* j; g- U$ v! T  Y5 h$ Q2 {do
+ Q. H6 X5 }' m' v        Lan := rootfolder.Internal.Tools.AOLlanguage;! S; z! x* x, D( e4 @- X
        if current = @.Destination -- else return
. Y5 S3 r3 R9 Y% w/ R( z        then
% y! n# z0 R: d" a$ V                @.Destination := void;" k) Q& J1 L; [# z. N
                if @.occupied then
6 ]: c& n/ T* i$ P" q) m                        part := @.cont;
" u. }  t7 a  p0 r2 a                        @.transpOrder := void;8 F) r1 y0 x! Q7 I& u
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1," B" G3 A6 O8 @, ]
                                @,root.eventcontroller.simTime);; i; R8 _" I$ F" _
                        @.HasOrder := false;
  n% C" Z' C1 S. T. ?+ R4 t3 c+ H                        @.DrivingHome := true;( h1 v8 X6 K" ^
                        rgManager.tryToStartTransOrder;
5 |& o$ L8 v& w) V                        if @.Destination = void
  f5 y5 w$ V8 |( x, o' v                        then -- no transport order for vehicle @
2 n6 z& @8 Z1 f3 d                                @.Destination :=
# }: k/ C* Y; ^7 k) p# H! s0 v                                rgManager.nearestFreeStation(@,track.~);) E7 U7 Y6 E; A- b
                                newDirection(@);   ' K; i5 T( i6 ?9 x
                                if @.Destination /= void then
4 \7 f( e9 `2 {7 e                                        @.Destination.NumReservation :=
/ p( L  W9 W  ^9 v                                        @.Destination.NumReservation + 1;% B( q# D& k  d5 p' q3 O
                                end;
- \, x" x+ i' t                                @.CurrIcon := "drivingHome";
" w0 e$ M8 a" u: y" |                                @.DrivingHome := true;
% d# G& H3 O4 ]( b' J                        end;. Y0 _- `/ g* g
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
, C- E1 J" c1 e7 y+ |3 f& F. q- X                        part := @.transpOrder;5 P4 [) U+ b# e( t! n: z9 h5 O
                        part.move(@);-- load part
5 ?% }2 d& P% L" q* X1 I1 w) s                        @.CurrIcon := "load";& G/ T. \, O3 a9 x
                        GlobalDistObj := part.globDestination;& ^. P* x+ a1 d  N
                        assignLObj := rgmanager.rgAssignL;
9 Y. s) d% E/ R6 r( t- ~( I4 g                        row := assignLObj.getRowNo(GlobalDistObj);8 {. W7 d- y& w
                        if Row = -1 then -- since 70' s3 I9 C! d' U
                                if lan=1 then6 o4 M+ _4 q7 z* z9 \5 g
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),1 I2 _2 H, }& b) i$ Y
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
/ [! y: K7 ^5 y3 U                                else
5 h8 M/ m* x' L: s5 N                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),* c, ^3 w% A) J& a) {6 Z
                                                to_str("in docking station: \"",?.~.name,"\""));                                1 n2 u' Q2 d6 B* |
                                end;( v+ V2 e- n9 _6 f" X# F- Y" x
                        else
8 B' O7 e) E9 z/ e5 T1 a                                @.Destination := assignLObj[1,row];$ r' z1 J9 B' f7 {& _
                        end;                        , o+ [8 ?6 m( }7 D- L/ U& U
                        newDirection(@);" _9 X4 [1 x2 m' i
                        @.HasOrder := true;
0 W/ R+ X9 A7 C+ l  w' _- \                end;/ d; [  V/ s% _5 j3 f+ C4 ?8 N
        end;
* E  f3 ?4 l: g2 M7 J$ Kend;        -- of the method3 ]  }3 a% R+ O' z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
% x# r8 M2 Z: x) S
% I9 C4 [3 W  O4 B9 j这是AGV_putin中arrive的method。5 k1 _. m) R. H$ ^, P; l( v
8 ], @" p3 Q5 y, g* F
当到达物料速度越高时,这个报警更多,
! \: z7 F4 |) k; \* s# d& R可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。9 i$ Z5 u7 v# V( `
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
" u; h8 S# \# R# ~; [1 e; B5 h* k& @0 l% {$ b- t8 B
另外一个小建议,就是move,所有的move都可以这样
6 W, l/ W8 T0 k  q! P. O8 D0 Xif not move() then debug end
* ~$ {. G8 G7 f7 m" l" x* V这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
2 r; B6 ?7 A" A0 ]plant simulation中的free libraries有AGV模板,
2 k; S* I8 J7 i0 `1 u里面也有案例。
. C. _$ c, O  x7 Y: S2 R我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
( e( D* \5 x$ U1 ^$ D' `/ I5 J( @2 E2 c# t
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
- c2 `5 {6 x! u( {& e9 w1 o! e( d! x
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
% c0 _7 {9 [, u% f" s( Y这是AGV_putin中arrive的method。
0 t5 Z3 t) h1 K7 F+ x7 R) L6 T- i9 }- w& a7 {$ j4 Z* Z
当到达物料速度越高时,这个报警更多,
0 H! x2 \: B( U' Y
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-24 19:22 , Processed in 0.020925 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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