一种基于DL/T698.45协议的数据帧压缩方法和系统技术方案

技术编号:22725986 阅读:14 留言:0更新日期:2019-12-04 07:09
本发明专利技术提供一种基于DL/T698.45协议的数据帧压缩方法和系统。所述方法和系统将采集的数据帧进行解析并分层,对每一层中的数据按照类型采用不同的压缩算法进行压缩,其中,基础数据采用第一压缩算法,针对不同的数据类型压缩字节,对于数组元素无法压缩的第一数组数据,采用第二压缩算法,将数组元素的数据类型进行提取作为数组元素类型,对于数组元素相同可进行压缩的第二数组数据,通过定义压缩数组类型,只保留一组数组元素。所述基于DL/T698.45协议的数据帧压缩方法和系统的压缩算法简单,执行效率高,不仅具备通过通用压缩算法再次压缩的特性,还保留了数据帧易解析特点,是一种高效无损压缩算法。

A data frame compression method and system based on DL / t698.45 protocol

The invention provides a data frame compression method and system based on DL / t698.45 protocol. The method and system analyze and layer the collected data frame, and compress the data in each layer with different compression algorithm according to the type. Among them, the first compression algorithm is used for basic data, bytes are compressed according to different data types, and the second compression algorithm is used for the first array data that the array elements cannot be compressed, so as to enter the data type of array elements into Row extraction is the type of array element. For the second array data that can be compressed with the same array element, only one group of array elements is reserved by defining the compressed array type. The data frame compression method based on DL / t698.45 protocol and the compression algorithm of the system are simple and efficient. They not only have the characteristics of recompression through general compression algorithm, but also retain the characteristics of easy data frame analysis, which is an efficient lossless compression algorithm.

【技术实现步骤摘要】
一种基于DL/T698.45协议的数据帧压缩方法和系统
本专利技术涉及数据压缩领域,并且更具体地,涉及一种基于DL/T698.45协议的数据帧压缩方法和系统。
技术介绍
DL/T698.45协议全称为《DL/T698.45—2017电能信息采集与管理系统第4-5部分:通信协议—面向对象的数据交换协议》,以下简称“DL/T698.45协议”,是电力行业电能信息采集与管理系统目前采用通信协议,已经广泛应用,可以用于主站与采集终端之间,也可以用于采集终端与电能表之间。一般采集终端与电能表之间采用载波通信,由于信道问题,通信报文大小极大影响了通信效率和通信成功率,因此减小DL/T698.45协议数据帧大小将能够有效提高通信效率和通信成功率。DL/T698.45协议采用了自解析特征的数据编码方式,易于人工或计算机自动解析,增强了报文的可读性,但是由于数据帧中带了数据类型等自解析标志增加了报文大小,对于一些报文大小影响通信质量和效率的通信信道影响比较大,例如载波通信,因此减小传输报文数据帧大小至关重要。
技术实现思路
为了解决现有技术中采用DL/T698.45协议的报文数据中无效数据、重复数据多,降低了受报文大小影响的通信信道的通信质量和效率的技术问题,本专利技术提供一种基于DL/T698.45协议的数据帧压缩方法,所述方法包括:步骤1、采集DL/T698.45协议的数据帧,并对所述数据帧进行解析,所述解析后的数据有N层,其中,所述解析后的数据包括基础数据和数组数据,所述数组数据包括第一数组数据和第二数组数据,所述第一数组数据是每个数据元素中的数据类型相同,但数据值不同的数据,所述第二数组数据是每个数据元素中的数据类型和数据值都相同,N≥1;步骤2、将第n层数据中的基础数据按照第一压缩算法进行压缩,生成第一压缩数据,其中,所述第一压缩算法是指将DL/T698.45协议中数据类型进行重新编码,并将所述数据类型对应的字节进行压缩,其中,n的初始值是1;步骤3、将第n层数据中的第一数组数据按照第一压缩算法进行压缩生成第一数组压缩数据,并确定第一压缩率;步骤4、将第n层数据中的第一数组数据按照第二压缩算法进行压缩,生成第二数组压缩数据,并确定第二压缩率,其中,所述第二压缩算法是将第一数组数据中的数组元素的数据类型提出作为数组元素类型,其压缩后的格式为压缩数组类型,数据元素类型和所有数组元素的组合;步骤5、比较第一压缩率和第二压缩率,当第一压缩率大于第二压缩率,且第一数组压缩数据中存在第二数组数据时,将第一数组压缩数据按照第三压缩算法进行压缩,并将按照第三压缩算法生成的压缩数据作为第二压缩数据;当第一压缩率大于第二压缩率,且第一数组压缩数据中不存在第二数组数据时,将第一数组压缩数据作为第二压缩数据,令n=n+1,其中,所述第三压缩算法是将第二数组数据中数据类型和数据值相同的数组元素压缩为一个,其压缩后的格式为压缩数据类型,元素个数和数组元素值的组合;步骤6、比较第一压缩率和第二压缩率,当第一压缩率不大于第二压缩率,且第二数组压缩数据中存在第二数组数据时,将第二数组压缩数据按照第三压缩算法进行压缩,并将按照第三压缩算法生成的压缩数据作为第二压缩数据,当第一压缩率不大于第二压缩率,且第二数组压缩数据中不存在第二数组数据时,将第二数组压缩数据作为第二压缩数据,令n=n+1;步骤7、当n>N时,将所述第一压缩数据和第二压缩数据按照在数据帧中的顺序输出,所述输出结果即为采集的数据帧的压缩结果;当n≤N时,返回步骤2。进一步地,所述将第n层数据中的基础数据按照第一压缩算法进行压缩,生成第一压缩数据包括:将第n层数据中的基础数据对应的数据类型编码按照预先设置的数据类型压缩编码规则转换为压缩数据类型编码;将第n层数据中的基础数据中数据类型对应的字节数据按照预先设置的数据类型压缩关系压缩为压缩数据类型对应的字节数据;所述压缩数据类型编码和压缩数据类型对应的字节数据的组合即为第一压缩数据。进一步地,所述将第n层数据中的第一数组数据按照第一压缩算法进行压缩生成第一数组压缩数据,并确定第一压缩率包括:将第n层数据中的第一数组数据里的每个数组元素对应的数据类型编码按照预先设置的数据类型压缩编码规则转换为压缩数据类型编码;将第一数组数据里的每个数组元素的数据类型对应的字节数据按照预先设置的数据类型压缩关系压缩为压缩数据类型对应的字节数据;所述第一数组数据里的未压缩数据、压缩数据类型编码和压缩数据类型对应的字节数据的组合即为第一数组压缩数据;所述第一数组压缩数据的字节总数和压缩前的第一数组数据字节总数的比值即为第一压缩率。进一步地,所述将第n层数据中的第一数组数据按照第二压缩算法进行压缩,生成第二数组压缩数据,并确定第二压缩率包括:将第n层数据中的第一数组数据对应的类型按照预先设置的数组类型压缩编码规则转换为数组类型编码;提取第一数组数据中每个数组元素对应的数据类型编码作为压缩后的数组数据的数组元素类型编码;将数组数据中每个数组元素的数据类型去除,只保留每个数组元素的字节数据;所述第一数组数据的未压缩数据、数组类型编码、数据元素类型编码、元素个数和每个数组元素对应的字节数据的组合即为第二数组压缩数据;所述第二数组压缩数据的字节总数和压缩前的第二数组数据字节总数的比值即为第二压缩率。进一步地,所述第三压缩算法是将第二数组数据中数据类型和数据值相同的数组元素压缩为一个,其压缩后的格式为压缩数据类型,元素个数和数组元素值的组合包括:将第二数组数据对应的类型按照预先设置的数组类型压缩编码规则转换为数组类型编码;将第二数组数据中的元素个数保留;将第二数组数据中数据类型和数据值相同的数组元素只保留一个;所述第二数组数据的未压缩数据、数组类型编码、数组元素个数和数组元素值的组合即为压缩后的数据。根据本专利技术的另一方面,本专利技术提供一种基于DL/T698.45协议的数据帧压缩系统,所述系统包括:数据采集单元,其用于采集DL/T698.45协议的数据帧,并传输至数据解析单元;数据解析单元,其用于接收DL/T698.45协议的数据帧,并对所述数据帧进行解析,所述解析后的数据有N层,其中,所述解析后的数据包括基础数据和数组数据,所述数组数据包括第一数组数据和第二数组数据,所述第一数组数据是每个数据元素中的数据类型相同,但数据值不同的数据,所述第二数组数据是每个数据元素中的数据类型和数据值都相同,N≥1;第一数据压缩单元,其用于将第n层数据中的基础数据按照第一压缩算法进行压缩,生成第一压缩数据,其中,所述第一压缩算法是指将DL/T698.45协议中数据类型进行重新编码,并将所述数据类型对应的字节进行压缩,其中,n的初始值是1;第二数据压缩单元,其用于将第n层数据中的第一数组数据按照第一压缩算法进行压缩生成第一数组压缩数据,并确定第一压缩率;第本文档来自技高网...

【技术保护点】
1.一种基于DL/T698.45协议的数据帧压缩方法,其特征在于,所述方法包括:/n步骤1、采集DL/T698.45协议的数据帧,并对所述数据帧进行解析,所述解析后的数据有N层,其中,所述解析后的数据包括基础数据和数组数据,所述数组数据包括第一数组数据和第二数组数据,所述第一数组数据是每个数据元素中的数据类型相同,但数据值不同的数据,所述第二数组数据是每个数据元素中的数据类型和数据值都相同,N≥1;/n步骤2、将第n层数据中的基础数据按照第一压缩算法进行压缩,生成第一压缩数据,其中,所述第一压缩算法是指将DL/T698.45协议中数据类型进行重新编码,并将所述数据类型对应的字节进行压缩,其中,n的初始值是1;/n步骤3、将第n层数据中的第一数组数据按照第一压缩算法进行压缩生成第一数组压缩数据,并确定第一压缩率;/n步骤4、将第n层数据中的第一数组数据按照第二压缩算法进行压缩,生成第二数组压缩数据,并确定第二压缩率,其中,所述第二压缩算法是将第一数组数据中的数组元素的数据类型提出作为数组元素类型,其压缩后的格式为压缩数组类型,数据元素类型和所有数组元素的组合;/n步骤5、比较第一压缩率和第二压缩率,当第一压缩率大于第二压缩率,且第一数组压缩数据中存在第二数组数据时,将第一数组压缩数据按照第三压缩算法进行压缩,并将按照第三压缩算法生成的压缩数据作为第二压缩数据;当第一压缩率大于第二压缩率,且第一数组压缩数据中不存在第二数组数据时,将第一数组压缩数据作为第二压缩数据,令n=n+1,其中,所述第三压缩算法是将第二数组数据中数据类型和数据值相同的数组元素压缩为一个,其压缩后的格式为压缩数据类型,元素个数和数组元素值的组合;/n步骤6、比较第一压缩率和第二压缩率,当第一压缩率不大于第二压缩率,且第二数组压缩数据中存在第二数组数据时,将第二数组压缩数据按照第三压缩算法进行压缩,并将按照第三压缩算法生成的压缩数据作为第二压缩数据;当第一压缩率不大于第二压缩率,且第二数组压缩数据中不存在第二数组数据时,将第二数组压缩数据作为第二压缩数据,令n=n+1;/n步骤7、当n>N时,将所述第一压缩数据和第二压缩数据按照在数据帧中的顺序输出,所述输出结果即为采集的数据帧的压缩结果;当n≤N时,返回步骤2。/n...

【技术特征摘要】
1.一种基于DL/T698.45协议的数据帧压缩方法,其特征在于,所述方法包括:
步骤1、采集DL/T698.45协议的数据帧,并对所述数据帧进行解析,所述解析后的数据有N层,其中,所述解析后的数据包括基础数据和数组数据,所述数组数据包括第一数组数据和第二数组数据,所述第一数组数据是每个数据元素中的数据类型相同,但数据值不同的数据,所述第二数组数据是每个数据元素中的数据类型和数据值都相同,N≥1;
步骤2、将第n层数据中的基础数据按照第一压缩算法进行压缩,生成第一压缩数据,其中,所述第一压缩算法是指将DL/T698.45协议中数据类型进行重新编码,并将所述数据类型对应的字节进行压缩,其中,n的初始值是1;
步骤3、将第n层数据中的第一数组数据按照第一压缩算法进行压缩生成第一数组压缩数据,并确定第一压缩率;
步骤4、将第n层数据中的第一数组数据按照第二压缩算法进行压缩,生成第二数组压缩数据,并确定第二压缩率,其中,所述第二压缩算法是将第一数组数据中的数组元素的数据类型提出作为数组元素类型,其压缩后的格式为压缩数组类型,数据元素类型和所有数组元素的组合;
步骤5、比较第一压缩率和第二压缩率,当第一压缩率大于第二压缩率,且第一数组压缩数据中存在第二数组数据时,将第一数组压缩数据按照第三压缩算法进行压缩,并将按照第三压缩算法生成的压缩数据作为第二压缩数据;当第一压缩率大于第二压缩率,且第一数组压缩数据中不存在第二数组数据时,将第一数组压缩数据作为第二压缩数据,令n=n+1,其中,所述第三压缩算法是将第二数组数据中数据类型和数据值相同的数组元素压缩为一个,其压缩后的格式为压缩数据类型,元素个数和数组元素值的组合;
步骤6、比较第一压缩率和第二压缩率,当第一压缩率不大于第二压缩率,且第二数组压缩数据中存在第二数组数据时,将第二数组压缩数据按照第三压缩算法进行压缩,并将按照第三压缩算法生成的压缩数据作为第二压缩数据;当第一压缩率不大于第二压缩率,且第二数组压缩数据中不存在第二数组数据时,将第二数组压缩数据作为第二压缩数据,令n=n+1;
步骤7、当n>N时,将所述第一压缩数据和第二压缩数据按照在数据帧中的顺序输出,所述输出结果即为采集的数据帧的压缩结果;当n≤N时,返回步骤2。


2.根据权利要求1所述的方法,其特征在于,所述将第n层数据中的基础数据按照第一压缩算法进行压缩,生成第一压缩数据包括:
将第n层数据中的基础数据对应的数据类型编码按照预先设置的数据类型压缩编码规则转换为压缩数据类型编码;
将第n层数据中的基础数据中数据类型对应的字节数据按照预先设置的数据类型压缩关系压缩为压缩数据类型对应的字节数据;
所述压缩数据类型编码和压缩数据类型对应的字节数据的组合即为第一压缩数据。


3.根据权利要求1所述的方法,其特征在于,所述将第n层数据中的第一数组数据按照第一压缩算法进行压缩生成第一数组压缩数据,并确定第一压缩率包括:
将第n层数据中的第一数组数据里的每个数组元素对应的数据类型编码按照预先设置的数据类型压缩编码规则转换为压缩数据类型编码;
将第一数组数据里的每个数组元素的数据类型对应的字节数据按照预先设置的数据类型压缩关系压缩为压缩数据类型对应的字节数据;
所述第一数组数据里的未压缩数据、压缩数据类型编码和压缩数据类型对应的字节数据的组合即为第一数组压缩数据;
所述第一数组压缩数据的字节总数和压缩前的第一数组数据字节总数的比值即为第一压缩率。


4.根据权利要求1所述的方法,其特征在于,所述将第n层数据中的第一数组数据按照第二压缩算法进行压缩,生成第二数组压缩数据,并确定第二压缩率包括:
将第n层数据中的第一数组数据对应的类型按照预先设置的数组类型压缩编码规则转换为数组类型编码;
提取第一数组数据中每个数组元素对应的数据类型编码作为压缩后的数组数据的数组元素类型编码;
将数组数据中每个数组元素的数据类型去除,只保留每个数组元素的字节数据;
所述第一数组数据的未压缩数据、数组类型编码、数据元素类型编码、元素个数和每个数组元素对应的字节数据的组合即为第二数组压缩数据;
所述第二数组压缩数据的字节总数和压缩前的第二数组数据字节总数的比值即为第二压缩率。


5.根据权利要求1所述的方法,其特征在于,所述第三压缩算法是将第二数组数据中数据类型和数据值相同的数组元素压缩为一个,其压缩后的格式为压缩数据类型,元素个数和数组元素值的组合包括:
将第二数组数据对应的类型按照预先设置的数组类型压缩编码规则转换为数组类型编码;
将第二数组数据中的元素个数保留;
将第二数组数据中数据类型和数据值相同的数组元素只保留一个;
所述第二数组数据的未压缩数据、数组类型编码、数组元素个数和数组元素值的组合即为压缩后的数据。


6.一种基于DL/T698.45协议的数据帧压缩系统,其特征在于,所述系统包括:

【专利技术属性】
技术研发人员:巫钟兴祝恩国邹和平刘兴奇林繁涛张宇鹏朱子旭韩月许岳楼
申请(专利权)人:中国电力科学研究院有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1