一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

电能表的数据配置方法、电能表及可读存储介质与流程

2022-03-05 10:17:01 来源:中国专利 TAG:


1.本发明涉及电能表领域,尤其涉及一种电能表的数据配置方法、电能表及可读存储介质。


背景技术:

2.目前,上位机在对电能表进行参数设置,需要传输比较大的数据包时,由于电能表内设的ram(random access memory,随机存取存储器)内存的限制,一次只能接收比较小的数据包(而如果要加大电能表内设的ram内存,将会大大提高电能表的造价成本),因此,对于比较大的数据包,上位机往往会通过分包的方式进行传输,即,通过将一个比较大的数据总包划分成多个比较小的数据分包的形式,依次发送至电能表,以实现数据的正常传输。
3.但是,目前在进行数据分包的传输过程中,经常会发生由于网络通讯信号不稳定等原因,而导致的数据传输异常情况,例如电能表接收的数据分包中缺失了一个数据分包,以及各数据分包的顺序错乱等接收异常,而如果接收到的数据分包不完整或顺序错乱,将使得电能表的参数配置错误,进而导致电表的功能运行出现异常。
4.而如何避免电能表的参数配置错误,而导致功能运行出现异常的情况,已成为亟待解决的技术问题。


技术实现要素:

5.本发明实施例提供一种电能表的数据配置方法、电能表及可读存储介质,本发明旨在解决现有对电能表进行参数配置时,易出现参数配置错误,而导致的电能表功能运行异常的技术问题。
6.为实现上述目的,本发明提供一种电能表的数据配置方法,所述电能表的数据配置方法包括:
7.接收上位机按时序发送的各数据分包,并将各所述数据分包依次存储在缓存区;
8.校验缓存区的各所述数据分包是否存在接收异常;
9.若确定存在接收异常,则将缓存区的各所述数据分包进行清理,并发送数据配置失败信息至上位机,以使上位机重新发送所述数据分包;
10.若确定不存在接收异常,则将缓存区的各所述数据分包转移至目的地址存储区进行存储。
11.可选地,所述接收上位机按时序发送的各数据分包的步骤之前包括:
12.判断是否接收到上位机发送的多包标志标识符;
13.若接收到所述多包标志标识符,则确定上位机以分包形式发送数据;
14.所述接收上位机按时序发送的各数据分包的步骤包括:
15.若确定上位机以分包形式发送数据,则接收上位机按时序发送的各数据分包。
16.可选地,所述判断是否接收到上位机发送的多包标志标识符的步骤之后,还包括:
17.若未接收到所述多包标志标识符,则确定上位机以总包形式发送数据;
18.接收上位机发送的数据总包,将所述数据总包直接存储至目的地址存储区。
19.可选地,所述校验缓存区的各所述数据分包是否存在接收异常的步骤之前,还包括:
20.判断是否接收到预设的发送完成标识符;
21.若接收到所述发送完成标识符,则执行:所述校验缓存区的各所述数据分包是否存在接收异常的步骤。
22.可选地,所述数据配置方法还包括:
23.若从接收到最近一次发送的所述数据分包起,预设时长内未接收到所述发送完成标识符,则确定存在接收异常。
24.可选地,所述将缓存区的各所述数据分包转移至目的地址存储区进行存储的步骤包括:
25.将缓存区的各所述数据分包进行拼合,得到数据总包;
26.将所述数据总包转移至目的地址存储区进行存储。
27.可选地,所述校验缓存区的各所述数据分包是否存在接收异常的步骤包括:
28.接收上位机发送的预设的理论校验值;
29.根据缓存区中各所述数据分包的标志位信息,通过预设的校验方式计算得到实际校验值;
30.将所述理论校验值与所述实际校验值进行对比;
31.所述若确定存在接收异常,则将缓存区的各所述数据分包进行清理的步骤包括:
32.若所述理论校验值与所述实际校验值不一致,则将缓存区的各所述数据分包进行清理。
33.可选地,所述将缓存区的各所述数据分包转移至目的地址存储区进行存储的步骤之后包括:
34.发送数据配置成功信息至上位机。
35.本发明还提供了一种电能表,包括存储器、处理器、以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被处理器执行时实现如上述中任一项所述电能表的数据配置方法的步骤。
36.本发明还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述中任一项所述电能表的数据配置方法的步骤。
37.需要说明的是,当面对由于网络通讯信号不稳定等原因,而导致电能表接收的数据分包中缺失了至少一个数据分包情况时,本发明并没有采取通过上位机补发所缺失数据包的方案,而是转而采用将缓存区的各所述数据分包进行清理,并发送数据配置失败信息至上位机,以使上位机重新发送所述数据分包的方法,从而避免数据分包的接收延迟情况导致电能表接收了重复的数据分包,同时需要注意的是,通过上位机将缺失的数据分包重新补发,有可能会导致数据分包存储顺序错乱的问题。
38.本发明并没有采取现有的通过接收上位机按时序发送的各数据分包,并将各所述数据分包依次直接存储至目的地址存储区的方法,从而避免了电能表的参数配置错误,而导致功能运行出现异常的情况。本发明是先通过接收上位机按时序发送的各数据分包,将各所述数据分包依次存储在缓存区,校验缓存区的各所述数据分包是否存在接收异常的步
骤,从而判定是否存在数据分包接收不完整或各数据分包存储的顺序错乱等接收异常的情况,并进一步通过若确定存在接收异常,则将缓存区的各所述数据分包进行清理,并发送数据配置失败信息至上位机,以使上位机重新发送所述数据分包的步骤,从而及时发现数据传输异常,防止由于网络通讯信号不稳定等各种外部干扰因素,而导致电能表所接收的数据分包存在缺失、各数据分包存储顺序错乱的情况,进而避免电能表的参数配置错误而发生电能表的程序跑飞或死机等情况,确保电能表的功能正常运行,再进一步通过若确定不存在接收异常,则将缓存区的各所述数据分包转移至目的地址存储区进行存储的步骤,完成电能表的固件升级或参数更新,实现电能表参数的正确配置。本发明提供了一种新的数据校验机制,克服了现有参数配置方法所存在的缺陷,能保证电能表进行参数配置的正确性和可靠性。
附图说明
39.图1是本发明实施例电能表的结构示意图;
40.图2为本发明电能表的数据配置方法第一实施例的流程示意图;
41.图3为本发明电能表的数据配置方法第二实施例的部分流程示意图;
42.图4为本发明实施例一中电能表的数据配置方法的流程示意图;
43.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
44.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
45.如图1所示,图1是本发明实施例方案涉及的硬件运行环境的电能表结构示意图。该电能表可以包括:处理器1001,例如cpu,网络接口1003,存储器1004,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。网络接口1003可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1004可以是高速ram存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1004可选的还可以是独立于前述处理器1001的存储装置。可以理解的是,电能表应该还包括显示屏,可选地,电能表还可以包括rf(radio frequency,射频)电路、传感器、音频电路、wifi模块等等。
46.本发明提出一种电能表的数据配置方法。
47.参照图2,图2为本发明电能表的数据配置方法第一实施例的流程示意图,所述电能表的数据配置方法包括:
48.步骤s100,接收上位机按时序发送的各数据分包,并将各所述数据分包依次存储在缓存区;
49.其中,上位机在对电能表进行参数设置,需要传输比较大的数据包时,由于电能表内设的ram(random access memory,随机存取存储器)内存的限制,一次只能接收比较小的数据包,因此,对于比较大的数据包,上位机往往会通过分包的方式进行传输,即,通过将一个比较大的数据总包划分成多个比较小的数据分包的形式,依次发送至电能表,以实现数据的正常传输。
50.可以理解的是,上位机可以为包括但不仅限于具有处理数据功能的pc和手机。需要说明的是,在一实施例中,用户可直接通过操控上位机,生成对电能表进行数据配置的相
关数据信息,并转换成符合标准通信协议的、电能表可识别和接收的数据包,发送至电能表,以实现对电能表的固件升级或参数更新。在另一实施例中,用户也可以通过操控与上位机连接的外部设备,生成对电能表进行数据配置的相关数据信息,并发送至上位机,上位机接收该数据信息并转换成符合标准通信协议的、电能表可识别和接收的数据包,并发送至电能表,以实现对电能表的固件升级或参数更新。
51.其中,该缓存区可以指flash缓存。
52.步骤s200,校验缓存区的各所述数据分包是否存在接收异常;
53.其中,本领域技术人员可以理解的是,接收异常包括电能表接收的数据分包中缺失了至少一个数据分包,以及各数据分包的顺序错乱等,而如果电能表接收到的数据分包不完整或顺序错乱,将使得电能表的参数配置错误,进而导致电表的功能运行出现异常。
54.进一步地,所述步骤s200之前,还包括:
55.步骤a,判断是否接收到预设的发送完成标识符;
56.所述步骤s200包括:
57.步骤b,若接收到所述发送完成标识符,则执行:所述校验缓存区的各所述数据分包是否存在接收异常的步骤。
58.需要说明的是,当电能表接收到该预设的发送完成标识符时,则确认数据总包所拆分的多个数据分包,已全部接收完毕。在一实施例中,该预设的发送完成标识符为“last block”,当电能表接收到该“last block”的发送完成标识符时,则确认数据总包所拆分的各个数据分包,已全部接收完毕,此时可以开始校验缓存区的各数据分包是否存在接收异常。
59.进一步地,本发明实施例中的数据配置方法还包括:
60.若从接收到最近一次发送的所述数据分包起,预设时长内未接收到所述发送完成标识符,则确定存在接收异常。
61.可以理解的是,也会由于网络通讯信号不稳定等原因而导致电能表未接收到该发送完成标识符,若未接收到该发送完成标识符,则可确定电能表接收的数据分包在很大程度上会存在接收不完整或存储顺序错乱的情况,从而此时可判定存在接收异常,进而提高电能表参数配置的正确性和稳定性。
62.步骤s300,若确定存在接收异常,则将缓存区的各所述数据分包进行清理,并发送数据配置失败信息至上位机,以使上位机重新发送所述数据分包;
63.其中,该数据配置失败信息中还可以包括使上位机触发产生预警信息的触发指令,以使用户得知上位机此次数据配置失败。
64.步骤s400,若确定不存在接收异常,则将缓存区的各所述数据分包转移至目的地址存储区进行存储。
65.其中,将缓存区的各所述数据分包转移至目的地址存储区进行存储,具体可为:将缓存区的各数据分包进行拷贝后,存储至目的地址存储区,当目的地址存储区将各数据分包存储完毕时,将缓存区的各数据分包进行清空。
66.本实施例并没有采取现有的通过接收上位机按时序发送的各数据分包,并将各所述数据分包依次直接存储至目的地址存储区的方法,从而避免了电能表的参数配置错误,而导致功能运行出现异常的情况。本实施例是先通过接收上位机按时序发送的各数据分
包,将各所述数据分包依次存储在缓存区,校验缓存区的各所述数据分包是否存在接收异常的步骤,从而判定是否存在数据分包接收不完整或各数据分包存储的顺序错乱等接收异常的情况,并进一步通过若确定存在接收异常,则将缓存区的各所述数据分包进行清理,并发送数据配置失败信息至上位机,以使上位机重新发送所述数据分包的步骤,从而及时发现数据传输异常,防止由于网络通讯信号不稳定等各种外部干扰因素,而导致电能表所接收的数据分包存在缺失、各数据分包存储顺序错乱的情况,进而避免电能表的参数配置错误而发生电能表的程序跑飞或死机等情况,确保电能表的功能正常运行,再进一步通过若确定不存在接收异常,则将缓存区的各所述数据分包转移至目的地址存储区进行存储的步骤,完成电能表的固件升级或参数更新,实现电能表参数的正确配置。本实施例提供了一种新的数据校验机制,克服了现有参数配置方法所存在的缺陷,能保证电能表进行参数配置的正确性和可靠性。
67.需要说明的是,当面对由于网络通讯信号不稳定等原因,而导致电能表接收的数据分包中缺失了至少一个数据分包情况时,本实施例并没有采取通过上位机补发所缺失数据包的方案,而是转而采用将缓存区的各所述数据分包进行清理,并发送数据配置失败信息至上位机,以使上位机重新发送所述数据分包的方法,从而避免数据分包的接收延迟情况导致电能表接收了重复的数据分包,同时需要注意的是,通过上位机将缺失的数据分包重新补发,有可能会导致数据分包存储顺序错乱的问题。
68.进一步地,所述将缓存区的各所述数据分包转移至目的地址存储区进行存储的步骤包括:
69.步骤c,将缓存区的各所述数据分包进行拼合,得到数据总包;
70.本领域技术人员可以理解的是,各数据分包存在各对应的标志位,该各标志位存储有顺序编号,例如0、1、2、3
……
,可通过根据各所述数据分包分别所对应的标志位的顺序编号,按照标准拼合规则将缓存区的各所述数据分包进行拼合,得到数据总包。
71.步骤d,将所述数据总包转移至目的地址存储区进行存储。
72.本实施例通过将缓存区的各所述数据分包进行拼合,得到数据总包;从而提高将所述数据总包转移至目的地址存储区进行存储的存储效率,进而提高电能表进行参数配置的配置效率。
73.进一步地,所述将缓存区的各所述数据分包转移至目的地址存储区进行存储的步骤之后,还包括:
74.发送数据配置成功信息至上位机。
75.本实施通过发送数据配置成功信息至上位机的步骤,从而能第一时间反馈至工作人员,电能表的参数已配置成功。
76.进一步地,所述接收上位机按时序发送的各数据分包的步骤之前包括:
77.步骤e,判断是否接收到上位机发送的多包标志标识符;
78.步骤f,若接收到所述多包标志标识符,则确定上位机以分包形式发送数据;
79.其中,若未接收到所述多包标志标识符,则确定上位机是以总包形式发送数据。
80.所述接收上位机按时序发送的各数据分包的步骤包括:
81.步骤h,若确定上位机以分包形式发送数据,则接收上位机按时序发送的各数据分包。
82.需要说明的是,该多包标志标识符为本领域技术人员所预设的,例如该多包标志标识符为“多包标志”。当电能表接收到该预设的多包标志标识符时,则确认上位机是通过分包的方式进行传输,即,通过将一个比较大的数据总包划分成多个比较小的数据分包的形式,依次发送至电能表,以实现数据的正常传输。
83.再进一步地,所述判断是否接收到上位机发送的多包标志标识符的步骤之后,还包括:
84.步骤i,若未接收到所述多包标志标识符,则确定上位机以总包形式发送数据;
85.步骤j,接收上位机发送的数据总包,将所述数据总包直接存储至目的地址存储区。
86.可以理解的是,若电能表未接收到该预设的多包标志标识符时,则确认上位机是通过总包的方式进行传输,即,通过将一个比较小的数据总包直接发送至电能表(未将该数据总包拆分成多个数据分包)。因为数据总包不存在会由于网络通讯信号不稳定等各种外部干扰因素,而导致数据分包缺失、存储顺序错乱的情况,因此可通过直接将所述数据总包直接存储至目的地址存储区,从而在保证电能表的参数配置正确的情况下,提高电能表进行参数的配置效率。
87.进一步地,参照图3,为本发明电能表的数据配置方法第二实施例的部分流程示意图,基于第一实施例,所述步骤s200包括:
88.步骤s210,接收上位机发送的预设的理论校验值;
89.步骤s220,根据缓存区中各所述数据分包的标志位信息,通过预设的校验方式计算得到实际校验值;
90.本领域技术人员可以理解的是,各数据分包存在对应的标志位信息。
91.步骤s230,将所述理论校验值与所述实际校验值进行对比;
92.所述若确定存在接收异常,则将缓存区的各所述数据分包进行清理的步骤包括:
93.步骤s310,若所述理论校验值与所述实际校验值不一致,则将缓存区的各所述数据分包进行清理。
94.其中,若所述理论校验值与所述实际校验值一致,则确定不存在接收异常;若所述理论校验值与所述实际校验值不一致,则确定存在接收异常。
95.在一实施例中,该预设的校验方式为crc(cyclic redundancy check)校验方式。其中,本领域技术人员可以理解的是,crc即循环冗余校验码,是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。例如采用crc16校验方式,其数据校验公式为x16 x12 x5 1,并结合各数据分包的标志位信息进行计算,通过该校验方式,对于2字节的随机数,仅存在1/65536的出错概率,可大大提高数据校验的准确性。又例如,采用crc32校验方式,上位机计算各数据分包的4个字节的校验值,然后再将计算出的该实际校验值与上位机发送的理论校验值进行对比。
96.在另一实施中,该预设的校验方式为:验证数据长度是否正确。实际校验值为数据总包的实际长度,理论校验值为数据总包的理论长度。该预设的校验方式为:根据缓存区中各所述数据分包对应的标志位信息,确定各数据分包的数据长度;根据各数据分包的数据长度,计算得到数据总包的实际长度;将数据总包的实际长度,与上位机发送的预设的数据总包的理论长度进行对比;若所述实际长度与所述理论长度一致,则确定不存在接收异常;
若所述实际长度与所述理论长度不一致,则确定存在接收异常。
97.在又一实施中,该预设的校验方式为:验证各数据分包依次进行存储的顺序是否正确。实际校验值为各数据分包依次进行存储的顺序编号的实际排序,理论校验值为各数据分包依次进行存储的顺序编号的理论排序。该预设的校验方式为:根据缓存区中各所述数据分包对应的标志位信息,确定各数据分包对应的实际顺序编号;根据各数据分包对应的实际顺序编号,以及各数据分包对应的存储位置,确定各数据分包依次进行存储的顺序编号的实际排序;将所述实际排序,与上位机发送的各数据分包依次进行存储的顺序编号的理论排序进行对比;若所述实际排序与所述理论排序一致,则确定不存在接收异常;若所述实际排序与所述理论排序不一致,则确定存在接收异常。
98.其中,本领域技术人员可以理解的是,根据各数据分包在缓存区中对应的存储位置,可以确定各数据分包进行存储的存储顺序。
99.本实施例通过接收上位机发送的预设的理论校验值,根据缓存区中各所述数据分包的标志位信息,通过预设的校验方式计算得到实际校验值;将所述理论校验值与所述实际校验值进行对比的步骤,从而判定是否存在各数据分包接收不完整或各数据分包存储的顺序错乱等接收异常的情况,进而及时发现数据传输异常,防止电能表的参数配置错误而发生电能表的程序跑飞或死机等情况,确保电能表的功能正常运行,进而克服了现有参数配置方法所存在的缺陷。
100.为了便于充分理解本发明,本发明下面列举实施例一,下述实施例一中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受实施例一的限制。
101.请参照图4,图4为本发明实施例一中电能表的数据配置方法的流程示意图。下面为实施例一的具体实施步骤,该实施例一为:
102.(1)电能表判断接收的数据是否为多包数据;
103.其中,根据电能表标准通讯协议,当数据分为多包数据时,会有“多包标志”,根据该“多包标志”,可确定电能表接收的数据为多包数据。
104.(2)依次将多包数据存储到缓存flash中;
105.其中,累计每一包的数据长度,即可得到下一包数据在缓存flash中的存储位置,当接收到所有数据后,即可得到整个数据包的总长度,需要说明的是,如果接收到最后一包数据,电能表会收到“last block”的标志,从而确定所有数据已接收完毕。
106.(3)判断接收到的数据是否完整;
107.其中,计算缓存flash中接收到的数据的crc(cyclic redundancy check),与上位机下发的crc是否相同,如果相同,则电能表可确定接收的数据没问题。
108.(4)将缓存flash中的数据转移到目的地址;
109.其中,此时已知接收到的数据的总长度,将缓存flash中的数据转移到目的地址即可。
110.在常规通讯领域,在应对以上分包情况时,往往会将先接收到的数据包缓存在ram(random access memory,随机存取存储器)中,等待所有的数据包都接收完成后,校验数据是否完整,如果完整则证明成功的接收到了所有的数据。但是在电能表领域,由于电能表的
硬件ram一般较小,故难以做到采用ram进行缓存的方式。本实施例通过将接收到的数据包,先存储在一块缓存flash中,待成功接收到所有数据包之后,再将缓存flash中的数据转移到电表中的目的地址的方法,从而能针对电能表硬件资源较低的不足,使用flash转存,节约资源,进而避免多包数据的接收错误,确保电能表的功能正常运行。
111.本发明还提出一种可读存储介质,其上存储有计算机程序。所述可读存储介质可以是图1的电能表中的存储器1004,也可以是如rom(read-onlymemory,只读存储器)/ram(random access memory,随机存取存储器)、磁碟、光盘中的至少一种,所述存储介质包括若干信息用以使得电能表执行本发明各个实施例所述的方法。
112.本发明存储介质的具体实施例与上述电能表的数据配置方法各实施例基本相同,在此不作赘述。
113.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
114.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
115.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
116.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献