设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5905|回复: 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'
6 T+ B4 a# e% l9 X*/7 b% X- q( ~& J+ g! \1 }& N1 _
is
8 Q, R7 z* H4 G" O" P. p        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
: m9 M: I! C! u+ H5 hdo
* L+ ?+ U4 i% [        Lan := rootfolder.Internal.Tools.AOLlanguage;
$ L6 T0 D. a: [& i% C        if current = @.Destination -- else return
$ A* h: e( i4 [% B        then; W  ?! p6 ?9 p( m9 _/ q
                @.Destination := void;
) |. a5 A/ q+ f- R5 p4 ~; E                if @.occupied then
& v* D3 G/ k. K' K                        part := @.cont;& G) X% J$ I" j5 ]
                        @.transpOrder := void;5 r+ p- {+ c1 Y8 o! g
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
, U3 ^9 ]* k# R: c$ r( B                                @,root.eventcontroller.simTime);
4 R/ _  W/ e' ]' E                        @.HasOrder := false;1 p# i  \' r6 x- ^# N- b8 j
                        @.DrivingHome := true;
+ M8 ~2 ]2 u- o4 K0 ?* k! T% ?                        rgManager.tryToStartTransOrder;9 @2 {1 S6 m3 U2 ?$ Q, O
                        if @.Destination = void- L( `9 Z. Y) q/ b2 q# t
                        then -- no transport order for vehicle @& r5 @; q4 ~5 s* ?; \% m2 n0 V
                                @.Destination :=
  v: d9 d, i8 L! {) r                                rgManager.nearestFreeStation(@,track.~);
: Z/ H: x3 S) R0 R2 I' K                                newDirection(@);   
% \# X6 y0 f! K4 m                                if @.Destination /= void then% J" u0 F8 K8 v- T8 i% E$ n
                                        @.Destination.NumReservation :=
2 I9 S* ]8 m+ u& v+ d% `                                        @.Destination.NumReservation + 1;
" ~/ Y: h" s; h$ R1 s                                end;
9 z3 S3 s) X; J' L4 d$ ?9 [                                @.CurrIcon := "drivingHome";( Q. H' h  q2 w/ l, T/ b( ?
                                @.DrivingHome := true;
, Z  w& V' @0 c( q1 G& _1 r                        end;
! j% G  K' R6 ^7 K6 g                else -- the vehicle @ is empty, both vehicle and part are in the same dock station2 K3 O, [' U7 H6 j0 ~4 A
                        part := @.transpOrder;% o7 a: G: }- g; {/ O( o# H" ]% ?
                        part.move(@);-- load part9 f5 F+ @2 P3 p& R9 z
                        @.CurrIcon := "load";9 y- X) v2 D1 F& Q
                        GlobalDistObj := part.globDestination;
/ |, P5 T# n) v: _6 z' G                        assignLObj := rgmanager.rgAssignL;( D( }5 u) F8 J8 c3 t3 E
                        row := assignLObj.getRowNo(GlobalDistObj);5 P, u  F2 z- T5 M* A
                        if Row = -1 then -- since 70# ]4 }8 \# x: ]$ C
                                if lan=1 then
& }- p0 ?6 F8 a9 \3 W7 {! `3 Y, D& L                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),5 s3 U: v) `  Y* ]5 a" ?9 Y
                                                to_str("in der Andockstation: \"",?.~.name,"\""));2 N, S( S2 f9 k# Q: E( D
                                else) \' y4 ?% _2 w  [  i" Q6 s+ C
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),% q7 |# x" l( ]0 }% t2 i8 ?
                                                to_str("in docking station: \"",?.~.name,"\""));                                5 S: y& o9 @; \& r4 h
                                end;8 c! ~7 `9 X; v  Z8 R
                        else  q* e7 l1 X0 A6 x
                                @.Destination := assignLObj[1,row];) [) p+ K0 f# T: s7 I" s
                        end;                        + U* O% V& w5 C) }' T
                        newDirection(@);, Y- o# Y. M, V6 f! s
                        @.HasOrder := true;8 l9 ?& M2 U# L) F+ V9 t
                end;
" G% W& M; I& S) S        end;
- @( S! R" S& X: h8 U2 \end;        -- of the method- g, ~3 j, \. s& o* R
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
* L6 r* w" X! L' }7 t4 ~
. s) p( F0 n7 Y这是AGV_putin中arrive的method。
+ Z+ Q- t( o3 G7 V% l' a
  F- H- h3 b. x! }$ g& O当到达物料速度越高时,这个报警更多,
( f8 f6 I& Q' {' H5 E$ i5 S可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
' n, J- A4 b9 M$ R, z9 S程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
/ W6 H$ @$ o9 y% o+ V% J7 q+ W3 `5 h# n. s
另外一个小建议,就是move,所有的move都可以这样
: Y( j( ]. l- v, O* E9 W* fif not move() then debug end) F' C, h2 |- i1 I# s: g
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
; I: O8 ~' [* i2 F1 y, P. o0 rplant simulation中的free libraries有AGV模板,+ u. o% y! W2 {7 K( T2 E/ P
里面也有案例。
! y# U& ]3 s% G$ E我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
  i  ]  S, f2 k6 ?. l4 c. h
6 f" D- j; F) C3 O: w3 Y; T我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 6 x, ^0 b0 x/ |# T/ j  M
7 ~1 o% \7 y/ g2 y- e- `3 S
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 $ p% ]6 s! V) i' n! y! D: [5 r( Y/ H
这是AGV_putin中arrive的method。" y8 w# q; C% x+ f7 @2 e

5 X' t* A7 b# l当到达物料速度越高时,这个报警更多,
0 U$ I7 C3 r$ _. z
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-31 14:05 , Processed in 0.018411 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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