一种电能表的电量数据存储方法

文档序号:9578415阅读:1548来源:国知局
一种电能表的电量数据存储方法
【技术领域】
[0001]本发明涉及电能计量技术领域,具体涉及一种电能表的电量数据存储方法。
【背景技术】
[0002]电能表包括MCU和计量芯片,MCU通过计量芯片获取电量数据,为保证电量数据不丢失,电能表通常还需要非易失存储器用于存储电量数据,现有电能表的电量数据存储方法是在上电时,MCU读取自身RAM存储器中的当前电量数据,根据当前电量数据计算校验码,比较计算得到的校验码和预先存储在非易失存储器内的初始校验码是否一致,若一致,则表示电能表正常工作,若不一致,则从非易失存储器中恢复电量数据到MCU的RAM存储器中,在电能表运行过程中,MCU通过计量芯片获取电量数据并进行电量数据的累加,在电能表下电时,MCU读取自身RAM存储器中的当前电量数据,根据当前电量数据计算校验码,将计算得到的校验码以及当前电量数据写入非易失存储器中。
[0003]上述现有电能表的电量数据存储方法存在以下问题:只在电能表上电时对计算得到的校验码和预先存储在非易失存储器内的初始校验码进行比较,而在电能表的运行过程中只累加电量数据,不对电量数据进行校验码计算,在下电时才更新校验码,这样虽然在正常上下电时,能保证计算得到的校验码等于预先存储在非易失存储器内的初始校验码,但是一旦出现电能表异常复位,由于电平很不稳定,很容易将错误的电量数据和校验码存储入非易失存储器中,而且此时MCU的RAM存储器内的电量数据也很容易被改写,导致再次上电时计算得到的校验码和预先存储在非易失存储器中的校验码不一致,出现数据异常,甚至电量数据直接复零,导致计量严重不准确,而且由于在电能表运行过程中,不进行数据备份,很容易导致数据丢失。

【发明内容】

[0004]本发明要解决的技术问题是:提供一种能保证电量数据准确可靠存储、有效防止电量数据丢失的电能表的电量数据存储方法。
[0005]本发明的技术解决方案是:一种电能表的电量数据存储方法,所述电能表包括MCU、计量芯片和非易失存储器,所述计量芯片和非易失存储器均与MCU电连接,其特征在于:它包括以下步骤:
[0006](1)电能表上电,MCU开始计时,自动设置存储在MCU的RAM存储器内的第一电量数据A1的初始值、第一校验码B1的初始值、预设的计数值C、预设的存储次数D、预设的备份时间E、电量累加值Λ A,自动设置存储在非易失存储器的第一存储区内的第二电量数据Α2的初始值和第二校验码Β2的初始值,以及非易失存储器的第二存储区内的第三电量数据A3的初始值和第三校验码Β3的初始值;
[0007]⑵MCU自动读取刚上电时的RAM存储器中的第一电量数据A1,根据第一电量数据A1自动计算第四校验码B4,比较第四校验码B4和第一校验码B1,若两者一致,则进入步骤
(3),若两者不一致,则自动设置A1 =A2,B1 =B2,并进入步骤(3);
[0008](3) MCU自动读取计量芯片的快速脉冲计数寄存器的计数值Cl,若计数值Cl到达预设的计数值C,则MCU自动将计量芯片的快速脉冲计数寄存器的计数值Cl清零并进入步骤(4),若否,则返回步骤(3)重新读取;
[0009]⑷MCU自动读取RAM存储器中的第一电量数据Al,根据第一电量数据Al自动计算第四校验码B4,比较第四校验码B4和第一校验码BI,若两者一致,则进入步骤(5),若两者不一致,则自动设置Al = A2,BI = B2,并进入步骤(5);
[0010](5) MCU自动对第一电量数据Al进行更新,设置Al = Al+Λ A,电量累加值Λ A为快速脉冲计数寄存器的计数值Cl到达预设的计数值C时的电量变化值,根据更新后的第一电量数据Al自动计算第四校验码Β4,并自动设置BI = Β4,存储次数Dl自动加I ;
[0011](6)MCU自动判断电能表是否断电,若是,则进入步骤(10),若否,则进入步骤
(7);
[0012](7)判断存储次数Dl是否到达预设的存储次数D,若是,则存储次数Dl自动清零并进入步骤(8),若否,则MCU自动判断计时时间是否到达预设的备份时间Ε,若是,则重新开始计时并进入步骤(9),若否,则返回步骤(3);
[0013](8)将RAM存储器中的第一电量数据Al和第一校验码BI存储到非易失存储器的第一存储区中,即自动设置Α2 =Α1,Β2 = Β1,并返回步骤(3);
[0014](9)将RAM存储器中的第一电量数据Al和第一校验码BI存储到非易失存储器的第二存储区中,即自动设置A3 =Α1,Β3 = Β1,并返回步骤(3);
[0015](1)MCU自动读取RAM存储器中的第一电量数据Al,根据第一电量数据Al自动计算第四校验码Β4,比较第四校验码Β4和第一校验码BI,若两者一致,则将RAM存储器中的第一电量数据Al和第一校验码BI存储到非易失存储器的第一存储区中,即自动设置Α2 =Al,Β2 = BI,并结束电量数据存储等待电能表重新上电,若两者不一致,则直接结束电量数据存储并等待电能表重新上电。
[0016]采用上述方法后,本发明具有以下优点:
[0017]本发明电能表的电量数据存储方法在上电时对计算得到的校验码和预先存储在非易失存储器内的初始校验码进行比较,在下电时,对当前电量数据进行校验和存储,并且在电能表运行过程中既对电量数据进行累加更新,而且还在每次存储更新电量数据时对电量数据进行校验,保证了电量数据的准确性,此外还利用了非易失存储器定期对电量数据进行存储和备份,防止了数据的丢失,存储更加可靠。
[0018]作为优选,在进入步骤(7)之前还需MCU再次自动读取RAM存储器中的第一电量数据Al,根据第一电量数据Al自动计算第四校验码Β4,比较第四校验码Β4和第一校验码BI,若两者一致,则进入步骤(7),若两者不一致,则自动设置Al =Α2,Β1 = Β2,并进入步骤
(7)。该设置使得在电量数据更新后还要再进行数据校验,使数据存储更加正确可靠。
[0019]在上述优选的步骤中自动设置Al =A2,BI = Β2之后,进入步骤(7)之前,还由MCU再次自动读取RAM存储器中的第一电量数据Al,根据第一电量数据Al自动计算第四校验码Β4,比较第四校验码Β4和第一校验码BI,若两者不一致,则自动设置Al = A3,BI =Β3,同时提示非易失存储器错误。该设置进一步提高数据存储的正确性和可靠性,而且可以向用户提示非易失存储器的错误。
[0020]作为优选,所述电量数据Al包括组合有功总电量、组合有功尖电量、组合有功峰电量、组合有功平电量、组合有功谷电量、正向有功总电量、正向有功尖电量、正向有功峰电量、正向有功平电量、正向有功谷电量、反向有功总电量、反向有功尖电量、反向有功峰电量、反向有功平电量和反向有功谷电量。该设置可对多个电量数据进行校验。
[0021]作为优选,所述电量数据A1采用CRC校验。CRC校验结果与多个电量数据的排列顺序密切相关,而校验和并无顺序要求,这样CRC校验更不易出错,校验结果更准确。
[0022]作为优选,所述CRC校验采用查表法。查表法可加快CRC校验速度。
[0023]作为优选,所述电量累加值Λ A = 0.0lkWh,所述预设的计数值C = C0* Δ A =0.01*C0,CO为电能表的脉冲常数。该设置以电能表的最小电量计量单位进行电量更新。
[0024]作为优选,所述预设的存储次数D = 100。合理的参数设置可保证数据可靠地存储在非易失存储器中。
[0025]作为优选,所述预设的备份时间E = 30min。合理的参数设置可对数据进行可靠的备份,即使第一存储区出现问题,还有第二存储区的备份数据可以利用。
【附图说明】
:
[0026]图1为本发明电能表的电量数据存储方法的流程图。
【具体实施方式】
[0027]下面结合附图,并结合实施例对本发明做进一步的说明。
[0028]实施例:
[0029]如图1所示,一种电能表的电量数据存储方法,所述电能表包括MCU、计量芯片和非易失存储器,所述计量芯片和非易失存储器均与MCU电连接。
[0030](1)电能表上电,MCU开始计时,自动设置存储在MCU的RAM存储器内的第一电量数据A1的初始值、第一校验码B1的初始值、预设的计数值C、预设的存储次数D、预设的备份时间E、电量累加值Λ A,自动设置存储在非易失存储器的第一存储区内的第二电量数据Α2的初始值和第二校验码Β2的初始值,以及非易失存储器的第二存储区内的第三电量数据A3的初始值和第三校验码Β3的初始值;本例中,第一电量数据Α1、第二电量数据Α2和第三电量数据A3均由组合有功总电量,组合有功尖电量,组合有功峰电量,组合有功平电量,组合有功谷电量,正向有功总电量,正向有功尖电量,正向有功峰电量,正向有功平电量,正向有功谷电量,反向有功总电量,反向有功尖电量,反向有功峰电量,反向有功平电量,反向有功谷电量这15个电量数据组成,每个电量数据为4个字节十六进制,使得第一电量数据Α1、第二电量数据Α2和第三电量数据A3均为一个60字节按一定顺序排列而成的十六进制数;刚上电时,第一电量数据Α1、第二电量数据Α2和第三电量数据A3的初始值均为0,第一校验码Β1、第二校验码Β2和第三校验码Β3的初始值分别是在Α1 = 0,Α2 = 0,A3 = 0时的CRC校验码,CRC校验码为两个字节十六进制,CRC校验码采用查表法得到,CRC校验码的查表法为现有技术;假设本例中电能表的脉冲常数为3200imp/kwh,即每1度电会发出3200个脉冲,设置电量累加值Λ A = 0.0lkWh,那么预设的计数值C = 3200*0.01 =
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1