设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9403|回复: 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'& c9 _& Z. O9 B( j( `0 h! M* O
*/6 y/ v$ a# D$ p# K8 ]' H
is
6 \# v" X$ Y. \1 x( p        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
3 U( p  S% u( r+ S  j1 [0 B" k* }% mdo7 q2 M5 K; H- A5 D& V
        Lan := rootfolder.Internal.Tools.AOLlanguage;3 [' P+ }% K( j8 o6 n
        if current = @.Destination -- else return
7 D" N# s' b1 H7 g$ e        then
0 R5 D/ L: C0 i* a9 \4 m                @.Destination := void;( N% g( R+ ]" V0 g% O
                if @.occupied then2 ?: u% ]. E0 L/ s7 U
                        part := @.cont;
" Y7 {5 ]: n/ D8 |/ }" ]+ {                        @.transpOrder := void;
, C" P4 o: F- f                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,/ l0 W  d3 ?9 l) A" E$ T
                                @,root.eventcontroller.simTime);
) M! n, ^1 B; \# d# q9 }/ [                        @.HasOrder := false;
6 j  q+ t0 t2 r2 m. q" |' e' U                        @.DrivingHome := true;, m, X  ?: {! ~
                        rgManager.tryToStartTransOrder;
) `$ G9 u- U! U; Z. v$ c+ F9 i                        if @.Destination = void
' @/ M- `) w1 a1 y4 E; ^9 v! V- u5 X                        then -- no transport order for vehicle @
0 f: g' o( t. v% d- o$ R6 ~' b                                @.Destination :=- v3 Z) h1 S6 z  D" T, l
                                rgManager.nearestFreeStation(@,track.~);6 V# }  o9 e/ e/ X6 q; [5 x4 g4 [
                                newDirection(@);   ( z& w/ S# k" L& }' \
                                if @.Destination /= void then
; o) |; L' `1 M6 x. c. J                                        @.Destination.NumReservation :=
6 t% {; C6 p2 A0 m, R! t: A0 x: m                                        @.Destination.NumReservation + 1;. O" M2 w; c8 p! ~
                                end;
) r; b' L" X$ D7 G& R1 D                                @.CurrIcon := "drivingHome";7 O/ k& \7 g0 \& c: u' O6 u
                                @.DrivingHome := true;
' `& m3 Z5 |* Y. X3 l( \6 \1 ^% K3 Q                        end;2 A# h* E" l- z, f* T: @7 T
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
! N5 L: d) d: f1 n: V4 `$ V4 L                        part := @.transpOrder;5 y: i+ k* g4 S: P' x% ~
                        part.move(@);-- load part
1 q5 {* l. o5 v& J% R0 ~* l4 q                        @.CurrIcon := "load";
4 @0 H2 c( E8 I& T* Y                        GlobalDistObj := part.globDestination;
7 b( ^$ t; b/ A4 u; C                        assignLObj := rgmanager.rgAssignL;
6 G/ A# n7 X' t9 ]4 z5 c                        row := assignLObj.getRowNo(GlobalDistObj);% T/ ~/ v" I& K
                        if Row = -1 then -- since 70
( h, _- z0 g% r( I! T                                if lan=1 then/ M+ N* X" b& c7 t5 R- F1 _
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),3 u2 O) z6 a1 F5 H, I' {3 P$ {
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
. t# H) ^1 m6 c0 P                                else
; W& ?/ B  T5 q# `5 H0 C7 E, i8 Q                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),5 q% u/ U8 ]! C; A* t# x
                                                to_str("in docking station: \"",?.~.name,"\""));                               
& `9 L+ B5 D* F6 `8 ^& m- D9 o                                end;
3 K. ^6 M; ~3 u6 K                        else1 x1 Z9 A# n; H0 a1 J
                                @.Destination := assignLObj[1,row];
* F6 Y1 W, p# ^5 `; e8 v  m1 C" O" |                        end;                       
/ L7 c4 }9 ]( U                        newDirection(@);1 [3 {1 H+ X8 J+ ~- q7 K- @
                        @.HasOrder := true;/ ?! t( P- p5 ~) e/ {& P' |
                end;
1 o" J4 E8 w* k  W% X, D        end;
, a( j7 `' b3 [& \( F/ Aend;        -- of the method
6 i1 G4 P1 g/ v6 r" ^4 B
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
$ B3 t1 a/ D& ^2 G/ @
4 L) p) g9 q2 c0 b8 o5 S! F, Q$ V# M& _这是AGV_putin中arrive的method。
9 y, x; V, U0 x: F' _4 u0 S
% f# G' s/ T$ V: r& E当到达物料速度越高时,这个报警更多,  Z) F2 ~% d) D6 q, ?/ p, l
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
( g: P! h5 }; t+ ~  S' h& N! y. A程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?8 N- @# a6 u, p( p! q
- W/ B! P9 `; W  @! B8 L
另外一个小建议,就是move,所有的move都可以这样
/ ~) U5 i$ t; _+ T' v, qif not move() then debug end* E+ S& g9 U3 y! I" O) @
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
' M! O$ C3 e+ ~. k4 s, |+ n1 [plant simulation中的free libraries有AGV模板,
' F0 p& q4 t. |+ K0 u里面也有案例。
& X+ z2 |6 |. c我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
# q, U5 E0 o+ k) k  G+ N: {0 h
4 A- T$ Q. t8 h; E! {1 G4 \我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
5 [+ [( s' y. x9 P: f9 u; ?) h1 W" P0 O! `: K
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
- P3 b7 d6 _4 q! R: z这是AGV_putin中arrive的method。1 p" m* i7 x3 P" |' y

: X1 ?4 N) Y' r+ b! p当到达物料速度越高时,这个报警更多,

7 s6 }! J) e: {& Z; u1 A另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-30 13:26 , Processed in 0.016090 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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