设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7564|回复: 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'
/ Y+ r  F* h5 h1 j* ^*/
8 E: J1 i% }8 b% g9 W2 p% dis! d8 g5 j. [, U+ ?* f3 D* G
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
/ I; {- [! Q, g8 m  ?  h9 s# i- ]do( @3 K1 s/ o: R# C
        Lan := rootfolder.Internal.Tools.AOLlanguage;5 A$ d0 J$ _1 j8 F, K9 v3 f
        if current = @.Destination -- else return
. J: Y' y+ e0 H+ _* E        then4 Z3 G# \/ r8 M  I4 o8 M! T
                @.Destination := void;
+ F' i; |2 j9 ?4 a- H7 ^" g- @                if @.occupied then
$ A6 b* u0 n8 Y* O$ r8 v                        part := @.cont;4 N+ s1 s+ I4 `6 E
                        @.transpOrder := void;
' I; q  f) h) N- f6 a2 k                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,4 A& d- r$ |; g  c  I: O
                                @,root.eventcontroller.simTime);) m  z+ ~8 @& R8 Z. O% e8 a
                        @.HasOrder := false;: z  ]+ }- U# ?" G: J' n1 Z' Q& @
                        @.DrivingHome := true;5 V1 ?- t9 I' x) F! Q+ E. o4 o
                        rgManager.tryToStartTransOrder;- Y! Z+ a0 S  [
                        if @.Destination = void( M8 \2 M  V+ o6 p& l# g
                        then -- no transport order for vehicle @
: C8 Q% x: L7 Z" Q; R' F! G                                @.Destination :=
4 P8 ~1 h- R, @* W) f                                rgManager.nearestFreeStation(@,track.~);
! \0 w0 v4 S+ f% W) d, r                                newDirection(@);   
% z% u2 z* ^& _. c2 ?- i0 G                                if @.Destination /= void then
* F4 W% f" f0 Z, {3 z                                        @.Destination.NumReservation :=
  X' [+ [2 [$ h9 r                                        @.Destination.NumReservation + 1;8 b3 V2 F5 j* y+ M  I
                                end;
1 ]/ ^4 j! Q2 p                                @.CurrIcon := "drivingHome";8 I2 O$ C) x/ P! @1 X
                                @.DrivingHome := true;  O" b% f$ D9 q. ]0 E2 Q
                        end;0 W: r* @6 k0 b
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
0 T: d" K4 }$ v/ w" ?4 ]                        part := @.transpOrder;
8 }/ F9 Y# i$ S/ Q                        part.move(@);-- load part* z+ K9 A9 U4 G; c! E- V
                        @.CurrIcon := "load";5 c# p% x& d7 {8 V6 x
                        GlobalDistObj := part.globDestination;. l/ O9 R4 ^8 ]4 M
                        assignLObj := rgmanager.rgAssignL;  Z  b) ^7 k5 W) |  x& r3 T. w
                        row := assignLObj.getRowNo(GlobalDistObj);+ s; c& E! U+ D, d8 }, `
                        if Row = -1 then -- since 700 h0 |6 X1 Y) v6 F' {
                                if lan=1 then1 B. M  c  e/ [7 I# x  d: x
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
" p2 F$ T$ U9 H- C0 q                                                to_str("in der Andockstation: \"",?.~.name,"\""));% A: D9 C/ O! |7 Q
                                else
' O& y' R4 J& N6 K$ C/ N) {                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),- F" H( g1 s  K4 t8 g
                                                to_str("in docking station: \"",?.~.name,"\""));                               
7 M. A) G% Q/ c) o' b5 e/ m4 R3 k! y                                end;) k% G- B4 n7 x  j
                        else+ Z, d& @. R9 T0 G, V8 Q( E. N! |
                                @.Destination := assignLObj[1,row];
$ R7 {1 m, m# B$ c5 {- G                        end;                       
9 O$ w) s/ O0 D2 W. V* F                        newDirection(@);
$ C# d% h1 y0 i- d9 X2 J                        @.HasOrder := true;
7 \& w& @, p7 p, E                end;+ A. x% @# J  b, R; _) ]) P$ n
        end;
! d3 b! p( O, ?# D4 E. S+ ^: Send;        -- of the method
4 w: F% n( x( b5 o# t3 ?) N
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
' e3 ]1 E6 d6 }* J3 d& S9 p  G7 e) d( U) a% X6 L& K3 i$ N1 F
这是AGV_putin中arrive的method。" e6 `* ~# A+ _) U7 E. M7 T4 |
3 D! T5 Y) q, _/ J# V( d7 ~
当到达物料速度越高时,这个报警更多,% S% e7 e0 B# `
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
9 e$ M. Q0 W0 c- G& H0 f程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
5 }7 a- m( J: \! e5 w3 n4 f( o
, h# }) _% \0 t, f- h. H8 S/ e另外一个小建议,就是move,所有的move都可以这样0 X; P0 @( b6 ~9 g) Q
if not move() then debug end+ G" O: G. T, e' H2 S
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。/ p: Y9 }& k( c( {' g' U: \
plant simulation中的free libraries有AGV模板," }9 {# c0 Y! Q0 F; n- G0 M
里面也有案例。5 j# `  f8 a, E, O# y- M
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
+ c& A: b- W( A4 q
6 u2 D  C0 J. `1 v我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 , X2 [; F; r7 I; f$ W/ l
" ?$ Z& }2 V9 c2 h/ L* d
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
! ^7 `6 s7 W+ ]/ D2 ?' J! s这是AGV_putin中arrive的method。
5 T' _  z# Y/ H3 Z  `
% n( F0 {( k8 D" y1 X当到达物料速度越高时,这个报警更多,
, x; V' r5 \1 S! y; ?
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-17 22:02 , Processed in 0.018901 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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