设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6059|回复: 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'
8 ?: G2 c: X9 l; o5 s( d, M& h. J*/' T) K# b/ f9 _# O, Y- d) }8 ^
is
" _; i/ n2 h! F. V# }- U3 E1 o2 ]$ Y        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
! [1 N8 Q6 T+ d, j- u( t. X. ldo
& P) N' v" S# H        Lan := rootfolder.Internal.Tools.AOLlanguage;
' J. P, L* v7 @) h$ M9 s0 D- U5 K        if current = @.Destination -- else return
1 u4 d  o5 a2 M        then$ w) f  Q. |4 M# b
                @.Destination := void;
' D4 l$ q( G& S" c1 n" L& O                if @.occupied then. C! T) e! n$ M
                        part := @.cont;
1 |/ r! E- H3 r. R  I% [9 v                        @.transpOrder := void;( Q9 J# l7 X( `6 G0 X
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
$ J" n" U& Q1 F                                @,root.eventcontroller.simTime);2 r& h# l5 [5 I8 v4 h, e  y
                        @.HasOrder := false;4 u6 v1 B3 O" `" H  A3 A3 k% A4 n' O
                        @.DrivingHome := true;
3 l; y: S4 [/ d                        rgManager.tryToStartTransOrder;
/ \" \4 h$ L/ L                        if @.Destination = void
) }8 p7 ~0 l- Z                        then -- no transport order for vehicle @
1 e. d- k, Z- c                                @.Destination :=
$ J! t& m7 \" L; C) i( W5 m: ^9 z9 v                                rgManager.nearestFreeStation(@,track.~);/ F: ~8 V/ k4 h7 @- o+ M  T
                                newDirection(@);   & S# B# A9 J. K% j! @+ z
                                if @.Destination /= void then3 k2 y3 e$ [" ?2 `
                                        @.Destination.NumReservation :=4 w; L; D4 m, G( M+ [
                                        @.Destination.NumReservation + 1;* l' e/ M. {; S! [* Z
                                end;
( m8 ?! H* g1 w2 m; N                                @.CurrIcon := "drivingHome";& ]: y6 ]# c8 i) c3 s$ E9 S- i8 t! [
                                @.DrivingHome := true;6 K0 f7 j- [) N$ `8 f
                        end;+ d& \" G! k5 c
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station; d1 ^( N% H3 c+ ^$ q0 l: ~  K
                        part := @.transpOrder;
% M$ x1 E. B- _* |7 h5 ]                        part.move(@);-- load part
! m; q! I: n$ b- n                        @.CurrIcon := "load";
1 O9 E' W" ^# W) v* u                        GlobalDistObj := part.globDestination;
: W% c5 ]4 l. T1 p0 R; G                        assignLObj := rgmanager.rgAssignL;0 g0 ^( D3 ]* j: g0 V# D. V- x2 W5 E  g
                        row := assignLObj.getRowNo(GlobalDistObj);  ~5 n, i8 C3 o% p3 I
                        if Row = -1 then -- since 70
7 x. r! N  U/ G% A8 u+ p4 M1 n! L                                if lan=1 then
; z9 G- E# r2 H  Q5 ]4 k                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),! }  [& K, @6 `7 C0 U
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
6 h: i, i& Z8 t6 F; O, D3 G* ?                                else
* F8 R( o4 y4 k% i" u0 t                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
; H, R+ |6 @8 w6 G! c                                                to_str("in docking station: \"",?.~.name,"\""));                                " V* T5 t1 l- {! {! o
                                end;  h7 n( w3 B; ?1 q0 O
                        else
) y7 _3 e0 j  |3 ~1 ]                                @.Destination := assignLObj[1,row];1 w5 A( ]# E- s& Z
                        end;                       
: M& v+ w5 H+ Y% c1 U                        newDirection(@);
) z# X6 t) F; y  i# ^+ {9 @( _                        @.HasOrder := true;9 H( M# a/ E/ ]
                end;
2 g$ }& l* P' [9 B8 W: q! Z) k        end;" R$ Y. o$ g0 k# m. X/ _
end;        -- of the method. U6 b4 ?# @% \% f0 Z: b
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
% N& M9 q0 B% Y+ O9 Z- M2 F$ A) N% g6 Y6 M7 P; l0 x
这是AGV_putin中arrive的method。0 s4 `7 _2 m9 M

: h+ O0 [( W$ n' w当到达物料速度越高时,这个报警更多,$ z# a: f; z/ K" k9 x. B
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
% B  d+ j% d; U1 r( r, W程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
! y; F8 p$ Z* q
" x; X' N! S" E. J, h5 v0 G' k: a另外一个小建议,就是move,所有的move都可以这样
+ V" Z$ j& b- k9 N( _if not move() then debug end5 u- r, ]/ q; ~/ Y3 T
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
5 d6 h2 b6 e8 l( o  g4 m' Z8 Splant simulation中的free libraries有AGV模板,  d$ u% h# Y9 i* T7 E
里面也有案例。
; t1 e, W( R  r0 I; J/ k  O3 S8 D' b( I我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。  l7 t: r/ O& \5 g& O7 k

3 v! L' I0 [3 b8 m我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
! J, w5 o1 Q3 ^2 \4 \8 c  b4 Y' X1 S1 l7 f& D* e0 |0 R
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
6 d7 E5 _: w% A& l+ D% {# P这是AGV_putin中arrive的method。
( `3 S0 K6 V+ @1 r  R! O7 d$ W# D2 Q5 [- [& a' V6 j
当到达物料速度越高时,这个报警更多,
9 s1 a% k4 d8 Q5 {* c+ M
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-15 03:24 , Processed in 0.018445 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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