设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7425|回复: 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 w" C5 ]. \/ i4 s# e3 d5 y*/3 @& J: d/ A3 f: ]% A; Y
is
. C6 I8 A4 N  O- y; Y, F- t. ?        part, GlobalDistObj, assignLObj:object;row,Lan:integer;0 ?; |9 t! P# b/ ~5 n& M5 B$ i. O8 q  Q
do' _1 P- T! m8 F# |( I
        Lan := rootfolder.Internal.Tools.AOLlanguage;" o$ P& P7 C# }( a4 F
        if current = @.Destination -- else return: j' t8 y5 F* N/ E$ T
        then' \" o# `5 {) ?, a% ?: J5 }) d+ A
                @.Destination := void;
4 ]8 X9 a: t; z# E: v                if @.occupied then- k8 e- Q2 z; ^. p& A; S
                        part := @.cont;& F* H- H6 \! }; j
                        @.transpOrder := void;  I5 m" d* y7 {7 _* B* {* I! y' F
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,& L+ Y, I; Q3 |& R8 H  X
                                @,root.eventcontroller.simTime);
1 ?7 S% S. x0 D  y                        @.HasOrder := false;# F/ S7 e; [) z# R. T( x, d& o
                        @.DrivingHome := true;8 X- d6 ]; C1 A& f0 ?3 J, Q
                        rgManager.tryToStartTransOrder;) m1 o0 N! o. O6 I; G0 ]
                        if @.Destination = void) F, H) c( y; ]. [/ `
                        then -- no transport order for vehicle @1 l! z- |$ n9 Z/ L$ n* _
                                @.Destination :=9 u5 T! e, a  s1 U/ O
                                rgManager.nearestFreeStation(@,track.~);( i$ [# K: |+ Y1 A, T$ k) T; w) s
                                newDirection(@);   1 V5 p8 ]8 ]7 T7 ~$ l
                                if @.Destination /= void then. K; s) D- n' H" k' U
                                        @.Destination.NumReservation :=
# |0 J% T# b; E8 |, B7 Y, d                                        @.Destination.NumReservation + 1;
7 }4 ~+ K9 [3 S- R+ ?& O                                end;
4 W1 B3 O# {6 e3 X" B                                @.CurrIcon := "drivingHome";7 U0 ?# ~2 J& p3 W, {
                                @.DrivingHome := true;. m  I' j7 |& i5 t
                        end;. J: `+ \# Y) C- c; r/ P
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station) d1 W# C7 R! \$ z, ^+ y# l7 V7 T" _
                        part := @.transpOrder;
0 ]& @" R/ c4 g7 Z7 f# t# Y+ l                        part.move(@);-- load part; ?6 \7 E' h! y
                        @.CurrIcon := "load";/ r7 M  L9 _9 X8 W5 s
                        GlobalDistObj := part.globDestination;, V% [$ f' z2 c  |1 x4 G) H
                        assignLObj := rgmanager.rgAssignL;
! O* G) t# v4 z3 G# O+ s" w                        row := assignLObj.getRowNo(GlobalDistObj);
( @" b+ W' |, a) M3 n# h' U                        if Row = -1 then -- since 70: N+ y# O% o* |3 g* ~% r4 Y2 w
                                if lan=1 then- E6 D2 e9 b' u, {
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
7 E: Y9 [/ h" O                                                to_str("in der Andockstation: \"",?.~.name,"\""));
! d$ V  A# n  q$ w8 c- }: l, f& A                                else# P* w6 P2 A( j2 m- z% F
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
' M& g# ~# F: ^7 Y$ l! V# u                                                to_str("in docking station: \"",?.~.name,"\""));                                " ~2 Z: U& B( R# q  \0 ^/ c* e
                                end;3 L+ S# t  t- p; K7 A/ o: J
                        else3 w, d- ]9 \: h1 r* K4 I
                                @.Destination := assignLObj[1,row];; {" V) H) I" N( O
                        end;                       
1 B% b( ~4 E/ H                        newDirection(@);
) ~4 [+ I1 v: T                        @.HasOrder := true;6 Y# X7 A2 U; _3 v* k( V9 g
                end;
6 `& u. f) k! j% r" P& g$ n        end;( x! K$ g2 M4 {% c7 v1 F' X% J% j
end;        -- of the method
% z$ i3 p1 }: u% k5 z$ q
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
1 g$ J; E( s& i% Z$ B
2 m) f3 y+ T* q0 b8 {这是AGV_putin中arrive的method。
: Q* X$ `( Z# I% ~; ]# j, P+ n7 w
当到达物料速度越高时,这个报警更多,
: t2 s7 h, d% O可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。. f& f& {/ f& Q5 \$ A5 _8 A
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
# h7 Z6 y- U4 h+ m
, p. R- i+ y# t. Q/ G2 p$ \另外一个小建议,就是move,所有的move都可以这样" _5 V! {* n1 \) F* \
if not move() then debug end
2 G( @1 [( |2 m5 W/ |5 h# T* D: W这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
" A, j* P  f/ @# Eplant simulation中的free libraries有AGV模板,
2 g, ]4 W$ a4 g" b- A& w, A/ x里面也有案例。8 ~$ E0 L7 b5 X, H3 S& s+ B/ s
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
3 n! O3 J3 o- O
+ H% Y3 `% L$ ~- P. ^, l5 d我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
- b0 e. `& q3 B3 @* S) P. [
% g( A  m$ k5 h# J8 B6 y  S那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 7 a  L* m7 [6 }3 t! M" G
这是AGV_putin中arrive的method。
0 }9 F0 C* G* J6 G" W/ k: o4 T0 `
6 ^. C' w0 O, J; p+ ^" i当到达物料速度越高时,这个报警更多,
: Z' ?" x6 A+ \  A# t1 N. Z* m1 A
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-10 18:43 , Processed in 0.017659 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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