一种电能量脉冲尾数的存储及恢复方法技术

技术编号:37156999 阅读:33 留言:0更新日期:2023-04-06 22:19
本发明专利技术公开了一种电能量脉冲尾数的存储及恢复方法,包括电表开始上电,依据负载电流不同,计量芯片开始计量,产生不同频率的脉冲信号;电表上电时,通过预设的脉冲尾数校验及修复模块进行校验和修复,并将成功修复的脉冲尾数更新至电量脉冲尾数Pulse_Int变量;当电量脉冲尾数变量Pulse_Int大于预设的脉冲常数或者存在其余切换时,立即进行一次电量存储;当表上电后累计的电量脉冲满足存储条件时,调用预设的电量尾数脉冲存储模块,通过当前上电累计脉冲数Pulse_Total确定电量尾数在FLASH存储设备里的存储地址,完成电量尾数脉冲存储,本发明专利技术可以快速定位到尾数脉在FLASH的位置并实现脉冲尾数自恢复,提高了可靠性。提高了可靠性。提高了可靠性。

【技术实现步骤摘要】
一种电能量脉冲尾数的存储及恢复方法


[0001]本专利技术涉及一种电能量脉冲尾数的存储及恢复方法,属于智能电表


技术介绍

[0002]智能电表的推广应用为智能电网的发展以及用电管理模式转变起到了积极的推动作用,但在应用过程中也暴露出若干问题,随着电表运行时间的变长,外部储能元器件失效情况下,现场很多电表都出现了尾数电量丢失问题。
[0003]EEPROM是一种带电可擦可编程只读存储器,其擦除寿命最高为100万次,决定了其不能以较高频率进行数据写操作,电量的存储往往都是以整度电为周期存储在EEPROM中,电量尾数脉冲这些较高频率的数据都是存储在RAM区只在掉电的时候才保存至EEPROM。当电表异常复位或者电能表外部储能设备损坏(电池欠压、法拉电容漏液等)时,都可能导致这些电量尾数脉冲来不及保存而丢失,从而带来损失,影响计量准确性。

技术实现思路

[0004]本专利技术的目的在于克服现有技术中的不足,提供一种电能量脉冲尾数的存储及恢复方法,可以快速定位到尾数脉在FLASH的位置并实现脉冲尾数自恢复,提高了可靠性。
[0005]为达到上述目的,本专利技术是采用下述技术方案实现的:
[0006]第一方面,本专利技术提供了一种电能量脉冲尾数的存储及恢复方法,包括:
[0007]电表开始上电,依据负载电流不同,计量芯片开始计量,产生不同频率的脉冲信号;
[0008]电表上电时,通过预设的脉冲尾数校验及修复模块进行校验和修复,并将成功修复的脉冲尾数更新至电量脉冲尾数Pulse_Int变量;
[0009]电表上电后,执行初始化操作,清零上电累计脉冲数Pulse_Total、上电累计脉冲数备份Pulse_TotalBak两个变量;
[0010]当计量芯片产生一个脉冲时,电表读取计量芯片的能量寄存器并累计脉冲,读取到的脉冲数分别累计到脉冲尾数变量Pulse_Int以及上电累计脉冲数Pulse_Total变量中;
[0011]当电量脉冲尾数变量Pulse_Int大于预设的脉冲常数或者存在其余切换时,立即进行一次电量存储;
[0012]当上电累计脉冲总数Pulse_Total与上一次累计脉冲总数Pulse_TotalBak之间差值达到预设的脉冲尾数分辨率时,调用预设的电量尾数脉冲存储模块,通过当前上电累计脉冲数Pulse_Total确定电量尾数在FLASH存储设备里的存储地址,完成电量尾数脉冲存储。
[0013]进一步的,所述上电累计脉冲数Pulse_Total用于记录电表自上电开始累计的脉冲以及电量尾数脉冲的存储,所述上电累计脉冲数备份Pulse_TotalBak用于记录电表上一次存储电量尾数脉冲时的数值。
[0014]进一步的,所述当电量脉冲尾数变量Pulse_Int大于预设的脉冲常数或者存在其
余切换时,立即进行一次电量存储,包括:
[0015]当电量脉冲尾数变量Pulse_Int大于脉冲常数C或者存在费率切换、日时段表切换、时区切换、功率方向切换的情况时就调用预设的电量存储模块进行一次电量存储,存储完毕后清除Pulse_Int变量并重新计数。
[0016]进一步的,每进行一次电量尾数脉冲存储,存储完毕后需要更新Pulse_TotalBak的值,将Pulse_Total复制给Pulse_TotalBak。
[0017]进一步的,所述通过当前上电累计脉冲数Pulse_Total确定电量尾数在FLASH存储设备里的存储地址,完成电量尾数脉冲存储,包括:
[0018]通过计算(Pulse_Total/C/100)的奇偶性确定存储扇区地址FlashAddr;
[0019]通过计算(Pulse_Total/C%100)得出当前电能量的整数部分,通过计算(Pulse_Total/C%100)*25确定脉冲整数部分所在的偏移地址Offset;
[0020]通过计算(Pulse_Total%C)确定尚未存满1度电的尾数脉冲数,由于1个字节存0.04C个脉冲,通过计算(Pulse_Total%C/0.04C)确定该电量尾数所存的具体字节偏移地址Offset_Byte;
[0021]通过计算(Pulse_Total%C/0.005C)确定该电量尾数在该Offset_Byte字节中的偏移Offset_Bit;
[0022]将Offset_Byte字节的Offset_Bit位清零,直接将0xFF<<Offset_Bit对应数据写入FlashAddr+Offset+Offset_Byte地址。
[0023]进一步的,判断Offset等于0且Offset_Byte以及Offset_Bit都等于0表示存在扇区切换,对上一扇区进行擦除操作。
[0024]进一步的,当一次电量尾数脉冲存储完毕,对电量尾数脉冲备份数据进行更新,并同步刷新CRC校验码,回到正常脉冲累计流程,等待下一次满足电量脉冲尾数存储条件。
[0025]进一步的,所述通过预设的脉冲尾数校验及修复模块进行校验,包括:
[0026]上电后先读取RAM区双备份电量脉冲尾数Pulse_Int值并计算其CRC校验码是否正确,如果两份有一份正确则说明Pulse_Int值可信,跳转至停止修复步骤,不再执行后续校验及修复操作,电表进入正常工作状态,只有当两份数据CRC校验码都不正确时电表才进入电量尾数修复逻辑;
[0027]电表进入电量修复流程,读取当前正向总电能量、当前反向总电能量,计算二者之和即是当前总电能量Pulse_Cur;
[0028]读取上二条掉电记录的数据内容,得到上二次电表掉电恢复时刻正向总电能量、反向总电能能数据,二者之和便是上一次上电时刻总电能量Pulse_Last;如果是第一次掉电,则取Pulse_Last为零;
[0029]计算出上一次工作期间总共走的整数脉冲为Pulse_Total=Pulse_Cur

Pulse_Last,通过该值推算出尾数脉冲存储地址的范围;
[0030]停止修复步骤,包括:尾数脉冲校验通过Pulse_Int可用,不再进行尾数脉冲恢复;
[0031]电表进入电量模块进行电量存储。
[0032]进一步的,所述通过预设的脉冲尾数校验及修复模块进行修复,包括:
[0033]通过脉冲尾数的整数部分按照公式计算出FLASH扇区地址FlashAddr、扇区内的偏移地址Offset;
[0034]Offset后25个字节为不满一度电的脉冲尾数,通过对其分析确定脉冲尾数已经存到的具体字节和具体比特位;
[0035]对Offset后25个字节进行解析,并找出第一个0xFF的位置Byte,再对其上一个字节搜寻最后一个为0的比特位Bit,确定该脉冲尾数Pulse_Flash=(Byte

1)*0.04C+Bit*0.005C;
[0036]读取EEPROM的电量尾数脉冲Pulse_E本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种电能量脉冲尾数的存储及恢复方法,其特征在于,包括:电表开始上电,依据负载电流不同,计量芯片开始计量,产生不同频率的脉冲信号;电表上电时,通过预设的脉冲尾数校验及修复模块进行校验和修复,并将成功修复的脉冲尾数更新至电量脉冲尾数Pulse_Int变量;电表上电后,执行初始化操作,清零上电累计脉冲数Pulse_Total、上电累计脉冲数备份Pulse_TotalBak两个变量;当计量芯片产生一个脉冲时,电表读取计量芯片的能量寄存器并累计脉冲,读取到的脉冲数分别累计到脉冲尾数变量Pulse_Int以及上电累计脉冲数Pulse_Total变量中;当电量脉冲尾数变量Pulse_Int大于预设的脉冲常数或者存在其余切换时,立即进行一次电量存储;当上电累计脉冲总数Pulse_Total与上一次累计脉冲总数Pulse_TotalBak之间差值达到预设的脉冲尾数分辨率时,调用预设的电量尾数脉冲存储模块,通过当前上电累计脉冲数Pulse_Total确定电量尾数在FLASH存储设备里的存储地址,完成电量尾数脉冲存储。2.根据权利要求1所述的电能量脉冲尾数的存储及恢复方法,其特征在于,所述上电累计脉冲数Pulse_Total用于记录电表自上电开始累计的脉冲以及电量尾数脉冲的存储,所述上电累计脉冲数备份Pulse_TotalBak用于记录电表上一次存储电量尾数脉冲时的数值。3.根据权利要求1所述的电能量脉冲尾数的存储及恢复方法,其特征在于,所述当电量脉冲尾数变量Pulse_Int大于预设的脉冲常数或者存在其余切换时,立即进行一次电量存储,包括:当电量脉冲尾数变量Pulse_Int大于脉冲常数C或者存在费率切换、日时段表切换、时区切换、功率方向切换的情况时就调用预设的电量存储模块进行一次电量存储,存储完毕后清除Pulse_Int变量并重新计数。4.根据权利要求1所述的电能量脉冲尾数的存储及恢复方法,其特征在于,每进行一次电量尾数脉冲存储,存储完毕后需要更新Pulse_TotalBak的值,将Pulse_Total复制给Pulse_TotalBak。5.根据权利要求1所述的电能量脉冲尾数的存储及恢复方法,其特征在于,所述通过当前上电累计脉冲数Pulse_Total确定电量尾数在FLASH存储设备里的存储地址,完成电量尾数脉冲存储,包括:通过计算(Pulse_Total/C/100)的奇偶性确定存储扇区地址FlashAddr;通过计算(Pulse_Total/C%100)得出当前电能量的整数部分,通过计算(Pulse_Total/C%100)*25确定脉冲整数部分所在的偏移地址Offset;通过计算(Pulse_Total%C)确定尚未存满1度电的尾数脉冲数,由于1个字节存0.04C个脉冲,通过计算(Pulse_Total%C/0.04C)确定该电量尾数所存的具体字节偏移地址Offset_Byte;通过计算(Pulse_Total%C/0.005C)确定该电量尾数在该Offset_Byte字节中的偏移Offset_Bit;将Offset_...

【专利技术属性】
技术研发人员:张正鑫曹洋张斌费飞陈飞徐晓星
申请(专利权)人:国电南瑞三能电力仪表南京有限公司
类型:发明
国别省市:

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

1