掌桥专利:专业的专利平台
掌桥专利
首页

一种数据采集方法及系统

文献发布时间:2023-06-19 13:27:45


一种数据采集方法及系统

技术领域

本发明涉及抄表数据采集领域,尤其涉及一种数据采集方法及系统。

背景技术

近年来,随着信息技术的高速发展、芯片处理能力的提升与成本的下降,越来越多传统的机械电表、水表、气表、能量表等被智能化仪表所取代。因智能化仪表拥有数据传输的能力,所以能够取代以前繁琐的人工抄表环节,用户所使用的水费、电费等能够更加及时、准确地进行计算。而且随着智能移动终端的广泛普及,越来越多的用户钟爱在智能移动终端进行水、电费的缴费。

市场上有非常多的智能化水、电、气、蒸汽、能量表等仪表的厂家,但不同厂家所生产的仪表采用的数据协议互不相同。即使是同一厂家生成的仪表,因仪表型号的不同,其数据协议也有可能会有一些区别。不同仪表所使用的计算原理大致相同,是将本次采集到的仪表读数,减去上次采集到的仪表读数,所计算出用户的用量,但某些的仪表仍有其特殊的数据处理、校验方法,如:电表的读数需乘以其设定的互感系数、时间法仪表的用量需比对本次与上次的时间间隔等等。

发明内容

本发明所要解决的技术问题在于,提供一种数据采集方法及系统,能够解决现有仪表因数据型号或协议不同而存在数据采集处理难的问题。

为了解决上述技术问题,本发明提供了一种数据采集方法,包括:将上传的抄表数据进行初步校验;将初步校验后的抄表数据进行型号数据遍历,并按照仪表型号进行排序以及分类处理;对各类型号的仪表数据进行仪表数据遍历;对仪表数据中的字段进行遍历,并按数据类型进行归类。

优选地,所述将上传的抄表数据进行初步校验的步骤包括;对上传的抄表数据的数据包进行序列校验和必须字段校验;将数据包的基础数据与系统中的数据进行比对;清洗数据包中未授权的仪表型号。

优选地,所述将初步校验后的抄表数据进行型号数据遍历,并按照仪表型号进行排序以及分类处理的步骤包括:对采集的抄表数据中,不同型号的仪表数据进行遍历;查询该型号的数据结构记录、数据表结构以及上传数据的字段,进行三方的数据比对,并取其交集。

优选地,所述对各类型号的仪表数据进行仪表数据遍历的步骤包括:获取仪表的基本信息,其中,所述基本信息包括仪表型号、仪表编码以及仪表地址;在数据库中查询该仪表的基本信息,并与获取仪表的基本信息进行比对并判断比对是否通过;判断为否时,则登记并报警此错误数据;判断为是时,则进入网关时钟异动子流程,在此流程中,取抄表数据的时间,与当前系统时间数据进行比对,若比对不通过,则将该数据标记为无效数据,并登记报警该数据。

优选地,所述对仪表数据中的字段进行遍历,并按数据类型进行归类的步骤包括:

S501,将字段按照数据类型进行分类,并筛选出用于计量的字段;

S502,判断用于计量的字段的读数是否为负数,

S503,判断为是时,标记该数据为无效数据,执行S506,

S504,判断为否时,则判断其对应的仪表是否为电表,

S505,如果是,则将读数乘以互感系数再进执行S506,否则直接执行S506;

S506,判断读数是否超过数据表字段的最大存储值,若超过最大存储值,则登记并报警此数据。

本发明还提供了一种数据采集系统,包括数据初步校验模块、型号数据遍历模块、仪表数据遍历模块以及字段数据遍历模块:所述数据初步校验模块用于将上传的抄表数据进行初步校验;所述型号数据遍历模块用于将初步校验后的抄表数据进行型号数据遍历,并按照仪表型号进行排序以及分类处理;所述仪表数据遍历模块用于对各类型号的仪表数据进行仪表数据遍历;所述字段数据遍历模块用于对仪表数据中的字段进行遍历,并按数据类型进行归类。

优选地,所述数据初步校验模块包括:校验单元,用于对上传的抄表数据的数据包进行序列校验和必须字段校验;比对单元,用于将数据包的基础数据与系统中的数据进行比对;清洗单元,用于清洗数据包中未授权的仪表型号。

优选地,所述型号数据遍历模块包括:型号数据遍历单元,对采集的抄表数据中,不同型号的仪表数据进行遍历;查询比对单元,用于查询该型号的数据结构记录、数据表结构以及上传数据的字段,进行三方的数据比对,并取其交集。

优选地,所述仪表数据遍历模块包括:获取单元,用于获取仪表的基本信息,其中,所述基本信息包括仪表型号、仪表编码以及仪表地址;比对判断单元,用于在数据库中查询该仪表的基本信息,并与获取仪表的基本信息进行比对并判断比对是否通过,判断为否时,则登记并报警此错误数据,判断为是时,则进入网关时钟异动子流程,在此流程中,取抄表数据的时间,与当前系统时间数据进行比对,若比对不通过,则将该数据标记为无效数据,并登记报警该数据。

优选地,所述字段数据遍历模块包括:分类筛选单元,用于将字段按照数据类型进行分类,并筛选出用于计量的字段;读数判断单元,用于判断用于计量的字段的读数是否为负数,判断为是时,标记该数据为无效数据,并进入存储值判断单元,判断为否时,则判断其对应的仪表是否为电表,如果是,则将读数乘以互感系数再进入存储值判断单元,否则直接进入存储值判断单元;存储值判断单元,用于判断读数是否超过数据表字段的最大存储值,若超过最大存储值,则登记并报警此数据。

实施本发明的有益效果在于:

本发明通过将上传的抄表数据进行初步校验,将初步校验后的抄表数据进行型号数据遍历并按照仪表型号进行排序以及分类处理,对各类型号的仪表数据进行仪表数据遍历,对仪表数据中的字段进行遍历,并按数据类型进行归类。采用本发明,能同时对不同型号的水、电、气、蒸汽、能量型、时间法仪表数据进行处理,涵盖了绝大多数的异常情况,并对异常情况分别处理。若有新的仪表型号接入到平台中,本发明能够改变原先一个型号对应一个数据接口的状况,大大减少了代码的开发量,减轻开发人员的开发压力,同时能够十分快速地接入新的仪表型号,改善客户的体验。

附图说明

图1是本发明提供的数据采集方法流程图;

图2是本发明提供的初步校验的方法流程图;

图3是本发明提供的初步校验的逻辑原理图;

图4是本发明提供的初步校验的型号数据清洗子流程图;

图5是本发明提供的型号数据遍历的方法流程图;

图6是本发明提供的型号数据遍历的逻辑原理图;

图7是本发明提供的型号数据遍历的字段筛子子流程图;

图8是本发明提供的仪表数据遍历的方法流程图;

图9是本发明提供的仪表数据遍历的逻辑原理图;

图10是本发明提供的仪表数据遍历的网关时钟异动子流程图;

图11是本发明提供的仪表数据遍历的用量计算子流程图;

图12是本发明提供的字段数据遍历的方法流程图;

图13是本发明提供的字段数据遍历的逻辑原理图;

图14是本发明提供的字段数据遍历的字段数据分类处理子流程;

图15是本发明提供的数据采集系统的原理框图;

图16是本发明提供的数据初步校验模块的原理框图;

图17是本发明提供的型号数据遍历模块的原理框图;

图18是本发明提供的仪表数据遍历模块的原理框图;

图19是本发明提供的字段数据遍历模块的原理框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。仅此声明,本发明在文中出现或即将出现的上、下、左、右、前、后、内、外等方位用词,仅以本发明的附图为基准,其并不是对本发明的具体限定。

如图1所示,本发明提供了一种数据采集方法,包括:

S101,将上传的抄表数据进行初步校验;

S102,将初步校验后的抄表数据进行型号数据遍历,并按照仪表型号进行排序以及分类处理;

S103,对各类型号的仪表数据进行仪表数据遍历;

S104,对仪表数据中的字段进行遍历,并按数据类型进行归类。

本发明,通过将上传的抄表数据进行初步校验,将初步校验后的抄表数据进行型号数据遍历并按照仪表型号进行排序以及分类处理,对各类型号的仪表数据进行仪表数据遍历,对仪表数据中的字段进行遍历,并按数据类型进行归类。本发明能同时对不同型号的水、电、气、蒸汽、能量型、时间法仪表数据进行处理,涵盖了绝大多数的异常情况,并对异常情况分别处理。若有新的仪表型号接入到平台中,此发明能够改变原先一个型号对应一个数据接口的状况,大大减少了代码的开发量,减轻开发人员的开发压力,同时能够十分快速地接入新的仪表型号,改善客户的体验。

如图2所示,优选地,所述将上传的抄表数据进行初步校验的步骤包括;

S201,对上传的抄表数据的数据包进行序列校验和必须字段校验;

S202,将数据包的基础数据与系统中的数据进行比对;

S203,清洗数据包中未授权的仪表型号。

需要说明的是,首先对数据采集器上传的数据进行初步的校验,其数据格式是JSON格式,但不限于此。数据初步校验主要达到以下目的:1.能防止因网络波动而导致的数据缺失;2.能一定程度上抵挡恶意数据的攻击,保证数据库数据的正确性;3.能够防止未授权的型号、超过授权数量的仪表入库存储,保障用户的利益。

具体地,如图3~4所示,数据初步检验步骤的描述如下:

判断报文数据是否为空;尝试将报文数据进行序列化JSON处理;序列化后,检验是否有datas键,并且该值不为空;查询平台项目的基本信息,若该项目是已过期状态,则丢弃此数据;进入型号数据清洗子流程,在此流程中,将报文数据中的含有的仪表型号,与平台中已授权的仪表型号信息进行比对,此步骤能防止因云平台与数据采集器的仪表数据不对称,导致脏乱数据的入库。型号数据清洗过后,进入型号数据遍历流程,遍历完成后,该数据检验、数据处理、数据报警、数据存储流程结束。

如图5所示,优选地,所述将初步校验后的抄表数据进行型号数据遍历,并按照仪表型号进行排序以及分类处理的步骤包括:

S301,对采集的抄表数据中,不同型号的仪表数据进行遍历;

S302,查询该型号的数据结构记录、数据表结构以及上传数据的字段,进行三方的数据比对,并取其交集。

需要说明的是,清洗后的仪表型号数据,进入型号数遍历步骤。数据采集器上传的JSON格式报文中,包含了许多不同型号的仪表数据,需对报文中的所有型号数据进行依次遍历。

具体地,如图6~7所示,型号数据遍历的步骤描述如下:开始遍历数据报文中的仪表型号;进入字段筛子子流程,在此流程中,将三类数据进行比对:字段表中查询出该型号的所有字段、组成该型号数据表结构的所有字段、数据报文中该型号的所有字段;这三类数据字段进行比对后,取其组成该型号数据表结构的所有字段作为基准,其他的字段将被过滤;被过滤的字段会进行报警;此流程能够有效地防止平台与数据采集器字段资料不对应的情况下,数据无法入库的问题,能最大限度地保证数据的入库。经过字段筛子子流程后,进入该型号的仪表数据遍历步骤。

如图8所示,优选地,所述对各类型号的仪表数据进行仪表数据遍历的步骤包括:

S401,获取仪表的基本信息,其中,所述基本信息包括仪表型号、仪表编码以及仪表地址;

S402,在数据库中查询该仪表的基本信息,并与获取仪表的基本信息进行比对并判断比对是否通过;

S403,判断为否时,则登记并报警此错误数据;

S404,判断为是时,则进入网关时钟异动子流程,在此流程中,取抄表数据的时间,与当前系统时间数据进行比对,若比对不通过,则将该数据标记为无效数据,并登记报警该数据。

需要说明的是,仪表数据遍历步骤嵌套在型号数据遍历步骤中,在上述型号数据遍历中,取得其中一款仪表型号数据。在此仪表型号数据中,包含了众多该型号的仪表数据,在此步骤中对其众多仪表数据依次遍历。

具体地,如图9~11所示,仪表数据遍历的步骤描述如下:

在仪表数据报文中,获取仪表的基本资料:仪表型号、仪表编码、仪表地址。在平台数据库中查询该仪表信息,将基本信息进行一一比对。若比对不通过,则登记并报警此错误数据。此流程能够有效地防止平台与数据采集器仪表资料不对应的情况下,脏乱数据的入库。

数据比对通过后,进入网关时钟异动子流程。在此流程中,取抄表数据的时间,与当前系统数据进行比对。因数据采集器设备的时钟依赖于时钟芯片,可能会与正确的时间有一定的误差。设定此误差的最大值为10秒,即数据采集器设备最多只能比正确时间快10秒。若比对不通过,则该数据标记为无效数据,并登记报警该数据。

进入遍历该仪表数据的字段步骤,从数据库中查询该仪表的上次抄表记录,并进入如下判断:

若该表无上次抄表记录,判断该表是否为刚换表;若仪表刚换表,则将该表的抄表数据入库至历史数据表、上次抄表数据表;若仪表未换表,则生成初始化数据作为该表的上次抄表记录,即读数都为0的初始记录;并进入用量计算子流程;

若该表有上次抄表记录,若本次抄表时间小于或等于上次抄表时间,则标记为无效数据,并入库至历史数据表;若本次抄表时间大于上次抄表时间,进入用量计算子流程。

在用量计算子流程中,将进行用量的计算,取所有用于计量的字段,有部分数据是不纳入用量计算中的,如电表中的电压、电流数据,这些数据是一个瞬时值。用量的计算公式为:用量=本次读数-上次读数;

若计算出的用量小于0,则登记并报警此数据、标记为无效数据;

若计算出的用量大于或等于0,则需对时间法的仪表做特殊处理;时间法仪表的用量是时间,需计算的用量应小于本次抄表时间减上次抄表实际。

如图12所示,优选地,所述对仪表数据中的字段进行遍历,并按数据类型进行归类的步骤包括:

S501,将字段按照数据类型进行分类,并筛选出用于计量的字段;

S502,判断用于计量的字段的读数是否为负数,

S503,判断为是时,标记该数据为无效数据,执行S506,

S504,判断为否时,则判断其对应的仪表是否为电表,

S505,如果是,则将读数乘以互感系数再进执行S506,否则直接执行S506;

S506,判断读数是否超过数据表字段的最大存储值,若超过最大存储值,则登记并报警此数据。

需要说明的是,字段数据遍历步骤嵌套在仪表数据遍历步骤中,在上述仪表数据遍历中,取得该型号的一条仪表数据,在字段数据遍历步骤中,依次对仪表数据中的字段进行遍历,将其数据按类型进行分类,方便仪表数据遍历步骤的执行。

具体地,如图13~14所示,字段数据遍历的步骤描述如下:

在字段筛子子流程中,得到需过滤的字段,在字段数据遍历步骤中,过滤这些字段;

进入字段数据分类处理子流程,在此流程中,目的是将数据按类型进行分类并暂存,过程如下:

若该字段不为用于计量的字段,则该流程结束;

若该字段为用于计量的字段,判断读数是否为负数;若为负数,标记该数据为无效数据,进入步骤c;若读数大于或等于0,进行以下判断:

若该仪表为电表,将读数乘以互感系数,进入步骤c;

若该仪表不为电表,进入步骤c;

判断读数是否超过数据表字段的最大存储值,此判断能够有效地防止突变数据的入库,导致数据出现问题。若超过最大存储值,则登记并报警此数据。

将处理后的数据按照数据类型分为四类:整形、字符型、浮点型(四舍五入保留6位小数)、时间,并将数据暂存,方便仪表数据遍历步骤的执行。

如图15所示,本发明还提供了一种数据采集系统100,包括数据初步校验模块1、型号数据遍历模块2、仪表数据遍历模块3以及字段数据遍历模块4:所述数据初步校验模块1用于将上传的抄表数据进行初步校验;所述型号数据遍历模块2用于将初步校验后的抄表数据进行型号数据遍历,并按照仪表型号进行排序以及分类处理;所述仪表数据遍历模块3用于对各类型号的仪表数据进行仪表数据遍历;所述字段数据遍历模块4用于对仪表数据中的字段进行遍历,并按数据类型进行归类。

本发明,通过所述数据初步校验模块1将上传的抄表数据进行初步校验,通过所述型号数据遍历模块2将初步校验后的抄表数据进行型号数据遍历,并按照仪表型号进行排序以及分类处理,通过所述仪表数据遍历模块3对各类型号的仪表数据进行仪表数据遍历,通过所述字段数据遍历模块4对仪表数据中的字段进行遍历,并按数据类型进行归类。本发明能同时对不同型号的水、电、气、蒸汽、能量型、时间法仪表数据进行处理,涵盖了绝大多数的异常情况,并对异常情况分别处理。若有新的仪表型号接入到平台中,此发明能够改变原先一个型号对应一个数据接口的状况,大大减少了代码的开发量,减轻开发人员的开发压力,同时能够十分快速地接入新的仪表型号,改善客户的体验。

如图16所示,优选地,所述数据初步校验模块1包括:校验单元11,用于对上传的抄表数据的数据包进行序列校验和必须字段校验;比对单元12,用于将数据包的基础数据与系统中的数据进行比对;清洗单元13,用于清洗数据包中未授权的仪表型号。

需要说明的是,首先对数据采集器上传的数据进行初步的校验,其数据格式是JSON格式,但不限于此。数据初步校验主要达到以下目的:1.能防止因网络波动而导致的数据缺失;2.能一定程度上抵挡恶意数据的攻击,保证数据库数据的正确性;3.能够防止未授权的型号、超过授权数量的仪表入库存储,保障用户的利益。

具体地,如图3~4所示,数据初步检验步骤的描述如下:

判断报文数据是否为空;尝试将报文数据进行序列化JSON处理;序列化后,检验是否有datas键,并且该值不为空;查询平台项目的基本信息,若该项目是已过期状态,则丢弃此数据;进入型号数据清洗子流程,在此流程中,将报文数据中的含有的仪表型号,与平台中已授权的仪表型号信息进行比对,此步骤能防止因云平台与数据采集器的仪表数据不对称,导致脏乱数据的入库。型号数据清洗过后,进入型号数据遍历流程,遍历完成后,该数据检验、数据处理、数据报警、数据存储流程结束。

如图17所示,优选地,所述型号数据遍历模块2包括:型号数据遍历单元21,对采集的抄表数据中,不同型号的仪表数据进行遍历;查询比对单元22,用于查询该型号的数据结构记录、数据表结构以及上传数据的字段,进行三方的数据比对,并取其交集。

需要说明的是,清洗后的仪表型号数据,进入型号数遍历步骤。数据采集器上传的JSON格式报文中,包含了许多不同型号的仪表数据,需对报文中的所有型号数据进行依次遍历。

具体地,如图6~7所示,型号数据遍历的步骤描述如下:开始遍历数据报文中的仪表型号;进入字段筛子子流程,在此流程中,将三类数据进行比对:字段表中查询出该型号的所有字段、组成该型号数据表结构的所有字段、数据报文中该型号的所有字段;这三类数据字段进行比对后,取其组成该型号数据表结构的所有字段作为基准,其他的字段将被过滤;被过滤的字段会进行报警;此流程能够有效地防止平台与数据采集器字段资料不对应的情况下,数据无法入库的问题,能最大限度地保证数据的入库。经过字段筛子子流程后,进入该型号的仪表数据遍历步骤。

如图18所示,优选地,所述仪表数据遍历模块3包括:获取单元31,用于获取仪表的基本信息,其中,所述基本信息包括仪表型号、仪表编码以及仪表地址;比对判断单元32,用于在数据库中查询该仪表的基本信息,并与获取仪表的基本信息进行比对并判断比对是否通过,判断为否时,则登记并报警此错误数据,判断为是时,则进入网关时钟异动子流程,在此流程中,取抄表数据的时间,与当前系统时间数据进行比对,若比对不通过,则将该数据标记为无效数据,并登记报警该数据。

需要说明的是,仪表数据遍历步骤嵌套在型号数据遍历步骤中,在上述型号数据遍历中,取得其中一款仪表型号数据。在此仪表型号数据中,包含了众多该型号的仪表数据,在此步骤中对其众多仪表数据依次遍历。

具体地,如图9~11所示,仪表数据遍历的步骤描述如下:

在仪表数据报文中,获取仪表的基本资料:仪表型号、仪表编码、仪表地址。在平台数据库中查询该仪表信息,将基本信息进行一一比对。若比对不通过,则登记并报警此错误数据。此流程能够有效地防止平台与数据采集器仪表资料不对应的情况下,脏乱数据的入库。

数据比对通过后,进入网关时钟异动子流程。在此流程中,取抄表数据的时间,与当前系统数据进行比对。因数据采集器设备的时钟依赖于时钟芯片,可能会与正确的时间有一定的误差。设定此误差的最大值为10秒,即数据采集器设备最多只能比正确时间快10秒。若比对不通过,则该数据标记为无效数据,并登记报警该数据。

进入遍历该仪表数据的字段步骤,从数据库中查询该仪表的上次抄表记录,并进入如下判断:

若该表无上次抄表记录,判断该表是否为刚换表;若仪表刚换表,则将该表的抄表数据入库至历史数据表、上次抄表数据表;若仪表未换表,则生成初始化数据作为该表的上次抄表记录,即读数都为0的初始记录;并进入用量计算子流程;

若该表有上次抄表记录,若本次抄表时间小于或等于上次抄表时间,则标记为无效数据,并入库至历史数据表;若本次抄表时间大于上次抄表时间,进入用量计算子流程。

在用量计算子流程中,将进行用量的计算,取所有用于计量的字段,有部分数据是不纳入用量计算中的,如电表中的电压、电流数据,这些数据是一个瞬时值。用量的计算公式为:用量=本次读数-上次读数;

若计算出的用量小于0,则登记并报警此数据、标记为无效数据;

若计算出的用量大于或等于0,则需对时间法的仪表做特殊处理;时间法仪表的用量是时间,需计算的用量应小于本次抄表时间减上次抄表实际。

如图19所示,优选地,所述字段数据遍历模块4包括:分类筛选单元41,用于将字段按照数据类型进行分类,并筛选出用于计量的字段;读数判断单元42,用于判断用于计量的字段的读数是否为负数,判断为是时,标记该数据为无效数据,并进入存储值判断单元43,判断为否时,则判断其对应的仪表是否为电表,如果是,则将读数乘以互感系数再进入存储值判断单元43,否则直接进入存储值判断单元43;存储值判断单元43,用于判断读数是否超过数据表字段的最大存储值,若超过最大存储值,则登记并报警此数据。

需要说明的是,字段数据遍历步骤嵌套在仪表数据遍历步骤中,在上述仪表数据遍历中,取得该型号的一条仪表数据,在字段数据遍历步骤中,依次对仪表数据中的字段进行遍历,将其数据按类型进行分类,方便仪表数据遍历步骤的执行。

具体地,如图13~14所示,字段数据遍历的步骤描述如下:

在字段筛子子流程中,得到需过滤的字段,在字段数据遍历步骤中,过滤这些字段;

进入字段数据分类处理子流程,在此流程中,目的是将数据按类型进行分类并暂存,过程如下:

若该字段不为用于计量的字段,则该流程结束;

若该字段为用于计量的字段,判断读数是否为负数;若为负数,标记该数据为无效数据,进入步骤c;若读数大于或等于0,进行以下判断:

若该仪表为电表,将读数乘以互感系数,进入步骤c;

若该仪表不为电表,进入步骤c;

判断读数是否超过数据表字段的最大存储值,此判断能够有效地防止突变数据的入库,导致数据出现问题。若超过最大存储值,则登记并报警此数据。

将处理后的数据按照数据类型分为四类:整形、字符型、浮点型(四舍五入保留6位小数)、时间,并将数据暂存,方便仪表数据遍历步骤的执行。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

相关技术
  • 分布式数据系统的数据采集方法及分布式数据系统
  • 分布式数据系统的数据采集方法及分布式数据系统
技术分类

06120113688482