一种工业实时数据压缩方法及装置的制作方法

文档序号:7530701阅读:253来源:国知局
专利名称:一种工业实时数据压缩方法及装置的制作方法
技术领域
本申请涉及工业实时数据存储技术领域,特别涉及一种工业实时数据压缩方法及
>J-U ρ α装直。
背景技术
工业控制系统中提供历史数据存储系统,用来保存现场的实时数据,以备后续的工艺分析、故障追溯以及控制方案改进等用途。随着工业控制系统的大型化,系统内的信号数量成倍增加,导致历史数量急剧增加。为了保证工业控制系统的数据容量及运行效率,需要对这些历史实时数据进行压缩存储。其中,工业实时数据以数据点的形式存储,每个数据点由时间标签、质量码和数值组成。时间标签为该数据点的被采集时间值,以毫秒为单元,采用8字节存储;质量码描述该数据点对应的实际信号的质量状态,采用4字节整形数据存储,一般O表示工作状态正常,非零则表示信号数据可疑或已出现异常;数值为其所属数据点的值,其采用4字节的低精度浮点表示,亦称浮点值,浮点值在计算机中均以符号位阶码(exponent) +尾码(mantissa)的形式来存储, 浮点值=(1+mantissa) X 2—.'从高到低的第I位是符号位,该位为O表示浮点值为正数,I表示该浮点值为负数;第2 9位为阶码,计算机存储的阶码中的O 255对应着真实阶码的-127 128 ;第10 32位为尾码,尾码的第一位表示2'第二位表示2_2,以此类推,共计23位的尾码使浮点值能够精确到2_23的精度,即6 7位有效数字。例如,浮点值为2.5,在计算机中存储时,将首先被换算为如下的类似科学计数法方式表示:1.25 X 21,再采用16进制表示为0x40200000。

发明内容
本申请所要解决的技术问题是提供一种工业实时数据压缩方法及装置,用以解决现有工业控制系统中的实时数据急剧增加,需要对这些历史实时数据进行压缩存储的技术问题。本申请提供了一种工业实时数据压缩方法,应用于工业控制系统,所述方法包括:确定所述工业控制系统中待存储的当前数据点,并获取所述工业控制系统中已经存储的数据点中最近存储的数据点作为目标数据点;依据所述目标数据点中的目标时间标签及所述当前数据点中的当前时间标签,确定所述当前数据点的压缩时间标签;依据所述目标数据点中的目标质量码及所述当前数据点中的当前质量码,确定所述当前数据点的压缩质量码;依据所述目标数据点中的目标浮点值及所述当前数据点中的当前浮点值,确定所述当前数据点中的压缩浮点值;整合所述压缩时间标签、所述压缩质量码和所述压缩浮点值,得到所述当前数据点的压缩数据点。上述方法,优选的,所述依据所述目标数据点中的目标时间标签及所述当前数据点中的当前时间标签,确定所述当前数据点的压缩时间标签,包括:计算所述当前数据点的当前时间标签与所述目标数据点的目标时间标签的差值;将所述差值作为所述当前数据点的压缩时间标签。上述方法,优选的,所述依据所述目标数据点中的目标质量码及所述当前数据点中的当前质量码,确定所述当前数据点的压缩质量码,包括:将所述当前数据点的当前质量码与所述目标数据点的目标质量码进行对比,得到对比结果;判断所述对比结果是否表明所述当前质量码与所述目标质量码相同,如果是,设置所述当前数据点的压缩质量码为空,否则,将所述当前数据点的当前质量码作为所述当前数据点的压缩质量码。上述方法,优选的,所述依据所述目标数据点中的目标浮点值及所述当前数据点中的当前浮点值,确定所述当前数据点中的压缩浮点值,包括:将所述当前数据点的当前浮点值与所述目标数据点的目标浮点值按照由高位到低位的顺序进行按位比较,得到所述当前浮点值与所述目标浮点值的首个差异位;依据所述首个差异位,计算所述当前浮点值的待存储位数;判断所述待存储位数是否为0,如果是,设置所述当前数据点的压缩浮点值为空,否则,依据所述待存储位数计算浮点标记码,所述浮点标记码包括5位存储位,将所述浮点标记码及与所述待存储位数相对应的数据依次按位连接,将连接生成的数据作为所述当前数据点的压缩浮点值。上述方法,优选的,所述整合所述压缩时间标签、所述压缩质量码和所述压缩浮点值,得到所述当前数据点的压缩数据点,包括:设置压缩标记码,所述压缩标记码包括I字节,所述压缩标记码中包括第一位组、第二位组和第三位组,所述第一位组包括3位存储位,所述第二位组包括I位存储位,所述第三位组包括I位存储位;获取与所述压缩时间标签相对应的存储字节数,所述存储字节数小于或等于8,将所述存储字节数对应的二进制编码写入所述第一位组中的存储位;判断所述压缩质量码中是否包括有存储位,如果是,将所述第二位组中的存储位置1,否则,将所述第二位组中的存储位置O ;判断所述压缩浮点值是否包括有存储位,如果是,将所述第三位组的存储位置1,否则,将所述第三位组的存储位置O ;将所述压缩标记码、所述压缩时间标签、所述压缩质量码和所述压缩浮点值依次进行按位连接,将连接生成的数据作为所述当前数据点的压缩数据点。上述方法,优选的,所述依据所述待存储位数计算浮点标记码,包括:设置浮点标记码,所述浮点标记码包括5位存储位;

将所述待存储位数减去I得到中间变量;将所述中间变量的二进制编码按位写入所述浮点标记码中。
本申请还提供了一种工业实时数据压缩装置,应用于工业控制系统,所述装置包括:数据点确定单元,用于确定所述工业控制系统中待存储的当前数据点,并获取所述工业控制系统中已经存储的数据点中最近存储的数据点作为目标数据点;第一压缩单元,用于依据所述目标数据点中的目标时间标签及所述当前数据点中的当前时间标签,确定所述当前数据点的压缩时间标签;第二压缩单元,用于依据所述目标数据点中的目标质量码及所述当前数据点中的当前质量码,确定所述当前数据点的压缩质量码;第三压缩单元,用于依据所述目标数据点中的目标浮点值及所述当前数据点中的当前浮点值,确定所述当前数据点的压缩浮点值;压缩整合单元,用于整合所述压缩时间标签、所述压缩质量码和所述压缩浮点值,得到所述当前数据点的压缩数据点。上述装置,优选的,所述第一压缩单元包括:差值计算子单元,用于计算所述当前数据点的当前时间标签与所述目标数据点的目标时间标签的差值;标签确定子单元,用于将所述差值作为所述当前数据点的压缩时间标签。上述装置,优 选的,所述第二压缩单元包括:质量码对比子单元,用于将所述当前数据点的当前质量码与所述目标数据点的目标质量码进行对比,得到对比结果;质量码确定子单元,用于判断所述对比结果是否表明所述当前质量码与所述目标质量码相同,如果是,设置所述当前数据点的压缩质量码为空,否则,将所述当前数据点的当前质量码作为所述当前数据点的质量压缩码。上述装置,优选的,所述第三压缩单元包括:差异位获取子单元,用于将所述当前数据点的当前浮点值与所述目标数据点的目标浮点值按照由高位到低位的顺序进行按位比较,得到所述当前浮点值与所述目标浮点值的首个差异位;位数计算子单元,用于依据所述首个差异位,计算所述当前浮点值的待存储位数;浮点值确定子单元,用于判断所述待存储位数是否为0,如果是,设置所述当前数据点的压缩浮点值为空,否则,依据所述待存储位数计算浮点标记码,所述浮点标记码包括5位存储位,将所述浮点标记码及与所述待存储位数相对应的数据依次按位连接,将连接生成的数据作为所述当前数据点的压缩浮点值。上述装置,优选的,所述压缩整合单元包括:压缩标记码设置子单元,用于设置压缩标记码,所述压缩标记码包括I字节,所述压缩标记码中包括第一位组、第二位组和第三位组,所述第一位组包括3位存储位,所述第二位组包括I位存储位,所述第三位组包括I位存储位;第一位组设置子单元,用于获取与所述压缩时间标签相对应的存储字节数,所述存储字节数小于或等于8,将所述存储字节数对应的二进制编码写入所述第一位组的存储位;
第二位组设置子单元,用于判断所述压缩质量码中是否包括有存储位,如果是,将所述第二位组中的存储位置1,否则,将所述第二位组中的存储位置O ;第三位组设置子单元,用于判断所述压缩浮点值是否包括存储位,如果是,将所述第三位组中的存储位置1,否则,将所述第三位组中的存储位置O ;连接组合子单元,用于将所述压缩标记码、所述压缩时间标签、所述压缩质量码和所述压缩浮点值依次进行按位连接,将连接生成的数据作为所述当前数据点的压缩数据点。上述装置,优选的,所述浮点值确定子单元包括逻辑判断模块、空设置模块、标记码计算模块和浮点值确定模块,其中:所述逻辑判断模块,用于判断所述待存储位数是否为0,如果是,触发空设置模块,否则,触发所述标记码计算模块;所述空设置模块,用于设置所述当前数据点的压缩浮点值为空;所述标记码计算模块,用于设置浮点标记码,所述浮点标记码包括5位存储位,将所述待存储位数减去I得到中间变量,将所述中间变量的二进制编码按位写入所述浮点标记码中,触发所述浮点值确定模块;所述浮点值确定模块,用于将所述浮点标记码及与所述待存储位数相对应的数据依次按位连接,将连接生成的数据作为所述当前数据点的压缩浮点值。由上述方案可知,本申请提供的一种工业实时数据压缩方法及装置,应用于工业控制系统,通过对该工业工作系统中待存储的当前数据点,将该工业控制系统中最近存储的目标数据点中的各部分如时间标签、质量码和浮点值作为依据,分别确定所述当前数据点中的压缩时间标签、压缩质量码和压缩浮点值,再对所述压缩时间标签、所述压缩质量码和所述压缩浮点值进行整合,得到所述当前数据点的压缩数据点。本申请在实现数据点压缩时,不仅具有无损性,保证了工业控制系统中的数据精度,同时,各个数据点之间的关联度较低,实施方便,提高了数据的压缩率及解压性能,可以保证每秒钟至少25万点的数据吞吐量,大很大程度上提升了工业控制系统的数据处理性能。


为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为工业实时数据的数据点中浮点值在计算机中原始存储的编码结构示意图;图2为本申请提供的一种工业实时数据压缩方法实施例一的流程图;图3为本申请提供的一种工业实时数据压缩方法实施例二的部分流程图;图4为本申请提供的一种工业实时数据压缩方法实施例三的部分流程图;图5为本申请提供的一种工业实时数据压缩方法实施例四的部分流程图;图6为本申请通过的一种工业实时数据压缩方法实施例五的部分流程图;图7为本申请实施例五中压缩标记码的编码结构示意图8为本申请提供的一种工业实时数据压缩方法实施例六的流程图9为本申请提供的一种工业实时数据压缩装置实施例七的结构示意图;图10为本申请提供的一种工业实时数据压缩装置实施例八的部分结构示意图;图11为本申请提供的一种工业实时数据压缩装置实施例九的部分结构示意图;图12为本申请提供的一种工业实时数据压缩装置实施例十的部分结构示意图;图13为本申请实施例十的另一部分结构示意图;图14为本申请提供的一种工业实时数据压缩装置实施例十一的部分结构示意图。
具体实施例方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

工业控制系统中的历史数据存储系统对工业控制系统中的实时数据进行存储,以备后续的工艺分析、故障追溯以及控制方案改进等用途。随着工业控制系统的大型化,系统内的信号数量成倍增加,导致历史数量急剧增加。为了保证工业控制系统的数据容量及运行效率,需要对这些历史实时数据进行压缩存储。而上述实时数据在历史数据存储系统中的存储形式为数据点,每个数据点由时间标签、质量码和数值组成。其中,所述时间标签为该数据点的被采集时间值,以毫秒为单元,采用8字节存储;质量码描述该数据点对应的实际信号的质量状态,采用4字节整形数据存储,一般O表示工作状态正常,非零则表示信号数据可疑或已出现异常;数值为其所属数据点的值,其采用4字节的低精度浮点表示,也称为浮点值,其在计算机中的编码规则较为特殊,其二进制编码以字节为单位是无规律可循的,这也导致了对它的无损压缩较为困难。以下为浮点值的编码规则,如图1所示,浮点值在计算机中存储时,均是换算为符号位+阶码(exponent) +尾码(mantissa)来存储,浮点值=(1+mantissa) X2—nt。其中,从高到低的第I位是符号位,该位为O表示浮点值为正数,I表示该浮点值为负数;第2 9位为阶码,计算机存储的阶码中的O 255对应着真实阶码的-127 128,阶码的这种编码规则使得浮点值能够表征的数据范围非常大,同时它也可以精确表示很小的小数;第10 32位为尾码,尾码的第一位表示2—1、第二位表示2_2,以此类推,共计23位的尾码使浮点值能够精确到2_23的精度,即6 7位有效数字。举例说明,假设浮点值为2.5,在计算机中存储时,将首先被换算为如下的类似科学计数法方式表示:1.25X21,换算时需遵循如下规则:前面的小数表示的部分,必须是在区间[1,2)之间的小数,如例子中的1.25。计算机在存储时,将小数部分减1,作为尾码的数值(0.25),再将此数值采用二进制来表示(01000000000000000000000);后面的幂表示的部分必须换算成2的幂,其中幂的值即是阶码(I),转换为计算机存储的阶码为128 (二进制码10000000);
根据数据的正负可以知道符号位的值,例子中为正数,因此符号位为O。综上,浮点值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 OxFF之间,所述差值的存储位数为I字节;
若所述差值在0x100 OxFFFF之间,所述差值的存储位数为2字节;若所述差值在0x10000 OxFFFFFF之间,所述差值的存储位数为3字节;若所述差值在0x1000000 OxFFFFFFFF之间,所述差值的存储位数为4字节;若所述差值在0x100000000 OxFFFFFFFFFF之间,所述差值的存储位数为5字节;若所述差值在0x10000000000 OxFFFFFFFFFFFF之间,所述差值的存储位数为6
字节;若所述差值大于OxFFFFFFFFFFFF,所述差值的存储位数为8字节。步骤302:将所述差值作为所述当前数据点的压缩时间标签。其中,所述压缩时间标签的存储位数与所述差值的存储位数相同。

参考图4,其示出了本申请提供的一种工业实时数据压缩方法实施例三的部分流程图,其中,所述步骤203可以包括以下步骤:步骤401:将所述当前数据点的当前质量码与所述目标数据点的目标质量码进行对比,得到对比结果。需要说明的是,所述质量码的数据特点为定值分段连续,因此,所述当前质量码与所述目标质量码的对比结果包括两种情况:第一种为所述当前质量码与所述目标质量码相同,均为O或均为非O ;第二种为所述当前质量码与所述目标质量码不同,一个为O另一个
非00步骤402:判断所述对比结果是否表明所述当前质量码与所述目标质量码相同,如果是,执行步骤403,否则,执行步骤404。步骤403:设置所述当前数据点的压缩质量码为空。其中,在所述当前质量码与所述目标质量码相同时,所述当前数据点的压缩质量码为空,在解压时,可以直接采用其所在数据点的前一个数据点的质量码作为其自身的质量码,由此在进行压缩存储时,减少质量码的存储位数,提高压缩率的同时保证无损性。步骤404:将所述当前数据点的当前质量码作为所述当前数据点的压缩质量码。参考图5,其示出了本申请提供的一种工业实时数据压缩方法实施例四的部分流程图,其中,所述步骤204可以通过以下各个步骤具体实现:步骤501:将所述当前数据点的当前浮点值与所述目标数据点的目标浮点值按照由高位到低位的顺序进行按位比较,得到所述当前浮点值与所述目标浮点值的首个差异位。在前文中的描述可知,若数据点的浮点值数据处于小幅波动的状态时,则在很大概率下,其符号位和阶码都是不变的,变化的仅为为嘛,且根据波动幅度不同,尾码变化的起始位置也不同,若数据变化幅度非常小,可能只有尾码的最后4 5位出现差异。步骤502:依据所述首个差异位,计算所述当前浮点值的待存储位数。在本申请中,由于每个数据点的浮点值数据的波动体现在阶码和尾码上,此时,只需存储所述当前浮点值中差异于所述目标浮点值的存储位中的数据即可,进一步的,存储有高位到低位中首个差异位及其后续存储位中的数据。因此,在本申请实施例的实际实现中,所述步骤502可以通过以下方式实现:计算所述当前浮点值中最低位与所述首个差异位之间的位数作为所述待存储位数,所述待存储位数包括所述首个差异位。由于所述当前数据点与所述目标数据点之间的波动幅值较小,极有可能不发生变化,因此,所述待存储位数可能为0,还可能非O。步骤503:判断所述待存储位数是否为0,如果是,执行步骤504,否则,执行步骤505 ;步骤504:设置所述当前数据点的压缩浮点值为空。其中,若所述待存储位数为0,则说明所述当前浮点值与所述目标浮点值相同,此时,无需重新存储所述当前数据点的当前浮点值,而在解压时,只需直接获取该数据点的前一个数据点的浮点值即可作为自身的浮点值,节省存储位。步骤505:依据所述待存储位数计算浮点标记码,所述浮点标记码包括5为存储位,执行步骤506。其中,所述浮点标记码中存储的数据表示所述待存储位数的值,为所述当前浮点值中需存储的总位数,该总位数从所述当前浮点值的最低位算起,而所述待存储位数的范围值为I 32,为节省存储位,设置所述浮点标记码的存储位为5位,其能够标识的范围值为O 31,由此,所述浮点标记码的值为所述待存储位数减去1,因此,所述步骤505可以通过以下方式实现:设置浮点标记码,所述浮点标记码包括5位存储位,将所述待存储位数减去I得到中间变量,将所述中间变量的二进制编码按位写入所述浮点标记码中。步骤506:将所述浮点标记码及与所述待存储位数相对应的数据依次按位相连,将连接生成的数据作为所述当前数据点的压缩浮点值。其中,由所述步·骤506得到的所述压缩浮点值中,由所述浮点标记码及所述待存储位数对应的数据组成,由于所述当前浮点值的波动幅度较小的特性,所述压缩浮点值的存储位数明显少于所述当前浮点值的存储位数,保证无损压缩的同时,提高数据的压缩率。为保证工业实时数据在实现压缩后能够正确解压,需要在每个数据点中设置包头数据,在本申请中,可以通过在每个数据点的高位设置压缩标记码,所述压缩标记码记录有所述压缩时间标签、所述压缩质量码及所述压缩浮点值的关键信息,如是否存储、存储位数或其他基础关键信息。参考图6,其示出了本申请通过的一种工业实时数据压缩方法实施例五的部分流程图,其中,所述步骤205可以包括以下步骤:步骤601:设置压缩标记码,所述压缩标记码包括I字节,所述压缩标记码中包括第一位组、第二位组和第三位组,所述第一位组包括3位存储位,所述第二位组包括I位存储位,所述第三位组包括I位存储位。如图7所示,所述压缩标记码中包括8位存储位,所述第一位组、所述第二位组和所述第三位组的存储位可以自定义设置,例如:所述第一位组包括3位存储位,且为连续的存储位,如第3、第4和第5存储位,所述第二位组包括I位存储位,如第7存储位,第三位组包括I位存储位,如第8存储位。步骤602:获取与所述压缩时间标签相对应的存储字节数,所述存储字节数小于或等于8,将所述存储字节数对应的二进制编码写入所述第一位组的存储位。由本文前文中可知,所述压缩时间标签的长度不定,其长度最大值为8字节,为保证在解压或读取该数据点时的正确性,采用所述第一位组标识出所述压缩时间标签的长度,由于所述压缩时间标签的长度最大值为8字节,由此所述第一位组中只需设置3位存储位即可。步骤603:判断所述压缩质量码中是否包括有存储位,如果是,将所述第二位组的存储位置1,否则,将所述第二位组中的存储位置O。其中,所述第二位组中的值标识出所述压缩质量码是否存在或是否非空,在所述压缩质量码非空时,所述第二位组的存储位为1,所述压缩质量码为空时,所述第二位组的存储位为O。步骤604:判断所述压缩浮点值是否包括有存储位,如果是,将所述第三位组的存储位置1,否则,将所述第三位组的存储位置O。其中,所述第三位组中的值标识出所述压缩浮点值是否存在或是否非空,在所述压缩浮点值非空时,所述第三位组的存储位为1,所述压缩浮点值为空时,所述第三位组的存储位为O。需要说明的是,所述步骤602至所述步骤604的执行顺序可以调换,还可以同时执行,调换后得到的方案与本申请属于同一 发明思想,在本申请的保护范围内。步骤605:将所述压缩标记码、所述压缩时间标签、所述压缩质量码和所述压缩浮点值依次进行按位连接,将连接生成的数据作为所述当前数据点的压缩数据点。需要说明的是,所述压缩标记码中的第I和第二存储位中在实际实现时均置1,表明该压缩标记码后续中存在合法的压缩数据点。例如,所述压缩标记码的每一位的含义如表I所示:表I压缩标记码的每一位含义
权利要求
1.一种工业实时数据压缩方法,其特征在于,应用于工业控制系统,所述方法包括: 确定所述工业控制系统中待存储的当前数据点,并获取所述工业控制系统中已经存储的数据点中最近存储的数据点作为目标数据点; 依据所述目标数据点中的目标时间标签及所述当前数据点中的当前时间标签,确定所述当前数据点的压缩时间标签; 依据所述目标数据点中的目标质量码及所述当前数据点中的当前质量码,确定所述当前数据点的压缩质量码; 依据所述目标数据点中的目标浮点值及所述当前数据点中的当前浮点值,确定所述当前数据点中的压缩浮点值; 整合所述压缩时间标签、所述压缩质量码和所述压缩浮点值,得到所述当前数据点的压缩数据点。
2.根据权利要求1所述的方法,其特征在于,所述依据所述目标数据点中的目标时间标签及所述当前数据点中的当前时间标签,确定所述当前数据点的压缩时间标签,包括: 计算所述当前数据点的当前时间标签与所述目标数据点的目标时间标签的差值; 将所述差值作为所述当前数据点的压缩时间标签。
3.根据权利要求1所述的方法,其特征在于,所述依据所述目标数据点中的目标质量码及所述当前数据点中的当前质量码,确定所述当前数据点的压缩质量码,包括: 将所述当前数据点的当前质量码与所述目标数据点的目标质量码进行对比,得到对比结果; 判断所述对比结果是否表明所述当前质量码与所述目标质量码相同,如果是,设置所述当前数据点的压缩质量码为空,否则,将所述当前数据点的当前质量码作为所述当前数据点的压缩质量码。
4.根据权利要求1所述的方法,其特征在于,所述依据所述目标数据点中的目标浮点值及所述当前数据点中的当前浮点值,确定所述当前数据点中的压缩浮点值,包括: 将所述当前数据点的当前浮点值与所述目标数据点的目标浮点值按照由高位到低位的顺序进行按位比较,得到所述当前浮点值与所述目标浮点值的首个差异位; 依据所述首个差异位,计算所述当前浮点值的待存储位数; 判断所述待存储位数是否为O,如果是,设置所述当前数据点的压缩浮点值为空,否则,依据所述待存储位数计算浮点标记码,所述浮点标记码包括5位存储位,将所述浮点标记码及与所述待存储位数相对应的数据依次按位连接,将连接生成的数据作为所述当前数据点的压缩浮点值。
5.根据权利要求1所述的方法,其特征在于,所述整合所述压缩时间标签、所述压缩质量码和所述压缩浮点值,得到所述当前数据点的压缩数据点,包括: 设置压缩标记码,所述压缩标记码包括I字节,所述压缩标记码中包括第一位组、第二位组和第三位组,所述第一位组包括3位存储位,所述第二位组包括I位存储位,所述第三位组包括I位存储位; 获取与所述压缩时间标签相对应的存储字节数,所述存储字节数小于或等于8,将所述存储字节数对应的二进制编码写入所述第一位组中的存储位; 判断所述压缩质量码中是否包括有存储位,如果是,将所述第二位组中的存储位置1,否则,将所述第二位组中的存储位置O ; 判断所述压缩浮点值是否包括有存储位,如果是,将所述第三位组的存储位置1,否则,将所述第三位组的存储位置O ; 将所述压缩标记码、所述压缩时间标签、所述压缩质量码和所述压缩浮点值依次进行按位连接,将连接生成的数据作为所述当前数据点的压缩数据点。
6.根据权利要求4所述的方法,其特征在于,所述依据所述待存储位数计算浮点标记码,包括: 设置浮点标记码,所述浮点标记码包括5位存储位; 将所述待存储位数减去1得到中间变量; 将所述中间变量的二进制编码按位写入所述浮点标记码中。
7.—种工业实时数据压缩装置,其特征在于,应用于工业控制系统,所述装置包括: 数据点确定单元,用于确定所述工业控制系统中待存储的当前数据点,并获取所述工业控制系统中已经存储的数据点中最近存储的数据点作为目标数据点; 第一压缩单元,用于依据所述目标数据点中的目标时间标签及所述当前数据点中的当前时间标签,确定所述当前数据点的压缩时间标签; 第二压缩单元,用于依据所述目标数据点中的目标质量码及所述当前数据点中的当前质量码,确定所述当 前数据点的压缩质量码; 第三压缩单元,用于依据所述目标数据点中的目标浮点值及所述当前数据点中的当前浮点值,确定所述当前数据点的压缩浮点值; 压缩整合单元,用于整合所述压缩时间标签、所述压缩质量码和所述压缩浮点值,得到所述当前数据点的压缩数据点。
8.根据权利要求7所述的装置,其特征在于,所述第一压缩单元包括: 差值计算子单元,用于计算所述当前数据点的当前时间标签与所述目标数据点的目标时间标签的差值; 标签确定子单元,用于将所述差值作为所述当前数据点的压缩时间标签。
9.根据权利要求7所述的装置,其特征在于,所述第二压缩单元包括: 质量码对比子单元,用于将所述当前数据点的当前质量码与所述目标数据点的目标质量码进行对比,得到对比结果; 质量码确定子单元,用于判断所述对比结果是否表明所述当前质量码与所述目标质量码相同,如果是,设置所述当前数据点的压缩质量码为空,否则,将所述当前数据点的当前质量码作为所述当前数据点的质量压缩码。
10.根据权利要求7所述的装置,其特征在于,所述第三压缩单元包括: 差异位获取子单元,用于将所述当前数据点的当前浮点值与所述目标数据点的目标浮点值按照由高位到低位的顺序进行按位比较,得到所述当前浮点值与所述目标浮点值的首个差异位; 位数计算子单元,用于依据所述首个差异位,计算所述当前浮点值的待存储位数; 浮点值确定子单元,用于判断所述待存储位数是否为0,如果是,设置所述当前数据点的压缩浮点值为空,否则,依据所述待存储位数计算浮点标记码,所述浮点标记码包括5位存储位,将所述浮点标记码及与所述待存储位数相对应的数据依次按位连接,将连接生成的数据作为所述当前数据点的压缩浮点值。
11.根据权利要求7所述的装置,其特征在于,所述压缩整合单元包括: 压缩标记码设置子单元,用于设置压缩标记码,所述压缩标记码包括I字节,所述压缩标记码中包括第一位组、第二位组和第三位组,所述第一位组包括3位存储位,所述第二位组包括I位存储位,所述第三位组包括I位存储位; 第一位组设置子单元,用于获取与所述压缩时间标签相对应的存储字节数,所述存储字节数小于或等于8,将所述存储字节数对应的二进制编码写入所述第一位组的存储位;第二位组设置子单元,用于判断所述压缩质量码中是否包括有存储位,如果是,将所述第二位组中的存储位置1,否则,将所述第二位组中的存储位置O ; 第三位组设置子单元,用于判断所述压缩浮点值是否包括存储位,如果是,将所述第三位组中的存储位置1,否则,将所述第三位组中的存储位置O ; 连接组合子单元,用于将所述压缩标记码、所述压缩时间标签、所述压缩质量码和所述压缩浮点值依次进行按位连接,将连接生成的数据作为所述当前数据点的压缩数据点。
12.根据权利要求7所述的装置,其特征在于,所述浮点值确定子单元包括逻辑判断模块、空设置模块、标记码计算模块和浮点值确定模块,其中: 所述逻辑判断模块,用于判断所述待存储位数是否为O,如果是,触发空设置模块,否贝U,触发所述标记码计算模块; 所述空设置模块,用于设置所述当前数据点的压缩浮点值为空; 所述标记码计算模块,用于设置浮点标记码,所述浮点标记码包括5位存储位,将所述待存储位数减去I得到中间变量,将所述中间变量的二进制编码按位写入所述浮点标记码中,触发所述浮点值确定模块; 所述浮点值确定模块,用于将所述浮点标记码及与所述待存储位数相对应的数据依次按位连接,将连接生成的数据作为所述当前数据点的压缩浮点值。
全文摘要
本申请公开了一种工业实时数据压缩方法及装置,应用于工业控制系统,所述方法包括确定所述工业控制系统中待存储的当前数据点,并获取所述工业控制系统中已经存储的数据点中最近存储的数据点作为目标数据点;依据所述目标数据点中的目标时间标签及所述当前数据点中的当前时间标签,确定所述当前数据点的压缩时间标签;依据所述目标数据点中的目标质量码及所述当前数据点中的当前质量码,确定所述当前数据点的压缩质量码;依据所述目标数据点中的目标浮点值及所述当前数据点中的当前浮点值,确定所述当前数据点中的压缩浮点值;整合所述压缩时间标签、所述压缩质量码和所述压缩浮点值,得到所述当前数据点的压缩数据点。
文档编号H03M7/30GK103236846SQ20131015985
公开日2013年8月7日 申请日期2013年5月2日 优先权日2013年5月2日
发明者徐慧, 费振华, 赖晓健, 黄冬朋 申请人:浙江中控技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1