CN103236846B - 一种工业实时数据压缩方法及装置 - Google Patents

一种工业实时数据压缩方法及装置 Download PDF

Info

Publication number
CN103236846B
CN103236846B CN201310159853.5A CN201310159853A CN103236846B CN 103236846 B CN103236846 B CN 103236846B CN 201310159853 A CN201310159853 A CN 201310159853A CN 103236846 B CN103236846 B CN 103236846B
Authority
CN
China
Prior art keywords
compression
point
data point
code
floating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310159853.5A
Other languages
English (en)
Other versions
CN103236846A (zh
Inventor
赖晓健
徐慧
费振华
黄冬朋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lanzhuo Digital Technology Co ltd
Original Assignee
Zhejiang Supcon Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang Supcon Technology Co Ltd filed Critical Zhejiang Supcon Technology Co Ltd
Priority to CN201310159853.5A priority Critical patent/CN103236846B/zh
Publication of CN103236846A publication Critical patent/CN103236846A/zh
Application granted granted Critical
Publication of CN103236846B publication Critical patent/CN103236846B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本申请公开了一种工业实时数据压缩方法及装置,应用于工业控制系统,所述方法包括确定所述工业控制系统中待存储的当前数据点,并获取所述工业控制系统中已经存储的数据点中最近存储的数据点作为目标数据点;依据所述目标数据点中的目标时间标签及所述当前数据点中的当前时间标签,确定所述当前数据点的压缩时间标签;依据所述目标数据点中的目标质量码及所述当前数据点中的当前质量码,确定所述当前数据点的压缩质量码;依据所述目标数据点中的目标浮点值及所述当前数据点中的当前浮点值,确定所述当前数据点中的压缩浮点值;整合所述压缩时间标签、所述压缩质量码和所述压缩浮点值,得到所述当前数据点的压缩数据点。

Description

一种工业实时数据压缩方法及装置
技术领域
本申请涉及工业实时数据存储技术领域,特别涉及一种工业实时数据压缩方法及装置。
背景技术
工业控制系统中提供历史数据存储系统,用来保存现场的实时数据,以备后续的工艺分析、故障追溯以及控制方案改进等用途。随着工业控制系统的大型化,系统内的信号数量成倍增加,导致历史数量急剧增加。为了保证工业控制系统的数据容量及运行效率,需要对这些历史实时数据进行压缩存储。
其中,工业实时数据以数据点的形式存储,每个数据点由时间标签、质量码和数值组成。时间标签为该数据点的被采集时间值,以毫秒为单元,采用8字节存储;质量码描述该数据点对应的实际信号的质量状态,采用4字节整形数据存储,一般0表示工作状态正常,非零则表示信号数据可疑或已出现异常;数值为其所属数据点的值,其采用4字节的低精度浮点表示,亦称浮点值,浮点值在计算机中均以符号位阶码(exponent)+尾码(mantissa)的形式来存储,浮点值=(1+mantissa)×2exponent,从高到低的第1位是符号位,该位为0表示浮点值为正数,1表示该浮点值为负数;第2~9位为阶码,计算机存储的阶码中的0~255对应着真实阶码的-127~128;第10~32位为尾码,尾码的第一位表示2-1、第二位表示2-2,以此类推,共计23位的尾码使浮点值能够精确到2-23的精度,即6~7位有效数字。例如,浮点值为2.5,在计算机中存储时,将首先被换算为如下的类似科学计数法方式表示:1.25×21,再采用16进制表示为0x40200000。
发明内容
本申请所要解决的技术问题是提供一种工业实时数据压缩方法及装置,用以解决现有工业控制系统中的实时数据急剧增加,需要对这些历史实时数据进行压缩存储的技术问题。
本申请提供了一种工业实时数据压缩方法,应用于工业控制系统,所述方法包括:
确定所述工业控制系统中待存储的当前数据点,并获取所述工业控制系统中已经存储的数据点中最近存储的数据点作为目标数据点;
依据所述目标数据点中的目标时间标签及所述当前数据点中的当前时间标签,确定所述当前数据点的压缩时间标签;
依据所述目标数据点中的目标质量码及所述当前数据点中的当前质量码,确定所述当前数据点的压缩质量码;
依据所述目标数据点中的目标浮点值及所述当前数据点中的当前浮点值,确定所述当前数据点中的压缩浮点值;
整合所述压缩时间标签、所述压缩质量码和所述压缩浮点值,得到所述当前数据点的压缩数据点。
上述方法,优选的,所述依据所述目标数据点中的目标时间标签及所述当前数据点中的当前时间标签,确定所述当前数据点的压缩时间标签,包括:
计算所述当前数据点的当前时间标签与所述目标数据点的目标时间标签的差值;
将所述差值作为所述当前数据点的压缩时间标签。
上述方法,优选的,所述依据所述目标数据点中的目标质量码及所述当前数据点中的当前质量码,确定所述当前数据点的压缩质量码,包括:
将所述当前数据点的当前质量码与所述目标数据点的目标质量码进行对比,得到对比结果;
判断所述对比结果是否表明所述当前质量码与所述目标质量码相同,如果是,设置所述当前数据点的压缩质量码为空,否则,将所述当前数据点的当前质量码作为所述当前数据点的压缩质量码。
上述方法,优选的,所述依据所述目标数据点中的目标浮点值及所述当前数据点中的当前浮点值,确定所述当前数据点中的压缩浮点值,包括:
将所述当前数据点的当前浮点值与所述目标数据点的目标浮点值按照由高位到低位的顺序进行按位比较,得到所述当前浮点值与所述目标浮点值的首个差异位;
依据所述首个差异位,计算所述当前浮点值的待存储位数;
判断所述待存储位数是否为0,如果是,设置所述当前数据点的压缩浮点值为空,否则,依据所述待存储位数计算浮点标记码,所述浮点标记码包括5位存储位,将所述浮点标记码及与所述待存储位数相对应的数据依次按位连接,将连接生成的数据作为所述当前数据点的压缩浮点值。
上述方法,优选的,所述整合所述压缩时间标签、所述压缩质量码和所述压缩浮点值,得到所述当前数据点的压缩数据点,包括:
设置压缩标记码,所述压缩标记码包括1字节,所述压缩标记码中包括第一位组、第二位组和第三位组,所述第一位组包括3位存储位,所述第二位组包括1位存储位,所述第三位组包括1位存储位;
获取与所述压缩时间标签相对应的存储字节数,所述存储字节数小于或等于8,将所述存储字节数对应的二进制编码写入所述第一位组中的存储位;
判断所述压缩质量码中是否包括有存储位,如果是,将所述第二位组中的存储位置1,否则,将所述第二位组中的存储位置0;
判断所述压缩浮点值是否包括有存储位,如果是,将所述第三位组的存储位置1,否则,将所述第三位组的存储位置0;
将所述压缩标记码、所述压缩时间标签、所述压缩质量码和所述压缩浮点值依次进行按位连接,将连接生成的数据作为所述当前数据点的压缩数据点。
上述方法,优选的,所述依据所述待存储位数计算浮点标记码,包括:
设置浮点标记码,所述浮点标记码包括5位存储位;
将所述待存储位数减去1得到中间变量;
将所述中间变量的二进制编码按位写入所述浮点标记码中。
本申请还提供了一种工业实时数据压缩装置,应用于工业控制系统,所述装置包括:
数据点确定单元,用于确定所述工业控制系统中待存储的当前数据点,并获取所述工业控制系统中已经存储的数据点中最近存储的数据点作为目标数据点;
第一压缩单元,用于依据所述目标数据点中的目标时间标签及所述当前数据点中的当前时间标签,确定所述当前数据点的压缩时间标签;
第二压缩单元,用于依据所述目标数据点中的目标质量码及所述当前数据点中的当前质量码,确定所述当前数据点的压缩质量码;
第三压缩单元,用于依据所述目标数据点中的目标浮点值及所述当前数据点中的当前浮点值,确定所述当前数据点的压缩浮点值;
压缩整合单元,用于整合所述压缩时间标签、所述压缩质量码和所述压缩浮点值,得到所述当前数据点的压缩数据点。
上述装置,优选的,所述第一压缩单元包括:
差值计算子单元,用于计算所述当前数据点的当前时间标签与所述目标数据点的目标时间标签的差值;
标签确定子单元,用于将所述差值作为所述当前数据点的压缩时间标签。
上述装置,优选的,所述第二压缩单元包括:
质量码对比子单元,用于将所述当前数据点的当前质量码与所述目标数据点的目标质量码进行对比,得到对比结果;
质量码确定子单元,用于判断所述对比结果是否表明所述当前质量码与所述目标质量码相同,如果是,设置所述当前数据点的压缩质量码为空,否则,将所述当前数据点的当前质量码作为所述当前数据点的质量压缩码。
上述装置,优选的,所述第三压缩单元包括:
差异位获取子单元,用于将所述当前数据点的当前浮点值与所述目标数据点的目标浮点值按照由高位到低位的顺序进行按位比较,得到所述当前浮点值与所述目标浮点值的首个差异位;
位数计算子单元,用于依据所述首个差异位,计算所述当前浮点值的待存储位数;
浮点值确定子单元,用于判断所述待存储位数是否为0,如果是,设置所述当前数据点的压缩浮点值为空,否则,依据所述待存储位数计算浮点标记码,所述浮点标记码包括5位存储位,将所述浮点标记码及与所述待存储位数相对应的数据依次按位连接,将连接生成的数据作为所述当前数据点的压缩浮点值。
上述装置,优选的,所述压缩整合单元包括:
压缩标记码设置子单元,用于设置压缩标记码,所述压缩标记码包括1字节,所述压缩标记码中包括第一位组、第二位组和第三位组,所述第一位组包括3位存储位,所述第二位组包括1位存储位,所述第三位组包括1位存储位;
第一位组设置子单元,用于获取与所述压缩时间标签相对应的存储字节数,所述存储字节数小于或等于8,将所述存储字节数对应的二进制编码写入所述第一位组的存储位;
第二位组设置子单元,用于判断所述压缩质量码中是否包括有存储位,如果是,将所述第二位组中的存储位置1,否则,将所述第二位组中的存储位置0;
第三位组设置子单元,用于判断所述压缩浮点值是否包括存储位,如果是,将所述第三位组中的存储位置1,否则,将所述第三位组中的存储位置0;
连接组合子单元,用于将所述压缩标记码、所述压缩时间标签、所述压缩质量码和所述压缩浮点值依次进行按位连接,将连接生成的数据作为所述当前数据点的压缩数据点。
上述装置,优选的,所述浮点值确定子单元包括逻辑判断模块、空设置模块、标记码计算模块和浮点值确定模块,其中:
所述逻辑判断模块,用于判断所述待存储位数是否为0,如果是,触发空设置模块,否则,触发所述标记码计算模块;
所述空设置模块,用于设置所述当前数据点的压缩浮点值为空;
所述标记码计算模块,用于设置浮点标记码,所述浮点标记码包括5位存储位,将所述待存储位数减去1得到中间变量,将所述中间变量的二进制编码按位写入所述浮点标记码中,触发所述浮点值确定模块;
所述浮点值确定模块,用于将所述浮点标记码及与所述待存储位数相对应的数据依次按位连接,将连接生成的数据作为所述当前数据点的压缩浮点值。
由上述方案可知,本申请提供的一种工业实时数据压缩方法及装置,应用于工业控制系统,通过对该工业工作系统中待存储的当前数据点,将该工业控制系统中最近存储的目标数据点中的各部分如时间标签、质量码和浮点值作为依据,分别确定所述当前数据点中的压缩时间标签、压缩质量码和压缩浮点值,再对所述压缩时间标签、所述压缩质量码和所述压缩浮点值进行整合,得到所述当前数据点的压缩数据点。本申请在实现数据点压缩时,不仅具有无损性,保证了工业控制系统中的数据精度,同时,各个数据点之间的关联度较低,实施方便,提高了数据的压缩率及解压性能,可以保证每秒钟至少25万点的数据吞吐量,大很大程度上提升了工业控制系统的数据处理性能。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为工业实时数据的数据点中浮点值在计算机中原始存储的编码结构示意图;
图2为本申请提供的一种工业实时数据压缩方法实施例一的流程图;
图3为本申请提供的一种工业实时数据压缩方法实施例二的部分流程图;
图4为本申请提供的一种工业实时数据压缩方法实施例三的部分流程图;
图5为本申请提供的一种工业实时数据压缩方法实施例四的部分流程图;
图6为本申请通过的一种工业实时数据压缩方法实施例五的部分流程图;
图7为本申请实施例五中压缩标记码的编码结构示意图;
图8为本申请提供的一种工业实时数据压缩方法实施例六的流程图;
图9为本申请提供的一种工业实时数据压缩装置实施例七的结构示意图;
图10为本申请提供的一种工业实时数据压缩装置实施例八的部分结构示意图;
图11为本申请提供的一种工业实时数据压缩装置实施例九的部分结构示意图;
图12为本申请提供的一种工业实时数据压缩装置实施例十的部分结构示意图;
图13为本申请实施例十的另一部分结构示意图;
图14为本申请提供的一种工业实时数据压缩装置实施例十一的部分结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
工业控制系统中的历史数据存储系统对工业控制系统中的实时数据进行存储,以备后续的工艺分析、故障追溯以及控制方案改进等用途。随着工业控制系统的大型化,系统内的信号数量成倍增加,导致历史数量急剧增加。为了保证工业控制系统的数据容量及运行效率,需要对这些历史实时数据进行压缩存储。
而上述实时数据在历史数据存储系统中的存储形式为数据点,每个数据点由时间标签、质量码和数值组成。
其中,所述时间标签为该数据点的被采集时间值,以毫秒为单元,采用8字节存储;
质量码描述该数据点对应的实际信号的质量状态,采用4字节整形数据存储,一般0表示工作状态正常,非零则表示信号数据可疑或已出现异常;
数值为其所属数据点的值,其采用4字节的低精度浮点表示,也称为浮点值,其在计算机中的编码规则较为特殊,其二进制编码以字节为单位是无规律可循的,这也导致了对它的无损压缩较为困难。以下为浮点值的编码规则,如图1所示,浮点值在计算机中存储时,均是换算为符号位+阶码(exponent)+尾码(mantissa)来存储,浮点值=(1+mantissa)×2exponent。其中,从高到低的第1位是符号位,该位为0表示浮点值为正数,1表示该浮点值为负数;第2~9位为阶码,计算机存储的阶码中的0~255对应着真实阶码的-127~128,阶码的这种编码规则使得浮点值能够表征的数据范围非常大,同时它也可以精确表示很小的小数;第10~32位为尾码,尾码的第一位表示2-1、第二位表示2-2,以此类推,共计23位的尾码使浮点值能够精确到2-23的精度,即6~7位有效数字。
举例说明,假设浮点值为2.5,在计算机中存储时,将首先被换算为如下的类似科学计数法方式表示:1.25×21,换算时需遵循如下规则:
前面的小数表示的部分,必须是在区间[1,2)之间的小数,如例子中的1.25。计算机在存储时,将小数部分减1,作为尾码的数值(0.25),再将此数值采用二进制来表示(01000000000000000000000);
后面的幂表示的部分必须换算成2的幂,其中幂的值即是阶码(1),转换为计算机存储的阶码为128(二进制码10000000);
根据数据的正负可以知道符号位的值,例子中为正数,因此符号位为0。
综上,浮点值2.5采用16进制表示为0x40200000。
目前,在工业控制系统中应用较多的压缩算法包括以下两种:
第一种为基于变化率的矢量压缩算法,该算法的原理是通过查看当前数据点与前一个被保留的数据点所构成的压缩偏移覆盖区来决定数据的取舍:若压缩偏移覆盖区可以覆盖两者之间的所有数据点,则不保留该当前数据点,若有数据点落在压缩偏移覆盖区之外,则保留当前数据点的前一个数据点,并以最新保留的数据点作为新的起点。该方案的本职是在相连的时间区域内过滤重复的数据点,这个区域越大,数据的压缩率越高,但随之而来的是压缩损伤严重,将导致数据的认为不连续性,而且该算法是通过减少保留的数据点的个数来实现压缩的,针对工业实时数据的压缩的比例有限,如果遇到抖动比较频繁的数据,将无法压缩。因此这类压缩算法将导致数据严重失真,不适合用于精度要求较高的工业控制系统中。
第二种为基于字典模型的无损压缩算法,该算法是一种无损的数据压缩算法,可以满足工业控制系统中对于数据精度的要求,但由于该算法是基于字典模型的压缩,若要取得较好的压缩率,必须针对每一段数据进行压缩,由此增加了历史数据文件的复杂性,且由于字典模型的压缩算法会设计较多的字典索引建立及查询匹配操作,使得压缩和解压的效率存在瓶颈。
而通过上述数据点的各部分编码存储规则可以看出,数据点中的浮点值具有较好的连续性,且会存在微幅抖动现象,即相邻两点之间的小幅度波动比较普遍,大幅度波动或突变不常见,这类数据的整体相关性不强,波动没有显著特性,具有较大的随机性。
因此,本申请提供了一种新型的工业实时数据压缩方法及装置,涉及工业实时数据压缩算法,该算法是根据最近存储的一个数据点为依据基础,即可实现对当前待存储的数据点的压缩,不仅具有无损性,保证了工业控制系统中的数据精度,同时该算法原理简单,数据关联度较低,实施方便,提供了非常高的压缩和解压性能,可以保证每秒钟至少25万点的数据吞吐量,大很大程度上提升了工业控制系统的数据处理性能。
以下对本申请进行说明:
参考图2,其示出了本申请提供的一种工业实时数据压缩方法实施例一的流程图,所述方法应用于工业控制系统,所述方法可以包括以下步骤:
步骤201:确定所述工业控制系统中待存储的当前数据点,并获取所述工业控制系统中已经存储的数据点中最近存储的数据点作为目标数据点。
需要说明的是,所述工业控制系统中已经存储的数据点为所述工业控制系统的历史数据存储系统中存储的数据点。在所述历史数据存储系统中的数据点是以先后顺序进行存储的,在本申请中,所述历史数据存储系统中存储的每个数据点可以是以本申请提供的工业实时数据压缩算法进行压缩之后的形式进行存储,还可以是以未被压缩的形式或其他压缩算法压缩之后的形式进行存储。
而所述当前数据点即为即将存储入所述历史数据存储系统的数据点,所述目标数据点为所述历史数据存储系统中最近存储的数据点,在本申请中提及的目标数据点为所述历史数据存储系统中最近存储的数据点解压之后的数据点,即为原始目标数据点。
步骤202:依据所述目标数据点中的目标时间标签及所述当前数据点中的当前时间标签,确定所述当前数据点的压缩时间标签。
其中,所述目标时间标签及所述当前时间标签的值均为时间值,表示其各自对应的数据点在所述工业控制系统中被采集的时间点值,该时间点值可以进行对应的计算,如减法计算等。而所述当前时间标签所占用的存储位包括8字节,以毫秒为单位。所述当前数据点的压缩时间标签为所述目标时间标签与所述当前时间标签进行对比之后得到,该压缩时间标签所占存储位小于或等于8字节。
步骤203:依据所述目标数据点中的目标质量码及所述当前数据点中的当前质量码,确定所述当前数据点的压缩质量码。
步骤204:依据所述目标数据点中的目标浮点值及所述当前数据点中的当前浮点值,确定所述当前数据点中的压缩浮点值。
由前文中可知,每个数据点中的浮点值中,若数据处于小幅波动的状态,则在很大的几率下,其符号位和阶码都是不变的,变化的仅仅是尾码,且根据数据波动的幅度不同,尾码变化的起始位置也不同,若数据变化幅度非常小,可能只有尾码的最后4~5位出现差异。因此,所述步骤204可以通过以下方式实现:
以所述目标数据点的目标浮点值为基础,获取所述当前浮点值中不同于所述目标浮点值的差异位,依据该差异位确定所述当前数据点的压缩浮点值。
需要说明的是,所述步骤202至所述步骤204的执行顺序可以调换,还可以同时执行,调换后得到的方案与本申请是同一发明思想,属于本申请的保护范围。
步骤205:整合所述压缩时间标签、所述压缩质量码和所述压缩浮点值,得到所述当前数据点的压缩数据点。
其中,所述步骤205可以通过以下方式实现:
将所述压缩时间标签、所述压缩质量码和所述压缩浮点值依次按位进行连接,将连接后生成的数据作为所述当前数据点的压缩数据点。
由上述方案可知,本申请提供的一种工业实时数据压缩方法实施例一,应用于工业控制系统,通过对该工业工作系统中待存储的当前数据点,将该工业控制系统中最近存储的目标数据点中的各部分如时间标签、质量码和浮点值作为依据,分别确定所述当前数据点中的压缩时间标签、压缩质量码和压缩浮点值,再对所述压缩时间标签、所述压缩质量码和所述压缩浮点值进行整合,得到所述当前数据点的压缩数据点。通过本申请实施例实现数据点的压缩时,不仅具有无损性,保证了工业控制系统中的数据精度,同时,各个数据点之间的关联度较低,实施方便,提高了数据的压缩率及解压性能,可以保证每秒钟至少25万点的数据吞吐量,大很大程度上提升了工业控制系统的数据处理性能。
参考图3,其示出了本申请提供的一种工业实时数据压缩方法实施例二的部分流程图,其中,所述步骤202可以通过以下步骤实现:
步骤301:计算所述当前数据点的当前时间标签与所述目标数据点的目标时间标签的差值。
其中,所述差值的存储字节小于或等于8字节。
在实际应用中,所述差值的存储位数可以采用下述方式得到:
判断所述差值的数值大小,依据所述差值的数值大小确定所述差值的存储位数;
若所述差值在0x00~0xFF之间,所述差值的存储位数为1字节;
若所述差值在0x100~0xFFFF之间,所述差值的存储位数为2字节;
若所述差值在0x10000~0xFFFFFF之间,所述差值的存储位数为3字节;
若所述差值在0x1000000~0xFFFFFFFF之间,所述差值的存储位数为4字节;
若所述差值在0x100000000~0xFFFFFFFFFF之间,所述差值的存储位数为5字节;
若所述差值在0x10000000000~0xFFFFFFFFFFFF之间,所述差值的存储位数为6字节;
若所述差值大于0xFFFFFFFFFFFF,所述差值的存储位数为8字节。
步骤302:将所述差值作为所述当前数据点的压缩时间标签。
其中,所述压缩时间标签的存储位数与所述差值的存储位数相同。
参考图4,其示出了本申请提供的一种工业实时数据压缩方法实施例三的部分流程图,其中,所述步骤203可以包括以下步骤:
步骤401:将所述当前数据点的当前质量码与所述目标数据点的目标质量码进行对比,得到对比结果。
需要说明的是,所述质量码的数据特点为定值分段连续,因此,所述当前质量码与所述目标质量码的对比结果包括两种情况:第一种为所述当前质量码与所述目标质量码相同,均为0或均为非0;第二种为所述当前质量码与所述目标质量码不同,一个为0另一个非0。
步骤402:判断所述对比结果是否表明所述当前质量码与所述目标质量码相同,如果是,执行步骤403,否则,执行步骤404。
步骤403:设置所述当前数据点的压缩质量码为空。
其中,在所述当前质量码与所述目标质量码相同时,所述当前数据点的压缩质量码为空,在解压时,可以直接采用其所在数据点的前一个数据点的质量码作为其自身的质量码,由此在进行压缩存储时,减少质量码的存储位数,提高压缩率的同时保证无损性。
步骤404:将所述当前数据点的当前质量码作为所述当前数据点的压缩质量码。
参考图5,其示出了本申请提供的一种工业实时数据压缩方法实施例四的部分流程图,其中,所述步骤204可以通过以下各个步骤具体实现:
步骤501:将所述当前数据点的当前浮点值与所述目标数据点的目标浮点值按照由高位到低位的顺序进行按位比较,得到所述当前浮点值与所述目标浮点值的首个差异位。
在前文中的描述可知,若数据点的浮点值数据处于小幅波动的状态时,则在很大概率下,其符号位和阶码都是不变的,变化的仅为为嘛,且根据波动幅度不同,尾码变化的起始位置也不同,若数据变化幅度非常小,可能只有尾码的最后4~5位出现差异。
步骤502:依据所述首个差异位,计算所述当前浮点值的待存储位数。
在本申请中,由于每个数据点的浮点值数据的波动体现在阶码和尾码上,此时,只需存储所述当前浮点值中差异于所述目标浮点值的存储位中的数据即可,进一步的,存储有高位到低位中首个差异位及其后续存储位中的数据。因此,在本申请实施例的实际实现中,所述步骤502可以通过以下方式实现:
计算所述当前浮点值中最低位与所述首个差异位之间的位数作为所述待存储位数,所述待存储位数包括所述首个差异位。
由于所述当前数据点与所述目标数据点之间的波动幅值较小,极有可能不发生变化,因此,所述待存储位数可能为0,还可能非0。
步骤503:判断所述待存储位数是否为0,如果是,执行步骤504,否则,执行步骤505;
步骤504:设置所述当前数据点的压缩浮点值为空。
其中,若所述待存储位数为0,则说明所述当前浮点值与所述目标浮点值相同,此时,无需重新存储所述当前数据点的当前浮点值,而在解压时,只需直接获取该数据点的前一个数据点的浮点值即可作为自身的浮点值,节省存储位。
步骤505:依据所述待存储位数计算浮点标记码,所述浮点标记码包括5为存储位,执行步骤506。
其中,所述浮点标记码中存储的数据表示所述待存储位数的值,为所述当前浮点值中需存储的总位数,该总位数从所述当前浮点值的最低位算起,而所述待存储位数的范围值为1~32,为节省存储位,设置所述浮点标记码的存储位为5位,其能够标识的范围值为0~31,由此,所述浮点标记码的值为所述待存储位数减去1,因此,所述步骤505可以通过以下方式实现:
设置浮点标记码,所述浮点标记码包括5位存储位,将所述待存储位数减去1得到中间变量,将所述中间变量的二进制编码按位写入所述浮点标记码中。
步骤506:将所述浮点标记码及与所述待存储位数相对应的数据依次按位相连,将连接生成的数据作为所述当前数据点的压缩浮点值。
其中,由所述步骤506得到的所述压缩浮点值中,由所述浮点标记码及所述待存储位数对应的数据组成,由于所述当前浮点值的波动幅度较小的特性,所述压缩浮点值的存储位数明显少于所述当前浮点值的存储位数,保证无损压缩的同时,提高数据的压缩率。
为保证工业实时数据在实现压缩后能够正确解压,需要在每个数据点中设置包头数据,在本申请中,可以通过在每个数据点的高位设置压缩标记码,所述压缩标记码记录有所述压缩时间标签、所述压缩质量码及所述压缩浮点值的关键信息,如是否存储、存储位数或其他基础关键信息。参考图6,其示出了本申请通过的一种工业实时数据压缩方法实施例五的部分流程图,其中,所述步骤205可以包括以下步骤:
步骤601:设置压缩标记码,所述压缩标记码包括1字节,所述压缩标记码中包括第一位组、第二位组和第三位组,所述第一位组包括3位存储位,所述第二位组包括1位存储位,所述第三位组包括1位存储位。
如图7所示,所述压缩标记码中包括8位存储位,所述第一位组、所述第二位组和所述第三位组的存储位可以自定义设置,例如:所述第一位组包括3位存储位,且为连续的存储位,如第3、第4和第5存储位,所述第二位组包括1位存储位,如第7存储位,第三位组包括1位存储位,如第8存储位。
步骤602:获取与所述压缩时间标签相对应的存储字节数,所述存储字节数小于或等于8,将所述存储字节数对应的二进制编码写入所述第一位组的存储位。
由本文前文中可知,所述压缩时间标签的长度不定,其长度最大值为8字节,为保证在解压或读取该数据点时的正确性,采用所述第一位组标识出所述压缩时间标签的长度,由于所述压缩时间标签的长度最大值为8字节,由此所述第一位组中只需设置3位存储位即可。
步骤603:判断所述压缩质量码中是否包括有存储位,如果是,将所述第二位组的存储位置1,否则,将所述第二位组中的存储位置0。
其中,所述第二位组中的值标识出所述压缩质量码是否存在或是否非空,在所述压缩质量码非空时,所述第二位组的存储位为1,所述压缩质量码为空时,所述第二位组的存储位为0。
步骤604:判断所述压缩浮点值是否包括有存储位,如果是,将所述第三位组的存储位置1,否则,将所述第三位组的存储位置0。
其中,所述第三位组中的值标识出所述压缩浮点值是否存在或是否非空,在所述压缩浮点值非空时,所述第三位组的存储位为1,所述压缩浮点值为空时,所述第三位组的存储位为0。
需要说明的是,所述步骤602至所述步骤604的执行顺序可以调换,还可以同时执行,调换后得到的方案与本申请属于同一发明思想,在本申请的保护范围内。
步骤605:将所述压缩标记码、所述压缩时间标签、所述压缩质量码和所述压缩浮点值依次进行按位连接,将连接生成的数据作为所述当前数据点的压缩数据点。
需要说明的是,所述压缩标记码中的第1和第二存储位中在实际实现时均置1,表明该压缩标记码后续中存在合法的压缩数据点。例如,所述压缩标记码的每一位的含义如表1所示:
表1压缩标记码的每一位含义
含义 二进制 备注
时间用8个字节存储 11111000
时间用6个字节存储 11110000
时间用5个字节存储 11101000
时间用4个字节存储 11100000
时间用3个字节存储 11011000
时间用2个字节存储 11010000
时间用1个字节存储 11001000
存储质量码 11000010 11000000表示不存储质量码
存储浮点值 11000001 11000000表示不存储浮点值
在本申请中最终获得的压缩数据点的结构为:压缩标记码(1字节)+压缩时间标签(1~8字节)+压缩质量码(0或4字节)+压缩浮点值(0或1~32位存储位)。
由上述方案中可知,本申请提供的一种工业实时数据压缩方法实施例五中,压缩得到的数据点的压缩标记码中标记有其所属数据点是否合法、时间标签的存储字节数、质量码是否存储、浮点值是否存储的信息,在进行数据点读取,用于数据点解压或后续数据点压缩时,能够准确的读取出数据点的压缩时间标签、压缩质量码和压缩浮点值,再依据该数据点之前的目标数据点实现该数据点的原始数据点的准确获取。
参考图8,其示出了本申请提供的一种工业实时数据压缩方法实施例六的流程图,所述方法可以包括以下步骤:
步骤801:确定所述工业控制系统中待存储的当前数据点,及所述工业控制系统中已经存储的数据点中最近存储的数据点作为目标数据点,并设置压缩标记码。
其中,所述压缩标记码包括1字节,所述压缩标记码中包括第一位组、第二位组和第三位组,所述第一位组包括3位存储位,所述第二位组包括1位存储位,所述第三位组包括1位存储位。
步骤802:计算所述当前数据点的当前时间标签与所述目标数据点的目标时间标签的差值,将所述差值作为所述当前数据点的压缩时间标签,将所述压缩时间标签对应的存储字节数的二进制编码写入所述第一位组的存储位。
步骤803:将所述当前数据点的当前质量码与所述目标数据点的目标质量码进行对比,依据对比结果设置所述当前数据点的压缩质量码,依据所述压缩质量码设置所述第二位组的存储位。
其中,所述步骤803具体可以通过以下方式实现:
将所述当前数据点的当前质量码与所述目标数据点的目标质量码进行对比,判断对比结果是否表明所述当前质量码与所述目标质量码相同,如果是,设置所述当前数据点的压缩质量码为空,将所述第二位组的存储位置0,否则,将所述当前数据点的当前质量码作为所述当前数据点的压缩质量码,将所述第二位组的存储位置1。
步骤804:将所述当前数据点的当前浮点值与所述目标数据点的目标浮点值按照由高位到低位的顺序进行按位比较,依据比较结果设置所述当前数据点的压缩浮点值,依据所述压缩浮点值设置所述第三位组的存储位。
其中,所述步骤804可以通过以下各个步骤具体实现:
将所述当前数据点的当前浮点值与所述目标数据点的目标浮点值按照由高位到低位的顺序进行按位比较,得到所述当前浮点值与所述目标浮点值的首个差异位;
依据所述首个差异位,计算所述当前浮点值的待存储位数;
判断所述待存储位数是否为0,如果是,设置所述当前数据点的压缩浮点值为空,将所述第三位组的存储位置0,否则,依据所述待存储位数计算浮点标记码,所述浮点标记码包括5位存储位,将所述浮点标记码及与所述待存储位数相对应的数据依次按位连接,将连接生成的数据作为所述当前数据点的压缩浮点值,将所述第三位组的存储位置1。
步骤805:将所述压缩标记码、所述压缩时间标签、所述压缩质量码和所述压缩浮点值依次进行按位连接,将连接生成的数据作为所述当前数据点的压缩数据点。
在本申请中最终获得的压缩数据点的结构为:压缩标记码(1字节)+压缩时间标签(1~8字节)+压缩质量码(0或4字节)+浮点值标记码(0或5位存储位)+浮点值(0或1~32位存储位)。
由上述可知,本申请提供的一种工业实时数据压缩方法实施例六,通过所述工业控制系统中最近存储的一个数据点为基础,分别对待存储的数据点的各部分如时间标签、质量码和浮点值进行压缩,如记录所述目标时间标签与所述当前时间标签的差值作为所述压缩时间标签进行存储,其存储位小于或等于所述当前时间标签的存储位,再如判断所述当前质量码是否与所述目标质量码相同,相同时无需在所述当前数据点中对质量码进行存储,明显减少存储位,又如对所述当前浮点值中差异于所述目标浮点值的存储位进行存储,并记录存储位数,进一步明显节省存储位,同时对所述当前数据点具有无损性,既而实现进行数据点压缩时,保证无损压缩的前期下,提高压缩率。
参考图9,其示出了本申请提供的一种工业实时数据压缩装置实施例七的结构示意图,所述装置应用于工业控制系统,所述装置包括:
数据点确定单元901,用于确定所述工业控制系统中待存储的当前数据点,并获取所述工业控制系统中已经存储的数据点中最近存储的数据点作为目标数据点。
需要说明的是,所述工业控制系统中已经存储的数据点为所述工业控制系统的历史数据存储系统中存储的数据点。在所述历史数据存储系统中的数据点是以先后顺序进行存储的,在本申请中,所述历史数据存储系统中存储的每个数据点可以是以本申请提供的工业实时数据压缩算法进行压缩之后的形式进行存储,还可以是以未被压缩的形式或其他压缩算法压缩之后的形式进行存储。
而所述当前数据点即为即将存储入所述历史数据存储系统的数据点,所述目标数据点为所述历史数据存储系统中最近存储的数据点,在本申请中提及的目标数据点为所述历史数据存储系统中最近存储的数据点解压之后的数据点,即为原始目标数据点。
第一压缩单元902,用于依据所述目标数据点中的目标时间标签及所述当前数据点中的当前时间标签,确定所述当前数据点的压缩时间标签。
需要说明的是,所述第一压缩单元902与所述数据点确定单元901相连接。
其中,所述目标时间标签及所述当前时间标签的值均为时间值,表示其各自对应的数据点在所述工业控制系统中被采集的时间点值,该时间点值可以进行对应的计算,如减法计算等。而所述当前时间标签所占用的存储位包括8字节,以毫秒为单位。所述当前数据点的压缩时间标签为所述目标时间标签与所述当前时间标签进行对比之后得到,该压缩时间标签所占存储位小于或等于8字节。
第二压缩单元903,用于依据所述目标数据点中的目标质量码及所述当前数据点中的当前质量码,确定所述当前数据点的压缩质量码。
需要说明的是,所述第二压缩单元903与所述数据点确定单元901相连接。
第三压缩单元904,用于依据所述目标数据点中的目标浮点值及所述当前数据点中的当前浮点值,确定所述当前数据点的压缩浮点值。
需要说明的是,所述第三压缩单元904与所述数据点确定单元901相连接。
由前文中可知,每个数据点中的浮点值中,若数据处于小幅波动的状态,则在很大的几率下,其符号位和阶码都是不变的,变化的仅仅是尾码,且根据数据波动的幅度不同,尾码变化的起始位置也不同,若数据变化幅度非常小,可能只有尾码的最后4~5位出现差异。因此,所述第三压缩单元904可以通过以下方式实现:
以所述目标数据点的目标浮点值为基础,获取所述当前浮点值中不同于所述目标浮点值的差异位,依据该差异位确定所述当前数据点的压缩浮点值。
需要说明的是,所述第一压缩单元902、所述第二压缩单元903和所述第三压缩单元904的运行顺序可以调换,还可以同时运行,调换后得到的方案与本申请是同一发明思想,属于本申请的保护范围。
压缩整合单元905,用于整合所述压缩时间标签、所述压缩质量码和所述压缩浮点值,得到所述当前数据点的压缩数据点。
需要说明的是,所述压缩整合单元905分别与所述第一压缩单元902、所述第二压缩单元903和所述第三压缩单元904相连接。
其中,所述压缩整合单元905可以通过以下方式实现:
将所述压缩时间标签、所述压缩质量码和所述压缩浮点值依次按位进行连接,将连接后生成的数据作为所述当前数据点的压缩数据点。
由上述方案可知,本申请提供的一种工业实时数据压缩装置实施例七,应用于工业控制系统,通过对该工业工作系统中待存储的当前数据点,将该工业控制系统中最近存储的目标数据点中的各部分如时间标签、质量码和浮点值作为依据,分别确定所述当前数据点中的压缩时间标签、压缩质量码和压缩浮点值,再对所述压缩时间标签、所述压缩质量码和所述压缩浮点值进行整合,得到所述当前数据点的压缩数据点。通过本申请实施例实现数据点的压缩时,不仅具有无损性,保证了工业控制系统中的数据精度,同时,各个数据点之间的关联度较低,实施方便,提高了数据的压缩率及解压性能,可以保证每秒钟至少25万点的数据吞吐量,大很大程度上提升了工业控制系统的数据处理性能。
参考图10,其示出了本申请提供的一种工业实时数据压缩装置实施例八的部分结构示意图,其中,所述第一压缩单元902包括:
差值计算子单元921,用于计算所述当前数据点的当前时间标签与所述目标数据点的目标时间标签的差值。
其中,所述差值的存储字节小于或等于8字节。
在实际应用中,所述差值的存储位数可以采用下述方式得到:
判断所述差值的数值大小,依据所述差值的数值大小确定所述差值的存储位数;
若所述差值在0x00~0xFF之间,所述差值的存储位数为1字节;
若所述差值在0x100~0xFFFF之间,所述差值的存储位数为2字节;
若所述差值在0x10000~0xFFFFFF之间,所述差值的存储位数为3字节;
若所述差值在0x1000000~0xFFFFFFFF之间,所述差值的存储位数为4字节;
若所述差值在0x100000000~0xFFFFFFFFFF之间,所述差值的存储位数为5字节;
若所述差值在0x10000000000~0xFFFFFFFFFFFF之间,所述差值的存储位数为6字节;
若所述差值大于0xFFFFFFFFFFFF,所述差值的存储位数为8字节。
标签确定子单元922,用于将所述差值作为所述当前数据点的压缩时间标签。
需要说明的是,所述标签确定子单元922与所述差值计算子单元921相连接。
其中,所述压缩时间标签的存储位数与所述差值的存储位数相同。
参考图11,其示出了本申请提供的一种工业实时数据压缩装置实施例九的部分结构示意图,其中,所述第二压缩单元903包括:
质量码对比子单元931,用于将所述当前数据点的当前质量码与所述目标数据点的目标质量码进行对比,得到对比结果。
需要说明的是,所述质量码的数据特点为定值分段连续,因此,所述当前质量码与所述目标质量码的对比结果包括两种情况:第一种为所述当前质量码与所述目标质量码相同,均为0或均为非0;第二种为所述当前质量码与所述目标质量码不同,一个为0另一个非0。
质量码确定子单元932,用于判断所述对比结果是否表明所述当前质量码与所述目标质量码相同,如果是,设置所述当前数据点的压缩质量码为空,否则,将所述当前数据点的当前质量码作为所述当前数据点的质量压缩码。
需要说明的是,所述质量码确定子单元932与所述质量码对比子单元931相连接。
其中,在所述当前质量码与所述目标质量码相同时,所述当前数据点的压缩质量码为空,在解压时,可以直接采用其所在数据点的前一个数据点的质量码作为其自身的质量码,由此在进行压缩存储时,减少质量码的存储位数,提高压缩率的同时保证无损性。
参考图12,其示出了本申请提供的一种工业实时数据压缩装置实施例十的部分结构示意图,其中,所述第三压缩单元904包括:
差异位获取子单元941,用于将所述当前数据点的当前浮点值与所述目标数据点的目标浮点值按照由高位到低位的顺序进行按位比较,得到所述当前浮点值与所述目标浮点值的首个差异位。
在前文中的描述可知,若数据点的浮点值数据处于小幅波动的状态时,则在很大概率下,其符号位和阶码都是不变的,变化的仅为为嘛,且根据波动幅度不同,尾码变化的起始位置也不同,若数据变化幅度非常小,可能只有尾码的最后4~5位出现差异。
位数计算子单元942,用于依据所述首个差异位,计算所述当前浮点值的待存储位数。
需要说明的是,所述位数计算子单元942与所述差异位获取子单元941相连接。
在本申请中,由于每个数据点的浮点值数据的波动体现在阶码和尾码上,此时,只需存储所述当前浮点值中差异于所述目标浮点值的存储位中的数据即可,进一步的,存储有高位到低位中首个差异位及其后续存储位中的数据。因此,在本申请实施例的实际实现中,所述位数计算子单元942可以通过以下方式实现:
计算所述当前浮点值中最低位与所述首个差异位之间的位数作为所述待存储位数,所述待存储位数包括所述首个差异位。
由于所述当前数据点与所述目标数据点之间的波动幅值较小,极有可能不发生变化,因此,所述待存储位数可能为0,还可能非0。
浮点值确定子单元943,用于判断所述待存储位数是否为0,如果是,设置所述当前数据点的压缩浮点值为空,否则,依据所述待存储位数计算浮点标记码,所述浮点标记码包括5位存储位,将所述浮点标记码及与所述待存储位数相对应的数据依次按位连接,将连接生成的数据作为所述当前数据点的压缩浮点值。
需要说明的是,所述浮点值确定子单元943与所述位数计算子单元942相连接。
其中,若所述待存储位数为0,则说明所述当前浮点值与所述目标浮点值相同,此时,无需重新存储所述当前数据点的当前浮点值,而在解压时,只需直接获取该数据点的前一个数据点的浮点值即可作为自身的浮点值,节省存储位。
其中,所述浮点标记码中存储的数据表示所述待存储位数的值,为所述当前浮点值中需存储的总位数,该总位数从所述当前浮点值的最低位算起,而所述待存储位数的范围值为1~32,为节省存储位,设置所述浮点标记码的存储位为5位,其能够标识的范围值为0~31,由此,所述浮点标记码的值为所述待存储位数减去1,因此,参考图13,为本申请实施例的另一部分结构示意图,其中,所述浮点值确定子单元943包括:逻辑判断模块9431、空设置模块9432、标记码计算模块9433和浮点值确定模块9434,其中:
所述逻辑判断模块9431,用于判断所述待存储位数是否为0,如果是,触发所述空设置模块9432,否则,触发所述标记码计算模块9433;
所述空设置模块9432,用于设置所述当前数据点的压缩浮点值为空;
所述标记码计算模块9433,用于设置浮点标记码,所述浮点标记码包括5位存储位,将所述待存储位数减去1得到中间变量,将所述中间变量的二进制编码按位写入所述浮点标记码中,触发所述浮点值确定模块9434;
所述浮点值确定模块9434,用于将所述浮点标记码及与所述待存储位数相对应的数据依次按位连接,将连接生成的数据作为所述当前数据点的压缩浮点值。
其中,由所述浮点值确定子单元943得到的所述压缩浮点值中,由所述浮点标记码及所述待存储位数对应的数据组成,由于所述当前浮点值的波动幅度较小的特性,所述压缩浮点值的存储位数明显少于所述当前浮点值的存储位数,保证无损压缩的同时,提高数据的压缩率。
为保证工业实时数据在实现压缩后能够正确解压,需要在每个数据点中设置包头数据,在本申请中,可以通过在每个数据点的高位设置压缩标记码,所述压缩标记码记录有所述压缩时间标签、所述压缩质量码及所述压缩浮点值的关键信息,如是否存储、存储位数或其他基础关键信息。参考图14,其示出了本申请提供的一种工业实时数据压缩装置实施例十一的部分结构示意图,其中,所述压缩整合单元905包括:
压缩标记码设置子单元951,用于设置压缩标记码,所述压缩标记码包括1字节,所述压缩标记码中包括第一位组、第二位组和第三位组,所述第一位组包括3位存储位,所述第二位组包括1位存储位,所述第三位组包括1位存储位。
如图7所示,所述压缩标记码中包括8位存储位,所述第一位组、所述第二位组和所述第三位组的存储位可以自定义设置,例如:所述第一位组包括3位存储位,且为连续的存储位,如第3、第4和第5存储位,所述第二位组包括1位存储位,如第7存储位,第三位组包括1位存储位,如第8存储位。
第一位组设置子单元952,用于获取与所述压缩时间标签相对应的存储字节数,所述存储字节数小于或等于8,将所述存储字节数对应的二进制编码写入所述第一位组的存储位。
需要说明的是,所述第一位组设置子单元952与所述压缩标记码设置子单元951相连接。
由本文前文中可知,所述压缩时间标签的长度不定,其长度最大值为8字节,为保证在解压或读取该数据点时的正确性,采用所述第一位组标识出所述压缩时间标签的长度,由于所述压缩时间标签的长度最大值为8字节,由此所述第一位组中只需设置3位存储位即可。
第二位组设置子单元953,用于判断所述压缩质量码中是否包括有存储位,如果是,将所述第二位组中的存储位置1,否则,将所述第二位组中的存储位置0;
需要说明的是,所述第二位组设置子单元953与所述压缩标记码设置子单元951相连接。
其中,所述第二位组中的值标识出所述压缩质量码是否存在或是否非空,在所述压缩质量码非空时,所述第二位组的存储位为1,所述压缩质量码为空时,所述第二位组的存储位为0。
第三位组设置子单元954,用于判断所述压缩浮点值是否包括存储位,如果是,将所述第三位组中的存储位置1,否则,将所述第三位组中的存储位置0;
需要说明的是,所述第三位组设置子单元954与所述压缩标记码设置子单元951相连接。
其中,所述第三位组中的值标识出所述压缩浮点值是否存在或是否非空,在所述压缩浮点值非空时,所述第三位组的存储位为1,所述压缩浮点值为空时,所述第三位组的存储位为0。
需要说明的是,所述第一位组设置子单元952、所述第二位组设置子单元953和所述第三位组设置子单元954的运行顺序可以调换,还可以同时运行,调换后得到的方案与本申请属于同一发明思想,在本申请的保护范围内。
连接组合子单元955,用于将所述压缩标记码、所述压缩时间标签、所述压缩质量码和所述压缩浮点值依次进行按位连接,将连接生成的数据作为所述当前数据点的压缩数据点。
需要说明的是,所述连接组合子单元955分别与所述第一位组设置子单元952、所述第二位组设置子单元953和所述第三位组设置子单元954相连接。
需要说明的是,所述压缩标记码中的第1和第二存储位中在实际实现时均置1,表明该压缩标记码后续中存在合法的压缩数据点。
由上述方案中可知,本申请提供的一种工业实时数据压缩方法实施例五中,压缩得到的数据点的压缩标记码中标记有其所属数据点是否合法、时间标签的存储字节数、质量码是否存储、浮点值是否存储的信息,在进行数据点读取,用于数据点解压或后续数据点压缩时,能够准确的读取出数据点的压缩时间标签、压缩质量码和压缩浮点值,再依据该数据点之前的目标数据点实现该数据点的原始数据点的准确获取。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种工业实时数据压缩方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (4)

1.一种工业实时数据压缩方法,其特征在于,应用于工业控制系统,所述方法包括:
确定所述工业控制系统中待存储的当前数据点,并获取所述工业控制系统中已经存储的数据点中最近存储的数据点作为目标数据点;
依据所述目标数据点中的目标时间标签及所述当前数据点中的当前时间标签,确定所述当前数据点的压缩时间标签;
依据所述目标数据点中的目标质量码及所述当前数据点中的当前质量码,确定所述当前数据点的压缩质量码;
依据所述目标数据点中的目标浮点值及所述当前数据点中的当前浮点值,确定所述当前数据点中的压缩浮点值;
整合所述压缩时间标签、所述压缩质量码和所述压缩浮点值,得到所述当前数据点的压缩数据点;
其中,所述依据所述目标数据点中的目标时间标签及所述当前数据点中的当前时间标签,确定所述当前数据点的压缩时间标签,包括:
计算所述当前数据点的当前时间标签与所述目标数据点的目标时间标签的差值;
将所述差值作为所述当前数据点的压缩时间标签;
其中,所述依据所述目标数据点中的目标质量码及所述当前数据点中的当前质量码,确定所述当前数据点的压缩质量码,包括:
将所述当前数据点的当前质量码与所述目标数据点的目标质量码进行对比,得到对比结果;
判断所述对比结果是否表明所述当前质量码与所述目标质量码相同,如果是,设置所述当前数据点的压缩质量码为空,否则,将所述当前数据点的当前质量码作为所述当前数据点的压缩质量码;
其中,所述依据所述目标数据点中的目标浮点值及所述当前数据点中的当前浮点值,确定所述当前数据点中的压缩浮点值,包括:
将所述当前数据点的当前浮点值与所述目标数据点的目标浮点值按照由高位到低位的顺序进行按位比较,得到所述当前浮点值与所述目标浮点值的首个差异位;
依据所述首个差异位,计算所述当前浮点值的待存储位数;
判断所述待存储位数是否为0,如果是,设置所述当前数据点的压缩浮点值为空,否则,依据所述待存储位数计算浮点标记码,所述浮点标记码包括5位存储位,将所述浮点标记码及与所述待存储位数相对应的数据依次按位连接,将连接生成的数据作为所述当前数据点的压缩浮点值;
其中,所述整合所述压缩时间标签、所述压缩质量码和所述压缩浮点值,得到所述当前数据点的压缩数据点,包括:
设置压缩标记码,所述压缩标记码包括1字节,所述压缩标记码中包括第一位组、第二位组和第三位组,所述第一位组包括3位存储位,所述第二位组包括1位存储位,所述第三位组包括1位存储位;
获取与所述压缩时间标签相对应的存储字节数,所述存储字节数小于或等于8,将所述存储字节数对应的二进制编码写入所述第一位组中的存储位;
判断所述压缩质量码中是否包括有存储位,如果是,将所述第二位组中的存储位置1,否则,将所述第二位组中的存储位置0;
判断所述压缩浮点值是否包括有存储位,如果是,将所述第三位组的存储位置1,否则,将所述第三位组的存储位置0;
将所述压缩标记码、所述压缩时间标签、所述压缩质量码和所述压缩浮点值依次进行按位连接,将连接生成的数据作为所述当前数据点的压缩数据点。
2.根据权利要求1所述的方法,其特征在于,所述依据所述待存储位数计算浮点标记码,包括:
设置浮点标记码,所述浮点标记码包括5位存储位;
将所述待存储位数减去1得到中间变量;
将所述中间变量的二进制编码按位写入所述浮点标记码中。
3.一种工业实时数据压缩装置,其特征在于,应用于工业控制系统,所述装置包括:
数据点确定单元,用于确定所述工业控制系统中待存储的当前数据点,并获取所述工业控制系统中已经存储的数据点中最近存储的数据点作为目标数据点;
第一压缩单元,用于依据所述目标数据点中的目标时间标签及所述当前数据点中的当前时间标签,确定所述当前数据点的压缩时间标签;
第二压缩单元,用于依据所述目标数据点中的目标质量码及所述当前数据点中的当前质量码,确定所述当前数据点的压缩质量码;
第三压缩单元,用于依据所述目标数据点中的目标浮点值及所述当前数据点中的当前浮点值,确定所述当前数据点的压缩浮点值;
压缩整合单元,用于整合所述压缩时间标签、所述压缩质量码和所述压缩浮点值,得到所述当前数据点的压缩数据点;
其中,所述第一压缩单元包括:
差值计算子单元,用于计算所述当前数据点的当前时间标签与所述目标数据点的目标时间标签的差值;
标签确定子单元,用于将所述差值作为所述当前数据点的压缩时间标签;
其中,所述第二压缩单元包括:
质量码对比子单元,用于将所述当前数据点的当前质量码与所述目标数据点的目标质量码进行对比,得到对比结果;
质量码确定子单元,用于判断所述对比结果是否表明所述当前质量码与所述目标质量码相同,如果是,设置所述当前数据点的压缩质量码为空,否则,将所述当前数据点的当前质量码作为所述当前数据点的质量压缩码;
其中,所述第三压缩单元包括:
差异位获取子单元,用于将所述当前数据点的当前浮点值与所述目标数据点的目标浮点值按照由高位到低位的顺序进行按位比较,得到所述当前浮点值与所述目标浮点值的首个差异位;
位数计算子单元,用于依据所述首个差异位,计算所述当前浮点值的待存储位数;
浮点值确定子单元,用于判断所述待存储位数是否为0,如果是,设置所述当前数据点的压缩浮点值为空,否则,依据所述待存储位数计算浮点标记码,所述浮点标记码包括5位存储位,将所述浮点标记码及与所述待存储位数相对应的数据依次按位连接,将连接生成的数据作为所述当前数据点的压缩浮点值;
其中,所述压缩整合单元包括:
压缩标记码设置子单元,用于设置压缩标记码,所述压缩标记码包括1字节,所述压缩标记码中包括第一位组、第二位组和第三位组,所述第一位组包括3位存储位,所述第二位组包括1位存储位,所述第三位组包括1位存储位;
第一位组设置子单元,用于获取与所述压缩时间标签相对应的存储字节数,所述存储字节数小于或等于8,将所述存储字节数对应的二进制编码写入所述第一位组的存储位;
第二位组设置子单元,用于判断所述压缩质量码中是否包括有存储位,如果是,将所述第二位组中的存储位置1,否则,将所述第二位组中的存储位置0;
第三位组设置子单元,用于判断所述压缩浮点值是否包括存储位,如果是,将所述第三位组中的存储位置1,否则,将所述第三位组中的存储位置0;
连接组合子单元,用于将所述压缩标记码、所述压缩时间标签、所述压缩质量码和所述压缩浮点值依次进行按位连接,将连接生成的数据作为所述当前数据点的压缩数据点。
4.根据权利要求3所述的装置,其特征在于,所述浮点值确定子单元包括逻辑判断模块、空设置模块、标记码计算模块和浮点值确定模块,其中:
所述逻辑判断模块,用于判断所述待存储位数是否为0,如果是,触发空设置模块,否则,触发所述标记码计算模块;
所述空设置模块,用于设置所述当前数据点的压缩浮点值为空;
所述标记码计算模块,用于设置浮点标记码,所述浮点标记码包括5位存储位,将所述待存储位数减去1得到中间变量,将所述中间变量的二进制编码按位写入所述浮点标记码中,触发所述浮点值确定模块;
所述浮点值确定模块,用于将所述浮点标记码及与所述待存储位数相对应的数据依次按位连接,将连接生成的数据作为所述当前数据点的压缩浮点值。
CN201310159853.5A 2013-05-02 2013-05-02 一种工业实时数据压缩方法及装置 Active CN103236846B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310159853.5A CN103236846B (zh) 2013-05-02 2013-05-02 一种工业实时数据压缩方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310159853.5A CN103236846B (zh) 2013-05-02 2013-05-02 一种工业实时数据压缩方法及装置

Publications (2)

Publication Number Publication Date
CN103236846A CN103236846A (zh) 2013-08-07
CN103236846B true CN103236846B (zh) 2016-08-10

Family

ID=48884868

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310159853.5A Active CN103236846B (zh) 2013-05-02 2013-05-02 一种工业实时数据压缩方法及装置

Country Status (1)

Country Link
CN (1) CN103236846B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104753540B (zh) * 2015-03-05 2019-02-26 华为技术有限公司 数据压缩方法、数据解压方法和装置
CN106055275A (zh) * 2016-05-24 2016-10-26 深圳市敢为软件技术有限公司 数据压缩记录方法及装置
CN108897522A (zh) * 2018-06-14 2018-11-27 北京比特大陆科技有限公司 数据处理方法、数据处理装置以及电子设备
CN109257047B (zh) * 2018-09-12 2019-12-27 中科驭数(北京)科技有限公司 数据压缩方法及装置
CN109802683B (zh) * 2018-12-20 2023-04-14 深圳科安达电子科技股份有限公司 一种基于参数识别的轨道电路监测数据压缩方法和处理系统
CN110943797B (zh) * 2019-12-18 2021-06-22 北京邮电大学 一种sdh网络中的数据压缩方法
CN111159186A (zh) * 2019-12-28 2020-05-15 杭州当虹科技股份有限公司 一种关于多维有限枚举数据的压缩存储方法
CN111177170B (zh) * 2019-12-31 2022-04-01 杭州当虹科技股份有限公司 一种关于多维有限枚举数据的压缩更新方法
CN113612483A (zh) * 2021-08-10 2021-11-05 西安热工研究院有限公司 一种工业实时数据无损编码压缩方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1612252A (zh) * 2003-10-31 2005-05-04 浙江中控技术股份有限公司 实时数据在线压缩与解压缩方法
CN1786939A (zh) * 2005-11-10 2006-06-14 浙江中控技术有限公司 实时数据压缩方法
US7117053B1 (en) * 1998-10-26 2006-10-03 Stmicroelectronics Asia Pacific Pte. Ltd. Multi-precision technique for digital audio encoder

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7117053B1 (en) * 1998-10-26 2006-10-03 Stmicroelectronics Asia Pacific Pte. Ltd. Multi-precision technique for digital audio encoder
CN1612252A (zh) * 2003-10-31 2005-05-04 浙江中控技术股份有限公司 实时数据在线压缩与解压缩方法
CN1786939A (zh) * 2005-11-10 2006-06-14 浙江中控技术有限公司 实时数据压缩方法

Also Published As

Publication number Publication date
CN103236846A (zh) 2013-08-07

Similar Documents

Publication Publication Date Title
CN103236846B (zh) 一种工业实时数据压缩方法及装置
CN105183424B (zh) 一种具有高精度低能耗特性的固定位宽乘法器
WO2017124645A1 (zh) 一种浮点数处理装置
CN106951211B (zh) 一种可重构定浮点通用乘法器
Liakos et al. Chimp: efficient lossless floating point compression for time series databases
CN108021650A (zh) 一种时序数据的高效存储和读取系统
CN105528191A (zh) 数据累加装置、方法及数字信号处理装置
CN108416427A (zh) 卷积核堆积数据流、压缩编码以及深度学习算法
CN107256424A (zh) 三值权重卷积网络处理系统及方法
CN106549673A (zh) 一种数据压缩方法及装置
CN109739470A (zh) 一种基于2型双曲cordic任意指数函数的计算系统
CN110515589A (zh) 乘法器、数据处理方法、芯片及电子设备
CN108363558A (zh) 面向大数据处理的机器数级数据比较方法
CN106775577A (zh) 一种高性能非精确冗余二进制乘法器及其设计方法
CN114268323A (zh) 支持行存的数据压缩编码方法、装置及时序数据库
CN107423026A (zh) 一种正余弦函数计算的实现方法及装置
CN110825346B (zh) 一种低逻辑复杂度的无符号近似乘法器
CN116610731B (zh) 一种大数据分布式存储方法、装置、电子设备及存储介质
CN117236236A (zh) 一种芯片设计数据管理方法、装置、电子设备及存储介质
CN116720554A (zh) 一种基于fpga技术的多段线性拟合的神经元电路实现方法
CN105023021A (zh) 一种基于主方向模板的特征匹配方法
CN109933615A (zh) 一种基于差分矩阵的标签向量序列异常检测方法
CN213241151U (zh) 一种基于fpga的跨步访问数据流检测电路
CN205281474U (zh) 一种可配置的两级流水线六操作数快速加法器
CN106327538B (zh) 一种二维骨骼动画压缩方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB03 Change of inventor or designer information

Inventor after: Lai Xiaojian

Inventor after: Xu Hui

Inventor after: Fei Zhenhua

Inventor after: Huang Dongpeng

Inventor before: Xu Hui

Inventor before: Fei Zhenhua

Inventor before: Lai Xiaojian

Inventor before: Huang Dongpeng

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: XU HUI FEI ZHENHUA LAI XIAOJIAN HUANG DONGPENG TO: LAI XIAOJIAN XU HUI FEI ZHENHUA HUANG DONGPENG

C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20180928

Address after: 315000 room 150 (1-1-180), Chang Po Road, Ji Shi Gang Town, Haishu District, Ningbo, Zhejiang.

Patentee after: ZHEJIANG LANZHUO INDUSTRIAL INTERNET INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 310053 Zhejiang Binjiang District Hangzhou six Road 309 central control science and Technology Park (high tech Zone)

Patentee before: ZHEJIANG SUPCON TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Room 1-1-180, No. 150, Changpu Road, Jishigang Town, Haishu District, Ningbo, Zhejiang 315016

Patentee after: Lanzhuo Digital Technology Co.,Ltd.

Address before: 315000 room 150 (1-1-180), Chang Po Road, Ji Shi Gang Town, Haishu District, Ningbo, Zhejiang.

Patentee before: ZHEJIANG LANZHUO INDUSTRIAL INTERNET INFORMATION TECHNOLOGY Co.,Ltd.