设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7008|回复: 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'
2 N# p, P& m: p: q+ j*/
, m. Q' j9 A+ B  y" O( d# ^* ~is
: ~! o3 [6 ^+ v4 @7 B' e        part, GlobalDistObj, assignLObj:object;row,Lan:integer;0 s5 |/ U( s, ]9 Z8 b; G$ ?
do2 W6 p/ V+ Y2 E, I& }0 i
        Lan := rootfolder.Internal.Tools.AOLlanguage;: t( K' k2 P7 I! J6 F
        if current = @.Destination -- else return
' h; Y% g/ D/ i* Z        then( M$ h0 g4 k/ P
                @.Destination := void;
4 f2 c- `5 P+ d                if @.occupied then
' w) g- m: r, x1 W                        part := @.cont;3 \* ]; w% c7 U
                        @.transpOrder := void;) ^$ Q" p1 p7 H& G, z# T9 L! W
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ z$ w3 X( V; y5 _                                @,root.eventcontroller.simTime);! O( Q% ~& L& z4 V0 V1 D/ i
                        @.HasOrder := false;5 ^$ x$ L$ E+ P3 ~0 ^- H/ |
                        @.DrivingHome := true;
) U5 A6 K' _( g& W( |. l, n0 g                        rgManager.tryToStartTransOrder;
4 [9 D$ O$ R# p                        if @.Destination = void* ]. R) A( R0 r2 i6 ~' V5 L
                        then -- no transport order for vehicle @
2 Q9 Y: a  g/ `% H; d- U) Y                                @.Destination :=/ b+ p4 i- i; l7 G: J( q
                                rgManager.nearestFreeStation(@,track.~);7 T. o  U- ]9 U, o
                                newDirection(@);   
( ^/ `4 w* U& ^                                if @.Destination /= void then3 u! U$ t$ q( x8 a- [
                                        @.Destination.NumReservation :=- F1 d: t& m- e3 V( O( F% j
                                        @.Destination.NumReservation + 1;
) m# F6 O3 K" A( r1 V$ m8 B$ z                                end;
/ l! J" }' a; y+ T4 Q# ^. Y                                @.CurrIcon := "drivingHome";0 g" P' A$ n8 f8 a8 y$ T9 ~! H
                                @.DrivingHome := true;
% P2 n9 p1 w; H                        end;" q9 g1 l8 y3 ~: t7 F
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station4 I3 w' C% ]) V5 ~( Z# d
                        part := @.transpOrder;
  L: K+ J6 W% h$ ?$ w2 ]. K( i( i                        part.move(@);-- load part# q( u: `6 ]1 u0 T5 {2 l. |
                        @.CurrIcon := "load";* J; s2 y8 P) g  j$ ?$ `7 ?0 U
                        GlobalDistObj := part.globDestination;! t- K7 I8 Q( p8 b
                        assignLObj := rgmanager.rgAssignL;
/ O5 }" k- y1 q                        row := assignLObj.getRowNo(GlobalDistObj);
) e# V8 B# p; W6 K! u0 v1 D' R                        if Row = -1 then -- since 70
5 e( a# T' T) q                                if lan=1 then" o  A$ O) D- W) X7 j5 J0 @
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
# m: I  W4 Q/ y: i* A                                                to_str("in der Andockstation: \"",?.~.name,"\""));
( u: Z) X. w8 _: H9 B0 {7 K, {                                else
, c% t/ ^* d6 @" A( k( W7 m                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
  w; q( S* N# J                                                to_str("in docking station: \"",?.~.name,"\""));                               
- S- c% D: j$ z) ?% _                                end;$ w2 h1 x; Q& H- w$ E
                        else, v9 n9 U# N5 c1 \# M
                                @.Destination := assignLObj[1,row];& `( I4 }/ d. W: {& U, j
                        end;                       
5 ]4 O. b9 {/ p. g4 K                        newDirection(@);$ V9 n* ~  d$ f3 ^
                        @.HasOrder := true;
/ I! \, E/ W  q/ ^& w! x% ?                end;
' U7 R, x7 k. X% D        end;
4 J& V! {& h9 C) Tend;        -- of the method
6 x6 Y( t3 u7 o2 }/ a4 f
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
/ K3 S1 {* Z' H2 j& p6 i3 i
) e0 c; {% B5 e这是AGV_putin中arrive的method。% k( P; Y) o2 v" |' M2 p0 A+ ?
! P9 U* p( H0 c% ~+ Q3 ]
当到达物料速度越高时,这个报警更多,0 f7 A9 o$ Y/ _) C- i
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。6 o+ W2 Q2 }. e9 ^# @0 d
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?7 i# y5 B2 [- ~$ ]; R

, f; U& L0 {, D4 j) M- H# L3 I另外一个小建议,就是move,所有的move都可以这样
0 G; H' K, P, r% T+ Z! U6 v3 C3 R6 ?if not move() then debug end+ [. t3 W, d; x& p* s
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
. P& X/ D% w0 \8 Rplant simulation中的free libraries有AGV模板,& Y0 m$ S; `2 F
里面也有案例。" z9 ?5 e1 w8 N+ B
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。9 g. i; a  d' X* |1 A" K! f( `
: N+ y3 H1 G$ s8 z' R5 n
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
- B4 H  d6 A4 |0 ]" \
+ X4 _3 ?+ r7 t9 {4 O那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
% Z8 O$ z- N4 Y" D这是AGV_putin中arrive的method。
5 L7 h6 E6 ~9 C8 G6 l
1 |% ~: u6 Z- K) D6 I# b& p3 e当到达物料速度越高时,这个报警更多,

) ]9 I) i/ P( B( D; J' }% n' r0 |另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-11 00:26 , Processed in 0.018152 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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