一种通信数据压缩、解压方法、装置及系统与流程

文档序号:16381903发布日期:2018-12-22 09:33阅读:269来源:国知局
一种通信数据压缩、解压方法、装置及系统与流程

本发明涉及一种通信数据压缩及解压方法,更具体涉及一种通信数据压缩、解压方法、装置及系统。

背景技术

配电网wams(wideareameasurementsystem,广域监测系统)是应用于配电网的广域监测系统,采用同步相量测量技术,通过在各配电线路出线首端布置配电线路pdc(phasordataconcentrator,相量数据集中器),在配电线路各段布置配电线路pmu(phasormeasurementunit,同步相量测量单元),实现对配电线路同步相量及配电网主要数据的实时高速率采集。配电网wams系统包括用于数据采集的pmu设备,用于数据压缩及发送的pdc设备或者nic(networkinterfacecontroller,通信适配器)设备;然后pmu将采集的数据发送给pdc或者nic,pdc或者nic,将pmu采集的数据进行压缩后发送给配电网wams系统中的wams主站。通常情况下,配电网wams采用的通信规约为:gbt26865.2-2011电力系统实时动态监测系统第2部分:数据传输协议。配电网wams的通信系统具有以下特点:通信网络结构复杂,通信终端节点数量众多;通信距离较短;通信数据量大。为了满足配电网wams的建设中对通信系统的要求,多种电力系统通信方式需要配合使用。

但是,由于pdc或者nic是通过光纤与pmu连接,通信频率可以达到每秒100帧,但是,pdc或者nic向wams主站发送数据的无线网络系统的传输速率低于每秒100帧,因此,会导致pdc或者nic在传输的单位容量的数据中所包含的信息量过少,进而导致信息传送效率较低。



技术实现要素:

本发明所要解决的技术问题在于提供了一种通信数据压缩、解压方法、装置及系统,以提高信息传送效率。

本发明是通过以下技术方案解决上述技术问题的:

第一方面,本发明实施例提供了一种通信数据压缩方法,应用于配电网wams系统中向主站发送数据的数据发送设备,所述方法包括:

a:接收wams系统中的wams主站发送的配置帧,接收各个pmu单元发送的数据帧;将所述数据帧分割成至少两个数据帧集合;

b:针对每一个数据帧集合,将所述数据帧集合中的第一个数据帧作为当前数据帧,判断当前数据帧是否为本轮压缩的第一帧数据;

c:若是,将所述当前数据帧的sync字段的数值改为预设字段,并将压缩计数字count_byte的值设置为0;将所述当前数据帧存储到缓存数组temp首端的data_frame1段,判断本轮压缩的压缩耗时是否大于或等于预设时限t;若本轮压缩的压缩耗时大于或等于预设时限t,执行步骤f,若本轮压缩的压缩耗时小于预设时限t,将所述当前数据帧的下一帧作为当前数据帧,并返回执行所述b步骤;

d:若否,将压缩计数字count_byte的当前值与预设步长之和作为所述压缩计数字的当前值;根据所述当前数据帧的相量与所述当前数据帧的前一数据帧对应相量的区别,对所述当前数据帧进行变量压缩得到变量段δdata_frame;

e:根据所述压缩计数字count_byte判断本轮压缩所压缩的数据帧是否达到压缩上限;若本轮压缩所压缩的数据帧达到压缩上限,执行步骤f;若本轮压缩所压缩的数据帧未达到压缩上限,判断本轮压缩的压缩耗时是否大于或等于预设时限t;若本轮压缩的压缩耗时大于或等于预设时限t,执行步骤f,若本轮压缩的压缩耗时小于预设时限t,将所述当前数据帧的下一帧作为当前数据帧,返回执行所述步骤b;

f:在所述当前数据帧为本轮压缩的第一帧,且本轮压缩的压缩耗时大于或等于预设时限t时,将所述data_frame1,所述压缩计数字count_byte的组合作为压缩后的数据发送至wams系统中用于接收数据发送设备所发送的数据的主站;在除所述当前数据帧为本轮压缩的第一帧,且本轮压缩的压缩耗时大于或等于预设时限t时以外的情况下,将所述data_frame1,所述压缩计数字count_byte以及所述变量段δdata_frame的组合作为压缩后的数据发送至wams系统中用于接收数据发送设备所发送的数据的主站。

可选的,所述数据发送设备至少包括:pdc单元和nic单元中的一种。

可选的,所述步骤a,包括:

接收各个pmu单元发送的,依据配置帧将自身采集的线路数据生成的数据帧。

可选的,所述根据所述当前数据帧的相量与所述当前数据帧的前一数据帧对应相量的区别,对所述当前数据帧进行变量压缩得到变量段δdata_frame,包括:

d1:将当前数据帧中包含的相量数目n除以j,得到a组相量,和余数b个相量,且b小于j;

d2:从a组相量中的第一组相量开始,将所述第一组向量作为当前组向量,针对当前组相量中的每一个相量,将所述相量的幅值与所述当前数据帧的前一数据帧的对应相量的幅值进行比较,得到第一幅值变化量;将所述当前数据帧的每一个相量的角度与所述当前数据帧的前一数据帧的每一个对应相量的角度进行比较,得到第一角度变化量,根据所述第一幅值变化量和所述第一角度变化量生成第一变量标识;将所述第一幅值变化量和所述第一角度变化量合成为第一变量;

d3:将所述当前组相量对应的第一变量标识存储到标识数组flag中;将所述第一变量存储到变量数组data中;然后将当前组相量的下一组相量作为当前组相量,并返回执行所述d2步骤,直至a组相量都被处理;

d4:针对b个相量中的每一个相量,将所述相量的幅值与所述当前数据帧的前一数据帧的对应相量的幅值进行比较,得到第二幅值变化量;将所述相量的角度与所述当前数据帧的前一数据帧的对应相量的角度进行比较,得到第二角度变化量;根据所述第二幅值变化量和所述第二角度变化量生成第二变量标识,将所述第二变量标识存储到标识数组flag中;将所述第二幅值变化量和所述第二角度变化量合成为第二变量;将所述第二变量存储到变量数组data中;

d5将所述标识数组flag和所述变量数组data组成变量段δdata_frame。

可选的,所述将所述相量的幅值与所述当前数据帧的前一数据帧的对应相量的幅值进行比较,得到第一幅值变化量;将所述当前数据帧的每一个相量的角度与所述当前数据帧的前一数据帧的每一个对应相量的角度进行比较,得到第一角度变化量,根据所述第一幅值变化量和所述第一角度变化量生成第一变量标识,包括:

1)、设k为计数,初值为0,判断k是否小于j:

2)、若是,将当前数据帧的每一个相量的幅值r1与所述当前数据帧的前一数据帧的每一个对应相量的幅值p1的差值h1作为第一幅值变化量;将当前数据帧的每一个相量的角度r2与所述当前数据帧的前一数据帧的每一个对应相量的角度p2的差值h2作为第一角度变化量;并判断h1和h2的绝对值是否均小于8;

3)、若h1和h2的绝对值均小于8,为h1和h2各分配0.5个字节的存储空间,更新第一变量标识sign[k]为0x00;判断h1的值是否为负,若h1的值为负,将h1的值更新为h1与8之和,并判断h2的值是否为负;若h1的值为正,判断h2的值是否为负,若h2的值为负,将h2的值更新为h2与8之和;将h1和h2存储到缓存数组one中;

4)、若h1和h2的绝对值不是均小于8,判断h1和h2的绝对值是否均小于128;

5)、若h1和h2的绝对值均小于128,为h1和h2各分配1个字节的存储空间,更新第一变量标识sign[k]为0x01;判断h1的值是否为负,若h1的值为负,将h1的值更新为h1与128之和,并判断h2的值是否为负;若h1的值为正,执行所述判断h2的值是否为负的步骤,若h2的值为负,将h2的值更新为h2与128之和;将h1和h2存储到缓存数组two中;

6)、若h1和h2的绝对值不是均小于128,判断h1和h2的绝对值是否均小于2048;

7)、若h1和h2的绝对值均小于2048,为h1和h2各分配1.5个字节的存储空间,更新第一变量标识sign[k]为0x02;判断h1的值是否为负,若h1的值为负,将h1的值更新为h1与2048之和,并判断h2的值是否为负;若h1的值为正,执行所述判断h2的值是否为负的步骤;若h2的值为负,将h2的值更新为h2与2048之和;将h1和h2存储到缓存数组three中;

8)、若h1和h2的绝对值不是均小于2048,更新第一变量标识sign[k]为=0x03,然后将r1,r2存储到缓存数组four中;

9)、将k的值更新为k+1,并返回执行所述步骤1);直至所述当前组向量中的每一个向量都被处理;

10)、当k的值大于或等于j时,执行所述d3步骤。

可选的,所述将所述当前组相量对应的第一变量标识存储到标识数组flag中,包括:

将当前组相量中的每一个相量对应的第一变量标识存储到临时标识数组sign中,然后将当前组的各个相量对应的第一变量标识的集合存储到标识数组flag中。

可选的,所述预设步长为1。

可选的,所述预设字段为:0xaa63。

本发明实施例还提供了一种通信数据解压方法,应用于wams系统中接收数据发送设备所发送数据的主站,所述方法包括:

g:接收所述数据发送设备发送的与所述数据帧集合对应的压缩后的数据帧;

h:判断所述数据帧的sync字段是否为预设字段,若否,返回执行所述g步骤;若是,执行i步骤;

i:将压缩计数字count_byte之后的l个字节的数据,顺序放入标识数组flag,将l个字节之后的数据放入变量数组data;

j:从所述标识数组flag中顺序取出j个标识放入数组sign中,然后依照sign内容,顺序读取所述变量数组data中对应长度的数据,并根据与所述变量数组data对应的数据帧的前一数据帧的相量,还原出与依照sign内容读取的数据所对应的原始相量,将所述原始相量顺序存放入数组full_data;

k:从所述标识数组flag中顺序取出b个标识放入数组sign中,然后依照sign内容,顺序读取所述变量数组data中对应长度的数据,并根据与所述变量数组data对应的数据帧的前一数据帧的相量,还原出与依照sign内容读取的数据所对应的原始相量,将所述原始相量顺序存放入数组full_data;

l:根据配置帧和第一帧数据帧生成除相量以外的其他字段,将所生成的其他字段与数组full_data中的数据组合生成完整数据帧。

可选的,所述方法还包括:

判断得到的解压后的数据帧是否有错误或者漏发,如果是,向所述数据发送设备发送补发命令,以使所述数据发送设备调取相应错误或者漏发数据帧。

本发明实施例还提供了一种通信数据压缩装置,应用于配电网wams系统中向主站发送数据的数据发送设备,所述装置包括:

第一接收模块,用于接收wams系统中的wams主站发送的配置帧,接收各个pmu单元发送的数据帧;将所述数据帧分割成至少两个数据帧集合,其中,所述配置帧中包含数据a和b;

第一判断模块,用于针对每一个数据帧集合,将所述数据帧集合中的第一个数据帧作为当前数据帧,判断当前数据帧是否为本轮压缩的第一帧数据;

第一设置模块,用于在所述第一判断模块的判断结果为是的情况下,将所述当前数据帧的sync字段的数值改为预设字段,并将压缩计数字count_byte的值设置为0;将所述当前数据帧存储到缓存数组temp首端的data_frame1段,判断本轮压缩的压缩耗时是否大于或等于预设时限t;若本轮压缩的压缩耗时大于或等于预设时限t,触发第二设置模块,若本轮压缩的压缩耗时小于预设时限t,将所述当前数据帧的下一帧作为当前数据帧,并触发第一判断模块;

压缩模块,用于在所述第一判断模块的判断结果为否的情况下,将压缩计数字count_byte的当前值与预设步长之和作为所述压缩计数字的当前值;根据所述当前数据帧的相量与所述当前数据帧的前一数据帧对应相量的区别,对所述当前数据帧进行变量压缩得到变量段δdata_frame;

第二判断模块,用于根据所述压缩计数字count_byte判断本轮压缩所压缩的数据帧是否达到压缩上限;若本轮压缩所压缩的数据帧达到压缩上限,执行步骤f;若本轮压缩所压缩的数据帧未达到压缩上限,判断本轮压缩的压缩耗时是否大于或等于预设时限t;若本轮压缩的压缩耗时大于或等于预设时限t,触发第二设置模块,若本轮压缩的压缩耗时小于预设时限t,将所述当前数据帧的下一帧作为当前数据帧,触发所述第一判断模块;

第二设置模块,用于在所述当前数据帧为本轮压缩的第一帧,且本轮压缩的压缩耗时大于或等于预设时限t时,将所述data_frame1,所述压缩计数字count_byte的组合作为压缩后的数据发送至wams系统中用于接收数据发送设备所发送的数据的主站;在除所述当前数据帧为本轮压缩的第一帧,且本轮压缩的压缩耗时大于或等于预设时限t时以外的情况下,将所述data_frame1,所述压缩计数字count_byte以及所述变量段δdata_frame的组合作为压缩后的数据发送至wams系统中用于接收数据发送设备所发送的数据的主站。

可选的,所述数据发送设备至少包括:pdc单元和nic单元中的一种。

可选的,所述第一接收模块,还用于:

接收各个pmu单元发送的,依据配置帧将自身采集的线路数据生成的数据帧。

可选的,所述压缩模块,还用于:

d1:将当前数据帧中包含的相量数目n除以j,得到a组相量,和余数b个相量,且b小于j;

d2:从a组相量中的第一组相量开始,将所述第一组向量作为当前组向量,针对当前组相量中的每一个相量,将所述相量的幅值与所述当前数据帧的前一数据帧的对应相量的幅值进行比较,得到第一幅值变化量;将所述当前数据帧的每一个相量的角度与所述当前数据帧的前一数据帧的每一个对应相量的角度进行比较,得到第一角度变化量,根据所述第一幅值变化量和所述第一角度变化量生成第一变量标识;将所述第一幅值变化量和所述第一角度变化量合成为第一变量;

d3:将所述当前组相量对应的第一变量标识存储到标识数组flag中;将所述第一变量存储到变量数组data中;然后将当前组相量的下一组相量作为当前组相量,并返回执行所述d2步骤,直至a组相量都被处理;

d4:针对b个相量中的每一个相量,将所述相量的幅值与所述当前数据帧的前一数据帧的对应相量的幅值进行比较,得到第二幅值变化量;将所述相量的角度与所述当前数据帧的前一数据帧的对应相量的角度进行比较,得到第二角度变化量;根据所述第二幅值变化量和所述第二角度变化量生成第二变量标识,将所述第二变量标识存储到标识数组flag中;将所述第二幅值变化量和所述第二角度变化量合成为第二变量;将所述第二变量存储到变量数组data中;

d5:将所述标识数组flag和所述变量数组data组成变量段δdata_frame。

可选的,压缩模块,还用于:

1)、设k为计数,初值为0,判断k是否小于j:

2)、若是,将当前数据帧的每一个相量的幅值r1与所述当前数据帧的前一数据帧的每一个对应相量的幅值p1的差值h1作为第一幅值变化量;将当前数据帧的每一个相量的角度r2与所述当前数据帧的前一数据帧的每一个对应相量的角度p2的差值h2作为第一角度变化量;并判断h1和h2的绝对值是否均小于8;

3)、若h1和h2的绝对值均小于8,为h1和h2各分配0.5个字节的存储空间,更新第一变量标识sign[k]为0x00;判断h1的值是否为负,若h1的值为负,将h1的值更新为h1与8之和,并判断h2的值是否为负;若h1的值为正,判断h2的值是否为负,若h2的值为负,将h2的值更新为h2与8之和;将h1和h2存储到缓存数组one中;

4)、若h1和h2的绝对值不是均小于8,判断h1和h2的绝对值是否均小于128;

5)、若h1和h2的绝对值均小于128,为h1和h2各分配1个字节的存储空间,更新第一变量标识sign[k]为0x01;判断h1的值是否为负,若h1的值为负,将h1的值更新为h1与128之和,并判断h2的值是否为负;若h1的值为正,执行所述判断h2的值是否为负的步骤,若h2的值为负,将h2的值更新为h2与128之和;将h1和h2存储到缓存数组two中;

6)、若h1和h2的绝对值不是均小于128,判断h1和h2的绝对值是否均小于2048;

7)、若h1和h2的绝对值均小于2048,为h1和h2各分配1.5个字节的存储空间,更新第一变量标识sign[k]为0x02;判断h1的值是否为负,若h1的值为负,将h1的值更新为h1与2048之和,并判断h2的值是否为负;若h1的值为正,执行所述判断h2的值是否为负的步骤;若h2的值为负,将h2的值更新为h2与2048之和;将h1和h2存储到缓存数组three中;

8)、若h1和h2的绝对值不是均小于2048,更新第一变量标识sign[k]为=0x03,然后将r1,r2存储到缓存数组four中;

9)、将k的值更新为k+1,并返回执行所述步骤1);直至所述当前组向量中的每一个向量都被处理;

10)、当k的值大于或等于j时,执行所述d3步骤。

可选的,压缩模块,还用于:

将当前组相量中的每一个相量对应的第一变量标识存储到临时标识数组sign中,然后将当前组的各个相量对应的第一变量标识的集合存储到标识数组flag中。

可选的,所述预设步长为1。

可选的,所述预设字段为:0xaa63。

本发明实施例还提供了一种通信数据解压装置,应用于wams系统中接收数据发送设备所发送数据的主站,所述装置包括:

第二接收模块,用于接收所述数据发送设备发送的与所述数据帧集合对应的压缩后的数据帧;

第三判断模块,用于判断所述数据帧的sync字段是否为预设字段,若否,触发所述第二接收模块;若是,触发存储模块;

存储模块,用于将压缩计数字count_byte之后的l个字节的数据,顺序放入标识数组flag,将l个字节之后的数据放入变量数组data;

从所述标识数组flag中顺序取出j个标识放入数组sign中,然后依照sign内容,顺序读取所述变量数组data中对应长度的数据,并根据与所述变量数组data对应的数据帧的前一数据帧的相量,还原出与依照sign内容读取的数据所对应的原始相量,将所述原始相量顺序存放入数组full_data;

解压模块,用于从所述标识数组flag中顺序取出b个标识放入数组sign中,然后依照sign内容,顺序读取所述变量数组data中对应长度的数据,并根据与所述变量数组data对应的数据帧的前一数据帧的相量,还原出与依照sign内容读取的数据所对应的原始相量,将所述原始相量顺序存放入数组full_data;

组合模块,用于根据配置帧和第一帧数据帧生成除相量以外的其他字段,将所生成的其他字段与数组full_data中的数据组合生成完整数据帧。

可选的,所述装置还包括:第四判断模块,用于:

判断得到的解压后的数据帧是否有错误或者漏发,如果是,向所述数据发送设备发送补发命令,以使所述数据发送设备调取相应错误或者漏发数据帧。

本发明实施例还提供了一种通信数据压缩及解压系统,所述系统包括:

基于上述任一项所述的通信数据压缩装置,和基于上述任一项所述的通信数据解压装置。

本发明相比现有技术具有以下优点:

应用本发明实施例,根据所述当前数据帧的相量与所述当前数据帧的前一数据帧对应相量的区别,对所述当前数据帧进行变量压缩,仅保留每一轮压缩中的第一帧数据帧,然后根据第一帧数据帧之后的数据帧中的相量的区别,进行数据压缩,相量之间的区别所占用的存储空间小于相量所占用的存储空间,因此可以减少数据帧对应的数据量,提高了单位容量的数据中含有的信息量,提高了信息发送效率。

附图说明

图1为本发明实施例提供的一种通信数据压缩方法的流程示意图;

图2为本发明实施例提供的一种配电网wams系统的结构示意图;

图3为本发明实施例提供的一种配电网wams系统的数据交换示意图;

图4为本发明实施例提供的一种通信数据压缩方法的原理示意图;

图5为本发明实施例提供的一种通信数据压缩方法中变量标识的生成原理示意图;

图6为本发明实施例提供的一种通信数据压缩方法所压缩后的数据的结构示意图;

图7为本发明实施例提供的一种通信数据解压方法的流程示意图;

图8为本发明实施例提供的一种通信数据解压方法的原理示意图;

图9为本发明实施例提供的一种通信数据压缩装置的结构示意图;

图10为本发明实施例提供的一种通信数据解压装置的结构示意图;

图11为本发明实施例提供的一种通信数据压缩及解压系统的结构示意图。

具体实施方式

下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。

为解决现有技术问题,本发明实施例提供了一种通信数据压缩、解压方法、装置及系统。

第一方面,下面首先就本发明实施例提供的一种通信数据压缩方法进行介绍。

首先说明的是,本发明实施例提供的一种通信数据压缩方法,优选适用于应用于配电网wams系统中向主站发送数据的数据发送设备,且所述数据发送设备至少包括:pdc单元和nic单元中的一种。

图1为本发明实施例提供的一种通信数据压缩方法的流程示意图,如图1所示,所述方法包括:

s101:接收wams系统中的wams主站发送的配置帧,接收各个pmu单元发送的数据帧;将所述数据帧分割成至少两个数据帧集合,其中,所述配置帧中包含数据a和b。

具体的,可以接收各个pmu单元发送的,依据配置帧将自身采集的线路数据生成的数据帧。

示例性的,图2为本发明实施例提供的一种配电网wams系统的结构示意图;图3为本发明实施例提供的一种配电网wams系统的数据交换示意图;如图2-3所示,pdc设备通过以太网从pmu设备中获取数据帧,然后将数据帧压缩后,通过无线网络中的专用vpn将压缩后的数据帧发送至wams系统主站。在另外一种应用场景中,nic设备从pmu设备中获取数据帧,然后将数据帧压缩后,通过无线网络中的专用vpn将压缩后的数据帧发送至wams系统主站。数据帧的具体传输步骤如图3所示,pmu设备每隔jms向pdc设备或者nic设备发送一次数据帧data,pdc设备或者nic每隔n*jms将n*jms内接收的n个数据帧压缩后发送至wams系统主站,通常情况下,可将pdc设备或者nic设备将n*jms内接收的n个数据帧压缩的过程称为一轮压缩。

示例性的,wams系统中的wams主站会将预先设置好的配置帧发送至各个数据发送设备,其中配置帧中包括每一数据帧中的每一个相量分组中包含的相量的数量a,以及该数据帧中未被分组的相量的数量b。例如,一个数据帧中包含了18个相量,a的值为4,即将每四个相量分成一组,然后得到四组相量。还剩余两个相量,这两个相量即为未被分组的b个相量。

如果本步骤得到了3个数据帧集合,数据帧集合-1中包含的数据帧为帧-1-1、帧-1-2、帧-1-3、帧-1-4、帧-1-5、帧-1-6;数据帧集合-2中包含的数据帧为帧-2-1、帧-2-2、帧-2-3、帧-2-4、帧-2-5、帧-2-6;数据帧集合-3中包含的数据帧为帧-3-1、帧-3-2、帧-3-3、帧-3-4、帧-3-5、帧-3-6。

s102:针对每一个数据帧集合,将所述数据帧集合中的第一个数据帧作为当前数据帧,判断当前数据帧是否为本轮压缩的第一帧数据;若是,执行s103步骤;若否,执行s104步骤;

由s101步骤可知,pdc设备或者nic每隔n*jms将n*jms内接收的n个数据帧压缩后发送至wams系统主站,因此,需要判断pdc设备或者nic设备所接收的当前帧,帧-1-1,是否为本轮压缩的第一帧数据,如果是第一帧数据,开始本轮压缩,执行s103步骤;如果不是本轮压缩的第一帧数据,执行s104步骤。

s103:将所述当前数据帧的sync字段的数值改为预设字段,并将压缩计数字count_byte的值设置为0;将所述当前数据帧存储到缓存数组temp首端的data_frame1段,判断本轮压缩的压缩耗时是否大于或等于预设时限t;若本轮压缩的压缩耗时大于或等于预设时限t,执行步骤s106,若本轮压缩的压缩耗时小于预设时限t,将所述当前数据帧的下一帧作为当前数据帧,并返回执行所述s102步骤。

具体的,所述预设字段可以为:0xaa63。

示例性的,以针对数据帧集合-1的压缩作为第一轮压缩。在现有的wams系统中,数据帧的字段数值是按照gbt26865.2-2011的规定执行,数据帧的sync字段数值为0xaa03,在本发明实施例中将每轮压缩通信的第一帧数据帧的sync改为0xaa63加以区分;同时,将本轮压缩的压缩计数字count_byte的值设置为0,再将当前帧得到内容,帧-1-1,存储到缓存数组temp首端的data_frame1段中。然后,将数据压缩单价从开始接收数据帧集合-1的时刻开始到当前时刻之间的时长作为本轮压缩的压缩耗时,然后判断本轮压缩的压缩耗时是否大于或等于预设时限t;若本轮压缩的压缩耗时大于或等于预设时限t,执行步骤s106,若本轮压缩的压缩耗时小于预设时限t,将0所述当前数据帧的下一帧,,帧-1-2,作为当前数据帧,并返回执行所述s102步骤。

需要说明的是,sync字段也可以被称为同步字段。

s104:将压缩计数字count_byte的当前值与预设步长之和作为所述压缩计数字的当前值;根据所述当前数据帧的相量与所述当前数据帧的前一数据帧对应相量的区别,对所述当前数据帧进行变量压缩得到变量段δdata_frame;

具体的,根据所述当前数据帧的相量与所述当前数据帧的前一数据帧对应相量的区别,对所述当前数据帧进行变量压缩得到变量段δdata_frame可以包括:d1:将当前数据帧中包含的相量数目n除以j,得到a组相量,和余数b个相量,且b小于j;d2:从a组相量中的第一组相量开始,针对当前组相量中的每一个相量,将所述相量的幅值与所述当前数据帧的前一数据帧的对应相量的幅值进行比较,得到第一幅值变化量;将所述当前数据帧的每一个相量的角度与所述当前数据帧的前一数据帧的每一个对应相量的角度进行比较,得到第一角度变化量;d3:将所述当前组相量对应的第一变量标识存储到标识数组flag中;将所述第一变量存储到变量数组data中;然后将当前组相量的下一组相量作为当前组相量,并返回执行所述d2步骤,直至a组相量都被处理;d4:针对b个相量中的每一个相量,将所述相量的幅值与所述当前数据帧的前一数据帧的对应相量的幅值进行比较,得到第二幅值变化量;将所述相量的角度与所述当前数据帧的前一数据帧的对应相量的角度进行比较,得到第二角度变化量;根据所述第二幅值变化量和所述第二角度变化量生成第二变量标识,将所述第二变量标识存储到标识数组flag中;将所述第二幅值变化量和所述第二角度变化量合成为第二变量;将所述第二变量存储到变量数组data中;d5将所述标识数组flag和所述变量数组data组成变量段δdata_frame。

具体的,所述将所述相量的幅值与所述当前数据帧的前一数据帧的对应相量的幅值进行比较,得到第一幅值变化量;将所述当前数据帧的每一个相量的角度与所述当前数据帧的前一数据帧的每一个对应相量的角度进行比较,得到第一角度变化量,根据所述第一幅值变化量和所述第一角度变化量生成第一变量标识,可以包括:1)、设k为计数,初值为0,判断k是否小于j:2)、若是,将当前数据帧的每一个相量的幅值r1与所述当前数据帧的前一数据帧的每一个对应相量的幅值p1的差值h1作为第一幅值变化量;将当前数据帧的每一个相量的角度r2与所述当前数据帧的前一数据帧的每一个对应相量的角度p2的差值h2作为第一角度变化量;并判断h1和h2的绝对值是否均小于8;3)、若h1和h2的绝对值均小于8,为h1和h2各分配0.5个字节的存储空间,更新第一变量标识sign[k]为0x00;判断h1的值是否为负,若h1的值为负,将h1的值更新为h1与8之和,并判断h2的值是否为负;若h1的值为正,判断h2的值是否为负,若h2的值为负,将h2的值更新为h2与8之和;将h1和h2存储到缓存数组one中;4)、若h1和h2的绝对值不是均小于8,判断h1和h2的绝对值是否均小于128;5)、若h1和h2的绝对值均小于128,为h1和h2各分配1个字节的存储空间,更新第一变量标识sign[k]为0x01;判断h1的值是否为负,若h1的值为负,将h1的值更新为h1与128之和,并判断h2的值是否为负;若h1的值为正,执行所述判断h2的值是否为负的步骤,若h2的值为负,将h2的值更新为h2与128之和;将h1和h2存储到缓存数组two中;6)、若h1和h2的绝对值不是均小于128,判断h1和h2的绝对值是否均小于2048;7)、若h1和h2的绝对值均小于2048,为h1和h2各分配1.5个字节的存储空间,更新第一变量标识sign[k]为0x02;判断h1的值是否为负,若h1的值为负,将h1的值更新为h1与2048之和,并判断h2的值是否为负;若h1的值为正,执行所述判断h2的值是否为负的步骤;若h2的值为负,将h2的值更新为h2与2048之和;将h1和h2存储到缓存数组three中;8)、若h1和h2的绝对值不是均小于2048,更新第一变量标识sign[k]为=0x03,然后将r1,r2存储到缓存数组four中;9)、将k的值更新为k+1,并返回执行所述步骤1);直至所述当前组向量中的每一个向量都被处理;10)、当k的值大于或等于j时,执行所述d3步骤。

具体的,可以所述将所述当前组相量对应的第一变量标识存储到标识数组flag中,可以包括:将当前组相量中的每一个相量对应的第一变量标识存储到临时标识数组sign中,然后将当前组的各个相量对应的第一变量标识的集合存储到标识数组flag中。

图4为本发明实施例提供的一种通信数据压缩方法的原理示意图,如图4所示,如果当前数据帧中包括的相量的数量为18,且a为4,b为2,则将当前数据帧中包含的18个相量按照顺序分为4组。设i为计数量,代表已经处理了多少组的相量,例如i=0时,开始对第一组相量中的四个相量进行变量压缩,然后在进行每一组相量的压缩时,设j为计数量,j代表已经处理的当前组相量中的多少个相量。

第一组中的各个相量的编号为相量-1-1、相量-1-2、相量-1-3、相量-1-4;类似的,第二组中的各个相量的编号为相量-2-1、相量-2-2、相量-2-3、相量-2-4;第三组中的各个相量的编号为相量-3-1、相量-3-2、相量-3-3、相量-3-4;第四组中的各个相量的编号为相量-4-1、相量-4-2、相量-4-3、相量-4-4;剩余的两个相量可以为相量-b-1、相量-b-2。

先对第一组相量中的第一个相量进行变量压缩,将相量-1-1的幅值与,帧-1-1对应位置的幅值进行比较,例如可以求差得出帧-1-2的第一组相量中的相量-1-1,与帧-1-1的第一组相量中的相量-1-1之间的幅值的差,将该差作为第一幅值变化量;然后,将相量-1-1的角度与,帧-1-1对应位置的角度进行比较,例如可以求差得出帧-1-2的第一组相量中的相量-1-1,与帧-1-1的第一组相量中的相量-1-1之间的角度的差,将该差作为第一角度变化量。

然后将数据帧-1-2的第一组向量中的向量-1-1作为当前相量,根据当前相量的第一角度变化量和第一幅值变化量生成第一变量标识。

图5为本发明实施例提供的一种通信数据压缩方法中变量标识的生成原理示意图,如图5所示,过程可以为:设k为计数量,k的值小于j,即小于4。首先判断k是否小于4,若不小于4,说明在对第一组的各个向量进行第一变量标识的生成过程已经结束,需要将第一组中的各个相量的第一变量标识组合起来,进而进行存储。当k的值大于或等于j时,根据第一幅值变化量和所述第一角度变化量生成第一变量标识,将第一变量标识存储到标识数组flag中;将第一幅值变化量和所述第一角度变化量合成为第一变量;将第一变量存储到变量数组data中;将标识数组flag和所述变量数组data组成变量段δdata_frame。

当k小于4时,说明需要生成第一组中的相量的第一变量标识。例如,将数据帧-1-2的相量-1-1的幅值r1与所述数据帧-1-2的数据帧-1-1的对应相量,相量-1-1的幅值p1的差值h1作为幅值变化量;将数据帧-1-2的相量-1-1的角度r2与所述数据帧-1-2的数据帧-1-1的对应相量,相量-1-1的角度p2的差值h2作为角度变化量;并判断h1和h2的绝对值是否均小于8。

若h1和h2的绝对值均小于8,为h1和h2各分配0.5个字节的存储空间,更新第一变量标识sign[k]为0x00;判断h1的值是否为负,若h1的值为负,将h1的值更新为h1与8之和,并判断h2的值是否为负;若h1的值为正,判断h2的值是否为负,若h2的值为负,将h2的值更新为h2与8之和;将h1和h2存储到缓存数组one中。

若h1和h2的绝对值不是均小于8,判断h1和h2的绝对值是否均小于128;若h1和h2的绝对值均小于128,为h1和h2各分配1个字节的存储空间,更新第一变量标识sign[k]为0x01;判断h1的值是否为负,若h1的值为负,将h1的值更新为h1与128之和,并判断h2的值是否为负;若h1的值为正,执行所述判断h2的值是否为负的步骤,若h2的值为负,将h2的值更新为h2与128之和;将h1和h2存储到缓存数组two中。

若h1和h2的绝对值不是均小于128,判断h1和h2的绝对值是否均小于2048;若h1和h2的绝对值均小于2048,为h1和h2各分配1.5个字节的存储空间,更新第一变量标识sign[k]为0x02;判断h1的值是否为负,若h1的值为负,将h1的值更新为h1与2048之和,并判断h2的值是否为负;若h1的值为正,执行所述判断h2的值是否为负的步骤;若h2的值为负,将h2的值更新为h2与2048之和;将h1和h2存储到缓存数组three中。

若h1和h2的绝对值不是均小于2048,更新第一变量标识sign[k]为=0x03,然后将r1,r2存储到缓存数组four中;将k的值更新为k+1,并数据帧-1-2的第一组向量中的向量-1-2作为当前相量,进而生成当前相量对应的第一标识。同时,将向量-1-1的缓存数组one、或者缓存数组two、或者缓存数组three中的数据顺序存储到变量数组data中;将sign[k]存储到标识数组flag中。针对当前数据帧,数据帧-1-2中的第一组向量中的每一个向量进行上述处理,进而对,数据帧-1-2中的每一组向量进行上述处理,进而处理完a组相量。最后得到的标识数组flag中顺序存储,数据帧-1-2的第一组相量中的四个向量的第一变量标识、第二组相量中的四个向量的第一变量标识、第三组相量中的四个向量的第一变量标识、第四组相量中的四个向量的第一变量标识。变量数据data中的变量的存储顺序与标识数组flag中的第一变量标识的存储顺序相同,这里不再赘述。

在处理完a组向量后,需要对剩余的2个向量进行处理,在处理过程中生成第二变量标识与生成a组向量中的第一变量标识的过程相同;在处理过程中生成第二变量的过程与生成a组向量中的第一变量的过程相同,这里不再赘述。

然后将数据帧-1-2对应的变量数组data,和标识数组flag组合成数据帧-1-2的变量段δdata_frame2。

需要说明的是,在进行第一变量标识的存储时,以缓存数组one为例,在实际存储过程中,不存在半个字节的内容,为了节省空间,需要将缓存数组one的数据与其它的数据拼接在一起填满一个字节,因此,在本发明实施例中需要有一个字节缓存数组one的0.5个字节的数据,类似的,缓存数组three被分配了三个字节用于存储缓存数组的1.5个字节的数据,其对应的存储空间为three[0]、three[1]、three[2]。

s105:根据所述压缩计数字count_byte判断本轮压缩所压缩的数据帧是否达到压缩上限;若本轮压缩所压缩的数据帧达到压缩上限,执行步骤s106;若本轮压缩所压缩的数据帧未达到压缩上限,判断本轮压缩的压缩耗时是否大于或等于预设时限t;若本轮压缩的压缩耗时大于或等于预设时限t,执行步骤s106,若本轮压缩的压缩耗时小于预设时限t,将所述当前数据帧的下一帧作为当前数据帧,返回执行所述步骤s102。

示例性的,在对数据帧-1-2进行变量压缩后,判断在对数据帧集合-1的压缩过程中所压缩的数据帧的数量是否达到了,可以压缩的数据帧的数量的上限,如果达到上限,停止压缩进程,然后执行s106步骤。

若未达到上限,判断针对数据帧集合-1进行压缩对应的压缩耗时,是否达到了预设时限t,若达到了预设时限t,执行s106步骤;若未达到预设时限t,将数据帧集合-1中数据帧-1-2的下一个数据帧,数据帧-1-30作为当前帧,然后返回执行s102步骤,直至所有的数据帧集合中的数据帧都被压缩。

s106:在所述当前数据帧为本轮压缩的第一帧,且本轮压缩的压缩耗时大于或等于预设时限t时,将所述data_frame1,所述压缩计数字count_byte的组合作为压缩后的数据发送至wams系统中用于接收数据发送设备所发送的数据的主站;在除所述当前数据帧为本轮压缩的第一帧,且本轮压缩的压缩耗时大于或等于预设时限t时以外的情况下,将所述data_frame1,所述压缩计数字count_byte以及所述变量段δdata_frame的组合作为压缩后的数据发送至wams系统中用于接收数据发送设备所发送的数据的主站。

图6为本发明实施例提供的一种通信数据压缩方法所压缩后的数据的结构示意图;如图6所示,对于本轮压缩而言,data_frame1用于存储本轮压缩的第一帧数据,即数据帧-1-1;

压缩计数字count_byte,用于存储每一轮压缩中包含的数据帧的数量;δdata_frame2,用于存储本轮压缩过程中的数据帧-1-2的被压缩后的数据,即对应的第一变量以及第一变量标识;依次类推。

需要说明的是,以δdata_frame2为例,在进行数据帧-1-2的变量段组合时,可以将数据帧-1-2的第一变量标识数组flag存储在δdata_frame2的前半部分,然后依次存储各个相量的第一变量:phasors1、phasors2、phasors3,依此类推。

应用本发明图1所示实施例,根据所述当前数据帧的相量与所述当前数据帧的前一数据帧对应相量的区别,对所述当前数据帧进行变量压缩,仅保留每一轮压缩中的第一帧数据帧,然后根据第一帧数据帧之后的数据帧中的相量的区别,进行数据压缩,相量之间的区别所占用的存储空间小于相量所占用的存储空间,提高了单位容量的数据中含有的信息量,提高了信息发送效率

另外,应用本发明图1所示实施例,还可以将数据及时的发送出去,避免数据的积压。

第二方面,与本发明图1所示实施例相对应,本发明实施例还提供了一种通信数据解压方法。

需要说明的是,本发明实施例提供的一种通信数据解压方法,优选适用于应用于wams系统中接收数据发送设备所发送数据的主站。

图7为本发明实施例提供的一种通信数据解压方法的流程示意图,图8为本发明实施例提供的一种通信数据解压方法的原理示意图;如图7和图8所示,所述方法包括:

s701:接收所述数据发送设备发送的与所述数据帧集合对应的压缩后的数据帧。

示例性的,接收的压缩后的数据如图6所示。

s702:判断所述数据帧的sync字段是否为预设字段,若否,返回执行所述s701步骤;若是,执行s703步骤。

判断接收的数据的sync字段是否为0xaa63,若是,说明接收的数据是按照本发明实施例所述方法进行压缩后的数据,执行s703步骤;若否,说明接收的数据不是按照本发明实施例所述方法进行压缩后的数据,跳出循环,进行下一轮数据的接收。

s703:将压缩计数字count_byte之后的l个字节的数据,顺序放入标识数组flag,将l个字节之后的数据放入变量数组data;

示例性的,将接收的数据帧的count_byte之后的l个字节的数据作为变量标识存储到标识数组flag中。该数据帧的后续的数据作为变量数据存储到变量数组data中。

可以理解的是,l的大小是系统预先设定的,其值可以为a+1。

s704:从所述标识数组flag中顺序取出j个标识放入数组sign中,然后依照sign内容,顺序读取所述变量数组data中对应长度的数据,并根据与所述变量数组data对应的数据帧的前一数据帧的相量,还原出与依照sign内容读取的数据所对应的原始相量,将所述原始相量顺序存放入数组full_data。

示例性的,从标识数组flag中顺序取出4个标识放入数组sign中,然后顺序读取变量数组data中对应长度的数据。

根据与所述变量数组data对应的数据帧的前一数据帧的相量,还原出与依照sign内容读取的数据所对应的原始相量,将所述原始相量顺序存放入数组full_data。可以理解的是,还原原始相量的过程与本发明实施例中s104步骤的变量压缩过程为对偶过程,本发明实施例不再对其进行赘述。

s705:从所述标识数组flag中顺序取出b个标识放入数组sign中,然后依照sign内容,顺序读取所述变量数组data中对应长度的数据,并根据与所述变量数组data对应的数据帧的前一数据帧的相量,还原出与依照sign内容读取的数据所对应的原始相量,将所述原始相量顺序存放入数组full_data。

示例性的,从所述标识数组flag中顺序取出2个标识放入数组sign中,然后依照sign内容,顺序读取所述变量数组data中对应长度的数据,并根据与所述变量数组data对应的数据帧的前一数据帧的相量,还原出与依照sign内容读取的数据所对应的原始相量,将所述原始相量顺序存放入数组full_data,即存放在s704步骤还原出的原始相量的后面。另外,可以理解的是,a、b的大小均为wams系统中的主站向数据发送设备发送的配置帧中包含的数据。

s706:根据配置帧和第一帧数据帧生成除相量以外的其他字段,将所生成的其他字段与数组full_data中的数据组合生成完整数据帧。

需要强调的是,本步骤对应的过程为现有技术,本发明实施例不在对其进行赘述。

应用本发明图7所示实施例,可以对压缩后的数据进行解压。

在本发明实施例的一种具体实施方式中,所述方法还包括:

s707(图中未示出):判断得到的解压后的数据帧是否有错误或者漏发,如果是,向所述数据发送设备发送补发命令,以使所述数据发送设备调取相应错误或者漏发数据帧。

示例性的,wams主站判断解压后的数据帧是否有错误,例如,可以判断数据帧对应的值是否明显超出合理的范围,或者明显出现了未检测的数据项目,或者数据项目之间的数据发生了颠倒等;或者根据预设的数据帧的标识信息,判断接收的数据帧的数据是否与预设的标识信息相匹配,如果是,说明数据帧发生了漏发现象,然后,向数据发送设备发送补发命令,例如,可以根据发生错误的或者漏发的数据帧的标识信息,将补发指令发送给对应的数据发送设备。

应用本发明上述实施例,可以避免数据错误或者漏发导致的数据报错。

第三方面,与本发明实施例第一方面相对应,本发明实施例还提供了一种通信数据压缩装置,应用于配电网wams系统中向主站发送数据的数据发送设备。

图9为本发明实施例提供的一种通信数据压缩装置的结构示意图,如图9所示,所述装置包括:

第一接收模块901,用于接收wams系统中的wams主站发送的配置帧,接收各个pmu单元发送的数据帧;将所述数据帧分割成至少两个数据帧集合;

第一判断模块902,用于针对每一个数据帧集合,将所述数据帧集合中的第一个数据帧作为当前数据帧,判断当前数据帧是否为本轮压缩的第一帧数据;

第一设置模块903,用于在所述第一判断模块902的判断结果为是的情况下,将所述当前数据帧的sync字段的数值改为预设字段,并将压缩计数字count_byte的值设置为0;将所述当前数据帧存储到缓存数组temp首端的data_frame1段,判断本轮压缩的压缩耗时是否大于或等于预设时限t;若本轮压缩的压缩耗时大于或等于预设时限t,触发第二设置模块905,若本轮压缩的压缩耗时小于预设时限t,将所述当前数据帧的下一帧作为当前数据帧,并触发第一判断模块902;

压缩模块904,用于在所述第一判断模块902的判断结果为否的情况下,将压缩计数字count_byte的当前值与预设步长之和作为所述压缩计数字的当前值;根据所述当前数据帧的相量与所述当前数据帧的前一数据帧对应相量的区别,对所述当前数据帧进行变量压缩得到变量段δdata_frame;

第二判断模块905,用于根据所述压缩计数字count_byte判断本轮压缩所压缩的数据帧是否达到压缩上限;若本轮压缩所压缩的数据帧达到压缩上限,执行步骤f;若本轮压缩所压缩的数据帧未达到压缩上限,判断本轮压缩的压缩耗时是否大于或等于预设时限t;若本轮压缩的压缩耗时大于或等于预设时限t,触发第二设置模块,若本轮压缩的压缩耗时小于预设时限t,将所述当前数据帧的下一帧作为当前数据帧,触发所述第一判断模块902;

第二设置模块906,用于在所述当前数据帧为本轮压缩的第一帧,且本轮压缩的压缩耗时大于或等于预设时限t时,将所述data_frame1,所述压缩计数字count_byte的组合作为压缩后的数据发送至wams系统中用于接收数据发送设备所发送的数据的主站;在除所述当前数据帧为本轮压缩的第一帧,且本轮压缩的压缩耗时大于或等于预设时限t时以外的情况下,将所述data_frame1,所述压缩计数字count_byte以及所述变量段δdata_frame的组合作为压缩后的数据发送至wams系统中用于接收数据发送设备所发送的数据的主站。

应用本发明图9所示实施例,根据所述当前数据帧的相量与所述当前数据帧的前一数据帧对应相量的区别,对所述当前数据帧进行变量压缩,仅保留每一轮压缩中的第一帧数据帧,然后根据第一帧数据帧之后的数据帧中的相量的区别,进行数据压缩,相量之间的区别所占用的存储空间小于相量所占用的存储空间,提高了单位容量的数据中含有的信息量,提高了信息发送效率。

在本发明实施例的一种具体实施方式中,所述数据发送设备至少包括:pdc单元和nic单元中的一种。

在本发明实施例的一种具体实施方式中,所述第一接收模块901,还用于:

接收各个pmu单元发送的,依据配置帧将自身采集的线路数据生成的数据帧。

在本发明实施例的一种具体实施方式中,所述压缩模块904,还用于:

d1:将当前数据帧中包含的相量数目n除以j,得到a组相量,和余数b个相量,且b小于j;

d2:从a组相量中的第一组相量开始,将所述第一组向量作为当前组向量,针对当前组相量中的每一个相量,将所述相量的幅值与所述当前数据帧的前一数据帧的对应相量的幅值进行比较,得到第一幅值变化量;将所述当前数据帧的每一个相量的角度与所述当前数据帧的前一数据帧的每一个对应相量的角度进行比较,得到第一角度变化量;

d3:将所述当前组相量对应的第一变量标识存储到标识数组flag中;将所述第一变量存储到变量数组data中;然后将当前组相量的下一组相量作为当前组相量,并返回执行所述d2步骤,直至a组相量都被处理;

d4:针对b个相量中的每一个相量,将所述相量的幅值与所述当前数据帧的前一数据帧的对应相量的幅值进行比较,得到第二幅值变化量;将所述相量的角度与所述当前数据帧的前一数据帧的对应相量的角度进行比较,得到第二角度变化量;根据所述第二幅值变化量和所述第二角度变化量生成第二变量标识,将所述第二变量标识存储到标识数组flag中;将所述第二幅值变化量和所述第二角度变化量合成为第二变量;将所述第二变量存储到变量数组data中;

d5将所述标识数组flag和所述变量数组data组成变量段δdata_frame。

在本发明实施例的一种具体实施方式中,压缩模块904,还用于:

1)、设k为计数,初值为0,判断k是否小于j:

2)、若是,将当前数据帧的每一个相量的幅值r1与所述当前数据帧的前一数据帧的每一个对应相量的幅值p1的差值h1作为第一幅值变化量;将当前数据帧的每一个相量的角度r2与所述当前数据帧的前一数据帧的每一个对应相量的角度p2的差值h2作为第一角度变化量;并判断h1和h2的绝对值是否均小于8;

3)、若h1和h2的绝对值均小于8,为h1和h2各分配0.5个字节的存储空间,更新第一变量标识sign[k]为0x00;判断h1的值是否为负,若h1的值为负,将h1的值更新为h1与8之和,并判断h2的值是否为负;若h1的值为正,判断h2的值是否为负,若h2的值为负,将h2的值更新为h2与8之和;将h1和h2存储到缓存数组one中;

4)、若h1和h2的绝对值不是均小于8,判断h1和h2的绝对值是否均小于128;

5)、若h1和h2的绝对值均小于128,为h1和h2各分配1个字节的存储空间,更新第一变量标识sign[k]为0x01;判断h1的值是否为负,若h1的值为负,将h1的值更新为h1与128之和,并判断h2的值是否为负;若h1的值为正,执行所述判断h2的值是否为负的步骤,若h2的值为负,将h2的值更新为h2与128之和;将h1和h2存储到缓存数组two中;

6)、若h1和h2的绝对值不是均小于128,判断h1和h2的绝对值是否均小于2048;

7)、若h1和h2的绝对值均小于2048,为h1和h2各分配1.5个字节的存储空间,更新第一变量标识sign[k]为0x02;判断h1的值是否为负,若h1的值为负,将h1的值更新为h1与2048之和,并判断h2的值是否为负;若h1的值为正,执行所述判断h2的值是否为负的步骤;若h2的值为负,将h2的值更新为h2与2048之和;将h1和h2存储到缓存数组three中;

8)、若h1和h2的绝对值不是均小于2048,更新第一变量标识sign[k]为=0x03,然后将r1,r2存储到缓存数组four中;

9)、将k的值更新为k+1,并返回执行所述步骤1);直至所述当前组向量中的每一个向量都被处理;

10)、当k的值大于或等于j时,执行所述d3步骤。

在本发明实施例的一种具体实施方式中,压缩模块904,还用于:

将当前组相量中的每一个相量对应的第一变量标识存储到临时标识数组sign中,然后将当前组的各个相量对应的第一变量标识的集合存储到标识数组flag中。

在本发明实施例的一种具体实施方式中,所述预设步长为1。

在本发明实施例的一种具体实施方式中,所述预设字段为:0xaa63。

第四方面,与本发明实施例第二方面相对应,本发明实施例还提供了一种通信数据解压装置。

需要说明的是,本发明实施例提供的一种通信数据解压装置,优选适用于wams系统中接收数据发送设备所发送数据的主站。

图10为本发明实施例提供的一种通信数据解压装置的结构示意图,如图10所示,所述装置包括:

第二接收模块1001,用于接收所述数据发送设备发送的与所述数据帧集合对应的压缩后的数据帧;

第三判断模块1002,用于判断所述数据帧的sync字段是否为预设字段,若否,触发所述第二接收模块1001;若是,触发存储模块1003;

存储模块1003,用于将压缩计数字count_byte之后的l个字节的数据,顺序放入标识数组flag,将l个字节之后的数据放入变量数组data;

从所述标识数组flag中顺序取出j个标识放入数组sign中,然后依照sign内容,顺序读取所述变量数组data中对应长度的数据,并根据与所述变量数组data对应的数据帧的前一数据帧的相量,还原出与依照sign内容读取的数据所对应的原始相量,将所述原始相量顺序存放入数组full_data;

解压模块1004,用于从所述标识数组flag中顺序取出b个标识放入数组sign中,然后依照sign内容,顺序读取所述变量数组data中对应长度的数据,并根据与所述变量数组data对应的数据帧的前一数据帧的相量,还原出与依照sign内容读取的数据所对应的原始相量,将所述原始相量顺序存放入数组full_data;

组合模块1005,用于根据配置帧和第一帧数据帧生成除相量以外的其他字段,将所生成的其他字段与数组full_data中的数据组合生成完整数据帧。

应用本发明图10所示实施例,可以对压缩后的数据进行解压。

在本发明实施例的一种具体实施方式中,在本发明图10所示实施例的基础上,本发明实施例还增加了:第四判断模块1006(图中未示出),用于:

判断得到的解压后的数据帧是否有错误或者漏发,如果是,向所述数据发送设备发送补发命令,以使所述数据发送设备调取相应错误或者漏发数据帧。

在本发明实施例的一种具体实施方式中,所述系统包括:

基于本发明实施例第三方面提供的通信数据压缩装置,和本发明第四方面提供的通信数据解压装置。

应用本发明上述实施例,可以避免数据错误或者漏发导致的数据报错。

第五方面,为解决现有技术问题,本发明实施例还提供了一种通信数据压缩及解压系统。

图11为本发明实施例提供的一种通信数据压缩及解压系统的结构示意图。,如图11所示,所述系统包括:

基于本发明实施例第三方面所述的通信数据压缩装置1101,和基于本发明实施例第四方面所述的通信数据解压装置1102。

应用本发明图11所示实施例,可以对通信数据进行压缩和解压。

第六方面,为解决现有技术问题,与本发明实施例第五方面提供的一种通信数据压缩及解压系统相对应,本发明实施例还提供了一种通信方法,应用于wams系统,方法包括:

应用本发明实施例第一方面所述的数据压缩方法进行数据压缩并将压缩后的数据发送出去;接收压缩后的数据,并应用本发明实施例第二方面所述的数据解压方法进行数据的解压。

应用本发明上述实施例,可以实现数据的压缩和解压。

可以理解的是,压缩和解压共同构成整个通讯过程。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1