%SBDATA 单台设备下数据集合
% 包含单台设备的指标读取, 根据测点和指标类型过滤指标, 指标同步. 可以成为停机判断, 趋势识别的输入.
% properties
% tbs - 指标序列. 结构体数组. 每个结构体包括一个table, + 一个measprop
% synctime - 按测点同步的时间
% graph entfun.Graph - 设备graph
% methods
% read_indices 按照一个mask过滤器, 读取指标 (mask过滤的功能暂时没有实现)
% read_saved_fe_from_cassandra c
% try_to_identify_cldyidx_by_feid 通过feid定位是哪条测量定义. (硬写入, 比如1602 是对应高加)
% sync_tbs_by_method_a1 时间同步多测点指标, 同步的时间保存在synctime里. tbs中会出现nan(同步时间下没有数据)
% sync_tbs 集成的测点指标同步方法(Newly Added)
% read_measdef_data 按照feid 读取单个指标. 可以在此添加不同的指标类型
% apply_mask 通过mask筛选tbs
% get_flatten_tbs tbs本来是按测点存成cell的, 展成一个结构体数组.
% convert_to_waveagg 功能待完善. waveagg是波形集合. 每条波形tb, 对应一个measprop, 对应一个graph
% judge_sb_stop_status 将"同步后"的测点, 判定机组的启停机状态.
Syntax
sb=entfun.SbData(graph);
Methods
rst=isdataempty(obj); %判断实例中有没有读指标数据, 是否读到指标数据全为空.
clear_data(obj); %删除指标数据, 用于重新读数据
read_devnode_fe(obj,feid,st,ed,logfilepath,fenametb); %读取设备节点的指标, 如转速, 停机状态等. 输入feid 待读取的指标feid, st开始时间, ed结束时间, logfilepath[可选]日志文件的路径, fenametb[可选]指标编号-名称对照表
strErrorReadFeids=read_saved_fe_from_cassandra(obj,mask,st,ed,logfilepath,dbname,fenametb); %读取该机组不同测点下 自定义指标编号的指标值. mask结构体,指明读哪些feid.st开始时间,ed结束时间,logfilepath日志文件的路径, fenametb指标编号-名称对照表
sync_tbs(obj,syncMethod,allowSynWin,minSampleInterval,isFillMissing); % 时间同步多测点指标, 同步的时间保存在synctime里. tbs中会出现NaT,NaN(同步时间下没有数据)
input:
syncMethod 同步方法. 'minDist': 按照最小时间间隔同步. 例obj.sync_tbs('minDist',allowSynWin,minSampleInterval,isFillMissing)
allowSynWin 允许同步的时间间隔, 最低设成minutes(5)/days(1), isFillMissing
minSampleInterval tSyncTime的最小间隔. 默认minutes(2)/days(1)
isFillMissing是否用最近的点填充, 允许多对一. 默认不填充isFillMissing=0.
output:
同步后的指标存回obj.tbs中. obj.tbs(n).va(table)中插入(NaT,nan)的记录,表明该时刻指标n无数据,以缺省填充. tbs中每个指标都变成长度相等
unsync_tbs(obj); %将已经同步的指标, 恢复成未同步的状态,去除va.measdate中NaT的值
[tb,idx,status]=read_measdef_data(obj,vibnode,datatype,st,ed,logfilepath,dbname); %读取单个指标, 保存在tb中. 对于指标feid=1,2,3,5,27,28,21,22,23, 返回所在测量定义的序号idx, status指标读取状态0成功-1失败
非通用,需要预读取指标和条件(未来考虑放在单独的库中管理)
remove_error_signal(obj); %移除指标中已识别为误信号的值
judge_sb_rpm(obj,method); %融合各测点的转频指标得到设备级转速, 储存在obj.rpm属性中.
update_graph_stp_thd(obj); %使用停机门限计算方法重新计算门限, 并更新到各测点的停机门限属性中
judge_sb_stop_status(obj); %判断设备启停机状态.
set_rpm(obj)% 读取的rpm指标72179, 挂载到sb.rpm中. 同时删除tbs中的rpm记录.
filter_out_stop(obj, fcn_cal_nonstop_index) %
不维护
parread_saved_fe_from_cassandra(obj,mask,st,ed,logfilepath,dbname,fenametb)
convert_tbs_to_lines(obj)
covert_tbs_to_pbs(obj,fenametb)
waveagg=convert_to_waveagg(obj,tbidx)
apply_mask(obj,mask)
tb=generate_nthPt_pb(obj,ipt)
tbsSub=get_nth_pt_tbs(obj,nthPtInTbs); % 拿到第n个测点下的所有指标, 转换成table的格式
flattbs=get_flatten_tbs(obj)
tblen=len(obj); % 获得读取的指标个数
len=dataPtLen(obj); % 获得测点个数
Examples