本发明涉及一种电能表的升级方法。
背景技术:
1、固件升级功能是海外ami系统中电能表运维过程的重要组成部分。海外的ami系统用户在设备已经安装并运行的情况下,经常需要对电能表的功能进行调整或增加,此时就需要对电能表进行固件升级。
2、为了提高升级效率,通常采用广播方式对电能表进行升级,即先将电能表的固件保存到集中采集设备(简称dcu),然后dcu通过通信模块,例如电力线载波(plc)、微功率无线(rf)等,将固件分包以广播的方式下发到每个电能表。但是实际的广播升级效果受现场供电质量和通信效率的影响很大,主要体现在以下两个方面:
3、1、在供电质量较差的场景下,电能表可能会频繁停电,导致接收数据丢失。
4、2、受现场实际环境影响,通信质量可能会不稳定,出现随机通信延迟或数据丢包的情况。
5、因此,在供电质量和通信效率不理想的情况下,电能表接收到的固件数据包会出现随机丢失的问题。即使经过多轮广播,也难以保证所有的电能表接收到完整的数据包,从而降低了广播升级的效率和成功率。
技术实现思路
1、本发明提出了一种电能表广播升级方法,其目的是:解决电能表广播升级效率和成功率较低的问题。
2、本发明技术方案如下:
3、一种电能表广播升级方法,待下发升级的固件被分为若干数据包,本方法包括如下步骤:
4、步骤1、统计单播下发和广播下发的传输性能数据;
5、步骤2、初始化升级缓存矩阵r,所述升级缓存矩阵r用于记录每台电能表中每个数据包的接收情况,升级缓存矩阵r的各行与各电能表一一对应,升级缓存矩阵r的各列与各数据包一一对应;
6、步骤3、根据传输性能数据和升级缓存矩阵r确定本轮中将要下发的数据包以及每个数据包的下发方式;
7、步骤4、执行本轮数据包的下发,并根据下发的情况更新升级缓存矩阵r;
8、步骤5、根据升级缓存矩阵r的当前值确定是否所有电能表都已完成升级,如果都已完成升级则结束,否则返回执行步骤3。
9、作为所述电能表广播升级方法的进一步改进:步骤1中的传输性能数据包括各电能表的单播延迟,以及对所有电能表进行广播时的广播延迟和丢包率。
10、作为所述电能表广播升级方法的进一步改进:第i台电能表的单播延迟的统计方式为:
11、
12、其中,ns表示统计的单播总次数,表示第n次单播的通信延迟时间;
13、对所有电能表进行广播时的广播延迟的定义为:自dcu下发广播命令开始到所有电能表接收到命令所经过的时间,以lb表示;
14、对所有电能表进行广播时的丢包率pb的统计方式为:
15、
16、其中,nm为电能表总数,ci表示第i台电能表未接收到广播命令的次数,cb表示广播命令的总次数。
17、作为所述电能表广播升级方法的进一步改进:升级缓存矩阵r为nm×bt的矩阵形式,nm为电能表总数,bt为数据包总数;
18、升级缓存矩阵r中第i行第j列的元素表示第i台电能表接收第j个数据包的情况,如果值为1表示已接收,如果值为0表示未接收;
19、步骤2中初始化时,升级缓存矩阵r所有元素值均为0。
20、作为所述电能表广播升级方法的进一步改进:步骤3具体包括以下过程:
21、步骤3-1、确定每个数据包本轮的下发方式;
22、步骤3-2、确定升级缓存矩阵r中本轮的下发参考行;
23、步骤3-3、遍历下发参考行中的每一个元素,将所有值为0的元素所对应的数据包都作为本轮待下发的数据包,再根据步骤3-1中确定的各数据包的下发方式确定每个待下发的数据包的下发方式。
24、作为所述电能表广播升级方法的进一步改进:所述步骤3-1的具体过程为:
25、先求出升级缓存矩阵r中每一列当前的单播总延迟:
26、
27、其中,表示升级缓存矩阵r中第j列的单播总延迟,为第i台电能表的单播延迟;
28、对于升级缓存矩阵r中的每一列即每个数据包:
29、如果为0表示所有电能表都已经接收到第j列对应的数据包,第j个数据包不需要下发;
30、如果则进一步确定第j个数据包的下发方式:若则第j个数据包的下发方式为广播,否则为单播,其中lb表示对所有电能表进行广播时的广播延迟,pb表示对所有电能表进行广播时的丢包率。
31、作为所述电能表广播升级方法的进一步改进:所述步骤3-2的具体过程为:
32、先求出升级缓存矩阵r中每一行的元素值的和:
33、
34、表示第i行的元素值的和;
35、找到所有的的最小值所对应的行,将该行作为所述下发参考行。
36、作为所述电能表广播升级方法的进一步改进:步骤4中,依次下发步骤3中选择的待下发的数据包;
37、对于各待下发的数据包:如果数据包的下发方式为单播,则将数据包以单播的形式下发给下发参考行对应的电能表,并将下发参考行中该数据包对应的元素的值置为1;如果数据包的下发方式为广播,则将数据包以广播的形式下发给所有的电能表,并将该数据包对应的升级缓存矩阵r中的列中的所有元素的值都置为1。
38、作为所述电能表广播升级方法的进一步改进,步骤5的具体过程为:
39、步骤5-1、遍历升级缓存矩阵r的各行:如果某一行所有的元素值均为1,则对该行对应的电能表进行抄表,确定该电能表是否已经接收到所有数据包:
40、如果已经接收到所有数据包,则对该电能表下发固件激活命令,并标记该电能表、不再采集该电能表的数据包接收情况,同时将该行从升级缓存矩阵r删除并更新电能表总数nm;
41、如果该电能表没有接收到所有数据包,则将没有接收到的数据包所对应的升级缓存矩阵r中该行中的元素值置为0;
42、步骤5-2、如果升级缓存矩阵r的行数为0,表示所有电能表都已经完成固件激活,升级任务结束;否则表示需要继续下发,返回执行步骤3。
43、作为所述电能表广播升级方法的进一步改进:如果升级任务被中断,则在恢复执行升级任务时从步骤5开始。
44、相对于现有技术,本发明具有以下有益效果:
45、本发明构建了升级缓存矩阵对各电能表的接收情况进行记录,并根据升级缓存矩阵的实时值以及通信延迟、丢包率等传输性能数据动态调整升级策略,根据升级情况不断改变数据包的下发方式和优先级,显著提高了升级的效率和成功率。
1.一种电能表广播升级方法,待下发升级的固件被分为若干数据包,其特征在于本方法包括如下步骤:
2.如权利要求1所述的电能表广播升级方法,其特征在于:步骤1中的传输性能数据包括各电能表的单播延迟,以及对所有电能表进行广播时的广播延迟和丢包率。
3.如权利要求2所述的电能表广播升级方法,其特征在于:第i台电能表的单播延迟的统计方式为:
4.如权利要求2所述的电能表广播升级方法,其特征在于:升级缓存矩阵r为nm×bt的矩阵形式,nm为电能表总数,bt为数据包总数;升级缓存矩阵r中第i行第j列的元素表示第i台电能表接收第j个数据包的情况,如果值为1表示已接收,如果值为0表示未接收;
5.如权利要求4所述的电能表广播升级方法,其特征在于:步骤3具体包括以下过程:
6.如权利要求5所述的电能表广播升级方法,其特征在于:所述步骤3-1的具体过程为:
7.如权利要求5所述的电能表广播升级方法,其特征在于:所述步骤3-2的具体过程为:
8.如权利要求5所述的电能表广播升级方法,其特征在于:步骤4中,依次下发步骤3中选择的待下发的数据包;
9.如权利要求4至8任一所述的电能表广播升级方法,其特征在于,步骤5的具体过程为:
10.如权利要求9所述的电能表广播升级方法,其特征在于:如果升级任务被中断,则在恢复执行升级任务时从步骤5开始。