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

一种电表掉电数据快速存储方法与流程

2021-12-15 01:30:00 来源:中国专利 TAG:


1.本发明涉及一种电能表在掉电进入休眠前,快速存储事件记录数据的方法。


背景技术:

2.依据国家电网公司颁布的:q/gdw 10354—2020 智能电能表功能规范的要求,电表停止工作时,要完成存储电压、电流相关的事件记录。记录内容包括:欠压、失压、过压、过流、失流、断相、逆相序等四十余项事件。
3.按照一般处理方式,电能表在判断到掉电后需要先存储已经发生的相关事件记录,然后mcu再进入休眠状态实现降低功耗的目的。但是,这种处理方式在特定工况下存在巨大运行风险。
4.电能表设计的工作方式为,在失去外部电源时,使用整流电解电容的剩余电荷为存储数据等休眠前的所有操作供电,进入低功耗后用电池供电。但是当电能表掉电时,多项事件同时存在,都要结束并写入存贮区的情况下,需要将大量数据多次写入存贮区。此时,电解电容无法满足要求,电池提前介入会大大减小电池的设计工作时长。当电池电量耗尽时会造成写入数据不正确,从而引起运行数据错误的故障。


技术实现要素:

5.为了克服现有技术中上述不足,本发明提供一种能够实现快速写入数据的电表数据快速存储方法。
6.本发明通过以下技术方案来实现:一种电表掉电数据快速存储方法,在ram设置两个连续的数据块a、数据块b,指针pb指向数据块b的起始地址,在非易失性存贮器中开设一个存储区c,用于存放掉电时保存在数据块a、数据b的内容,数据块a的长度固定,数据块a内依次设a1、a2、a3;当电能表判断到掉电时,步骤如下:(1)获取当前时间作为掉电时间加上crc校验码存放在a1处;(2)按照预先设定的顺序逐个对电压、电流等相关事件进行判断,若需要记录则相应的状态字节置成true,否则置成false,随后将这些事件状态字节存于a2处;(3)依照a2当中保存的事件状态字节的顺序和实际状态,依次获取需要存入的数据,若状态字节为true,将对应事件需存储的实时数据存入数据块b中指针pb指向的位置,并累计数据长度l,指针pb指向的新地址为起始位置加l处,若状态字节为false,则不需要存储对应事件数据,数据长度不增加,直到所有事件都处理完成;(4)将数据块b的总长度l存入a3处,并在数据块a的尾部加上整个数据块a的crc校验码;(5)把数据块a和数据块b集中在一起加上crc,存入非易失性存贮器的存储区c当中;
当重新上电后,电能表mcu从休眠模式唤醒,先从非易失性存贮器中恢复数据到数据块a、数据块b当中,恢复过程如下:(1)先读取存储区c中的数据块a,分别验证整个数据块a的crc与a1当中的掉电时间的crc,若两次校验均正确,则根据a3处所保存的数据块b的长度l从存储区c中读取数据块b存储的数据;(2)对获取的数据块b再最后校验一次crc,若校验正确则进行下一步;(3)依照a2当中保存的事件状态字节的顺序和实际状态,依次做事件记录,若状态字节为true,从数据块b当中指针pb指向的位置获取存入的实时数据,并累计数据长度l,指针pb指向的新地址为起始位置加l处,若状态字节为false,则不需要获取对应事件数据,数据长度不增加,直到所有事件都获取完成;(4)完成所有事件的判别后,结束上电时事件记录的补存处理,mcu进入正常的工作状态。
7.本发明在掉电时,在数据块a中存储是否需要写入相关事件的实时数据,并将需要实时写入数据保存于数据块b中,在上电时,再将相关事件记录的数据进行获取。
8.本发明核心方法是在不改变写入速率的前提下通过压缩数据量来实现。在分析一条完整事件记录存储的数据发现,其中的绝大部分内容为各类电能与最大需量。而这些电能与需量,在非易失性存储器当中有独立的空间来存储,一旦发生变化就会实时保存,并且在掉电期间这类数据不会发生变化。故muc休眠前只需要向非易失性存贮器中写入少量的电压、电流类实时数据即可。
9.完整的事件记录有固定格式且比较长,本发明在掉电时只存了一些会丢失的数据,其他的数据可以在上电补事件记录时,读取实时保存的电量与最大需量来替代掉电时未存的数据源,只要上电时按照格式补充完成后再保存。本发明在不影响数据准确性的前提下,将电压、电流相关的事件记录的存储时间由掉电时转移到上电时。
10.上电时从非易失性存贮器获取电能表休眠前写入的数据块a和数据块b,按照a2处保存事件状态的顺序依次判断事件是否需要记录。若需要记录,则使用掉电事件和数据块b中的实时数据来完成事件记录,否则就跳过该事件直到所有事件均处理完成。
11.本发明的有益效果在于:本发明通过数据存储结构以及方法的改进,实现了在掉电时只需要存储少量电压、电流类实时数据,不影响数据准确性,在上电时也能快速获取,本发明能够实现掉电数据快速存储。
附图说明
12.图1是发明的数据存储结构示意图。
具体实施方式
13.下面结合附图和具体实施方式对发明作进一步详细说明。
14.一种电表掉电数据快速存储方法,如图1所示,在电能表mcu的ram中设置两个连续的数据块a、数据块b,指针pb指向数据块b的起始地址,在非易失性存贮器中开设一个存储区c,用于存放掉电时保存在数据块a、数据b的内容,数据块a的长度固定,数据块b的长度不固定。数据块a内依次设a1、a2、a3;
当电能表判断到掉电时,步骤如下:(1)获取当前时间作为掉电时间加上crc校验码存放在a1处。
15.(2)掉电时需要记录四十余项事件,这些事件已经预先设定好顺序,电能表程序按照该顺序逐个对电压、电流等相关事件进行判断,若需要记录则相应的状态字节置成true,否则置成false,随后将这些事件状态字节存于a2处。
16.(3)依照a2当中保存的事件状态字节的顺序和实际状态,依次获取需要存入的数据,若状态字节为true,将对应事件需存储的实时数据存入数据块b中指针pb指向的位置,并累计数据长度l,指针pb指向的新地址为起始位置加l处,若状态字节为false,则不需要存储对应事件数据,数据长度不增加,直到所有事件都处理完成。
17.比如总共有n个事件,掉电时有事件1、事件2、事件4和事件n需要记录,其余事件不需要。在a2处的n个事件状态字节除了第1,2,4,n四个字节为true外,其余均为false。起初指针pb指向数据块b起始地址,数据块b总长度l为0,然后按照事件状态字节的顺序收集数据块b需存的内容。
18.事件1为true,将需要存储的实时数据l1个字节数据存入指针pb指向的地址,总长度l增加l1个字节(l=0 l1),pb指向新地址:数据块b起始地址 l;事件2为true,将需要存储的的l2个字节数据存入指针pb指向的地址,总长度l增加l2个字节(l=l1 l2),pb指向新地址:数据块b起始地址 l;事件3为false,不需要向数据块b存入数据,总长度l增加0个字节(l=l1 l2 0),pb指向新地址:数据块b起始地址 l(不变);事件4为true,将要存的l4个字节数据存入指针pb指向的地址,总长度l增加l4个字节(l=l1 l2 l4),pb指向新地址:数据块b起始地址 l;
……
事件n为true,将要存的ln个字节数据存入指针pb指向的地址,总长度l增加ln个字节(l=l1 l2 l4 ln),pb指向新地址:数据块b起始地址 l。
19.如此,对应事件需存储的实时数据均存入于数据块b中,数据b的长度为l。
20.(4)将数据块b的总长度l存入a3处,并在数据块a的尾部加上整个数据块a的crc校验码。
21.(5)把数据块a和数据块b集中在一起加上crc,存入非易失性存贮器的存储区c当中。
22.至此,便完成掉电时的数据存储工作。
23.当重新上电后,电能表mcu从休眠模式唤醒,先从非易失性存贮器中恢复数据到数据块a、数据块b当中,恢复过程如下:(1)先读取存储区c中的数据块a,分别验证整个数据块a的crc与a1当中的掉电时间的crc,若两次校验均正确,则根据a3处所保存的数据块b的长度l从存储区c中读取数据块b存储的数据。否则认为数据非法,不做事件记录。
24.(2)对获取的数据块b再最后校验一次crc,若校验正确则进行下一步。
25.(3)依照a2当中保存的事件状态字节的顺序和实际状态,依次做事件记录。重新上电后,指针pb重新指向数据块b的起始地址,依照a2当中保存的事件状态字节的顺序和实际状态,依次做事件记录。若状态字节为true,程序从数据块b当中指针pb指向的位置获取存
入的实时数据,并累计数据长度l,指针pb指向的新地址为起始位置加l处,若状态字节为false,则不需要获取对应事件数据,数据长度不增加,直到所有事件都获取完成。即程序获取在掉电时存储于数据块b中的电压、电流类实时数据,并结合从其他地方保存的电能与需量数据一起完成相应的事件记录。
26.(4)完成所有事件的判别后,结束上电时事件记录的补存处理,mcu进入正常的工作状态。
27.分析一条完整事件记录存储的数据发现,其中的绝大部分内容为各类电能与最大需量。而这些电能与需量,在非易失性存储器当中有独立的空间来存储,一旦发生变化就会实时保存。并且在掉电期间这类数据不会发生变化,因此可以在上电补事件记录时,读取实时保存的电量与最大需量来替代掉电时未存的数据源。
28.本发明在掉电时,在数据块a中存储是否需要写入相关事件的实时数据,并将需要实时写入数据保存于数据块b中,在上电时,再将相关事件记录的数据进行获取。
29.本发明核心方法是在不改变写入速率的前提下通过压缩数据量来实现。分析事件记录相关数据发现,绝大部分为各类电能与最大需量,而这些数据都是有实时存储的,并且在掉电期间并不会发生变化。故muc休眠前只需要向非易失性存贮器中写入少量的电压、电流类实时数据即可。
30.本发明还在于在不影响数据准确性的前提下,将电压、电流相关的事件记录的存储时间由掉电时转移到上电时。完整的事件记录有固定格式且比较长,本发明在掉电时只存了一些会丢失的数据,在上电补事件记录时,读取实时保存的电量与最大需量来替代掉电时未存的数据源,按照格式补充完成后再保存。上电时从非易失性存贮器获取电能表休眠前写入的数据块a和数据块b,按照a2处保存事件状态的顺序依次判断事件是否需要记录。若需要记录,则使用掉电事件和数据块b中的实时数据来完成事件记录,否则就跳过该事件直到所有事件均处理完成。
31.本发明通过数据存储结构以及方法的改进,实现了在掉电时只需要存储少量电压、电流类实时数据,不影响数据准确性,在上电时也能快速获取,本发明能够实现掉电数据快速存储。
再多了解一些

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

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

相关文献