一种智能电能表的节假日编程事件记录及读取方法转让专利

申请号 : CN201410851747.8

文献号 : CN104636083B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 许来顺曾戈弋骆贵泉

申请人 : 漳州科能电器有限公司

摘要 :

一种智能电能表的节假日编程事件记录及读取方法,包括:1)节假日编程事件记录步骤,即当对当前公共节假日数据信息的某一次序对应的节假日数据进行更新,保存该更新,并将更新时间、操作者代码、该次序及其对应的更新前的节假日数据进行记录存储;2)节假日编程事件读取步骤。采用本发明的方法,只需要一片的EEPROM,大大节约了数据存储空间、提高记录速度、减少硬件成本。

权利要求 :

1.一种智能电能表的节假日编程事件记录及读取方法,电能表存储有公共节假日数据信息,其包括节假日次序及对应的节假日;其特征在于:还包括

1)节假日编程事件记录步骤

当对当前公共节假日数据信息的某一次序对应的节假日数据进行更新,保存该更新,并将更新时间、操作者代码、该某一次序及其对应的更新前的节假日数据进行记录存储;

2)节假日编程事件读取步骤

设置读取的节假日编程事件包括有M个数据帧,每帧包括若干项按次序排列的节假日数据,可读取的节假日编程事件最多为N次;j为帧序号,i是代表节假日编程事件为上i次,i和j的初始值均为1,节假日编程事件读取为按帧应答节假日数据,其具体步骤如下:

2.1)判断是否读取普通数据帧,若是,进入步骤2.5),执行完后应答节假日编程记录第

1帧的节假日数据,并告知还有后续数据帧,请求继续读取后续数据帧,进入步骤2.2);若否,则结束;

2.2)判断是否读取后续数据帧,若是,j=j+1,进入步骤2.3),执行完后应答第j帧数据帧的节假日数据,进入步骤2.4);若否,则结束;

2.3)判断j≤M是否成立,若是进入2.5),若否,则结束;

2.4)判断j是否为M,即为最后一帧,若是,则退出该步骤;若否,则告知还有后续数据帧,请求继续读取后续数据帧,进入步骤2.3);

2.5)判断i≤N是否成立,若是进入2.6),若否,退出该步骤;

2.6)读取上i次节假日编程事件存储的次序,并判断该存储的次序对应的帧序号是否为j,若是,则将该存储的次序对应的更新前的节假日数据覆盖至第j帧对应项的节假日数据,i=i+1,返回至2.5);若否,则i=i+1,回到步骤2.5)。

2.如权利要求1所述的一种智能电能表的节假日编程事件记录及读取方法,其特征在于:在步骤2)中,设置读取的节假日编程事件包括有6帧,即M=6,第一帧设有按次序排列的前44项节假日数据;第二至第六帧均设有按次序排列的42项节假日数据信息。

3.如权利要求2所述的一种智能电能表的节假日编程事件记录及读取方法,其特征在于:在步骤2.6)中判断该存储的次序对应的帧序号是指:将次序减去44,再减去1的值除以

42后再加上2,得到值的整数部分即为帧序号。

4.如权利要求2所述的一种智能电能表的节假日编程事件记录及读取方法,其特征在于:在步骤2.6)中该存储的次序对应的更新前的节假日数据覆盖至第j帧对应项的节假日数据中,该第j帧对应项是指:该次序减去1再减去44的值对42求余数得出。

5.如权利要求1所述的一种智能电能表的节假日编程事件记录及读取方法,其特征在于:所述节假日编程事件记录的次数最大为10次。

说明书 :

一种智能电能表的节假日编程事件记录及读取方法

技术领域

[0001] 本发明涉及电能表数据存储领域,特别是一种智能电能表的节假日编程事件记录及读取方法。

背景技术

[0002] 在中华人民共和国电力行业标准DL/T 645-2007表A.4事件记录数据标识编码表中要求电能表能实现节假日编程事件记录功能,记录要求如下表:
[0003]
[0004] 按照要求一次记录需要1026字节的数据空间分别包括发送时刻6字节、操作者代码4字节及所有节假日数据4*254,那么总共10次的数据空间就需要用到10260字节,参照图1。在智能电能表的设计中,是通过EEPROM进行数据存储的,而常用的大容量EEPROM是
24LC256,其只有32768字节的容量,据此设计单该记录功能就需要用到三分之一的EEPROM,使得硬件的设计成本昂贵。

发明内容

[0005] 本发明的主要目的在于克服现有技术中的上述缺陷,提出一种节约电能表数据存储空间、有效提高记录速度、减少硬件成本的智能电能表节假日编程事件记录及读取方法。
[0006] 本发明采用如下技术方案:
[0007] 一种智能电能表的节假日编程事件记录及读取方法,电能表存储有公共节假日数据信息,其包括节假日次序及对应的节假日;其特征在于:还包括
[0008] 1)节假日编程事件记录步骤
[0009] 当对当前公共节假日数据信息的某一次序对应的节假日数据进行更新,保存该更新,并将更新时间、操作者代码、该次序及其对应的更新前的节假日数据进行记录存储;
[0010] 3)节假日编程事件读取步骤
[0011] 设置读取的节假日编程事件包括有M帧数据,每帧包括若干项按次序排列的节假日数据,可读取的节假日编程事件最多为N次;j为帧序号,i是代表节假日编程事件为上i次,i和j的初始值均为1,节假日编程事件读取为按帧应答节假日数据,其具体步骤如下:
[0012] 2.1)判断是否读取普通数据帧,若是,进入步骤2.5),执行完后应答节假日编程记录第1帧的节假日数据,并告知还有后续数据帧,请求继续读取后续数据帧,进入步骤2.2);若否,则结束;
[0013] 2.2)判断是否读取后续数据帧,若是,j=j+1,进入步骤2.3),执行完后应答该数据帧的节假日数据,进入步骤2.4);若否,则结束;
[0014] 2.3)判断j≤M是否成立,若是进入2.5),若否,则结束;
[0015] 2.4)判断j是否为M,即为最后一帧,若是,则退出该步骤;若否,则告知还有后续数据帧,请求继续读取后续数据帧,进入步骤2.3);
[0016] 2.5)判断i≤N是否成立,若是进入2.6),若否,退出该步骤;
[0017] 2.6)读取上i次节假日编程事件存储的次序,并判断该次序对应的帧序号是否为j,若是,则将该次序对应的更新前的节假日数据覆盖至第j帧对应项的节假日数据,i=i+1,返回至2.5);若否,则i=i+1,回到步骤2.5)。
[0018] 优选的,在步骤2)中,设置读取的节假日编程事件包括有6帧,即M=6,第1帧设有按次序排列的前44项节假日数据;第2至第6帧均设有按次序排列的42项节假日数据信息。
[0019] 优选的,在步骤2.6)中判断该次序对应的帧序号是指:将次序减去44,再减去1的值除以42后再加上2,得到值的整数部分即为帧序号。
[0020] 优选的,在步骤2.6)中该次序对应的更新前的节假日数据覆盖至第j帧对应项的节假日数据中,该第j帧对应项是指:该次序减去1再减去44的值对42求余数得出。
[0021] 优选的,所述节假日编程事件记录次数最大为10次。
[0022] 由上述对本发明的描述可知,与现有技术相比,本发明具有如下有益效果:
[0023] 1、本发明的方法的节假日编程事件记录除了存储一份公共节假日数据外,只保存发生时间,操作者代码、次序和该次序对应的更新前的节假日数据。电能表不对每次编程事件后的公共节假日数据进行另外存储。当需要读取任一一次节假日编程事件的完整公共节假日数据时,只需通过本发明的节假日编程事件读取步骤即可按帧读取而出。这样每一次的节假日编程记录可省1011字节(4*254-5),10次记录共可节约10110字节,参照图1、图2。
[0024] 2、在智能表的设计中,通常通过EEPROM进行数据存储,常用的大容量EEPROM是24LC256,其只有32768字节的容量,采用本发明的方法,只需要一片的EEPROM的三分之一容量,大大节约了数据存储空间、提高记录速度、减少硬件成本。

附图说明

[0025] 图1为现有技术节假日编程事件占外部存储器字节的示意图;
[0026] 图2为本发明节假日编程事件占外部存储器字节的示意图;
[0027] 图3为本发明节假日编程事件读取步骤的部分流程图(步骤2.1));
[0028] 图4为本发明节假日编程事件读取步骤的部分流程图(步骤2.2));
[0029] 图5为本发明节假日编程事件读取步骤的部分流程图(步骤2.3));
[0030] 图6为为本发明节假日编程事件读取步骤的部分流程图(步骤2.4));
[0031] 图7为本发明节假日编程事件读取步骤的部分流程图(步骤2.5)和步骤2.6))。

具体实施方式

[0032] 以下通过具体实施方式对本发明作进一步的描述。
[0033] 参照图2至图7,一种智能电能表的节假日编程事件记录及读取方法,电能表存储有公共节假日数据信息,其包括节假日次序及对应的节假日。
[0034] 1)节假日编程事件记录步骤,是指在对电能表节假日编程时,每次编程只会编写(即更新)1-254个节假日中的一个节假日数据并记录该次节假日编程事件,如下:
[0035] 当对当前公共节假日数据信息的某一次序对应的节假日数据进行更新后,保存该更新后的节假日数据,并将更新时间、操作者代码、该次序及其对应的更新前的节假日数据进行记录和存储。数据存储量如下:该公共节假日数据信息4*254为1016字节;该更新时间6字节,操作者代码4字节,该次序1字节及对应的更新前的节假日数据4字节,总共15字节;由于本实施例中电能表最多保留10次节假日编程事件记录,则存储总量为1016+15*10=1166字节。
[0036] 2)节假日编程事件读取步骤
[0037] 本实施例中需要读取的节假日编程事件具有1026字节,包括更新时间6字节,操作者代码4字节和公共节假日数据信息4*254为1016字节。按DL/T645-2007的要求每帧数据部分最多只能是200个字节,故读取时需进行分帧处理,即第1帧按正常读数据读取,剩余部分按后续数据帧读取。为了使读取时数据尽量多和比较完整,按帧读取时,第1帧应答186个字节数据,其包括44项按次序排列的数据项;第2帧至第5帧分别应答168个字节数据,其分别包括42个按次序排列的数据项,刚好为186+5*168=1026个字节。
[0038] 设可读取的节假日编程事件记录最多为10次;j为帧序号,i是代表节假日编程事件为上i次,i和j的初始值均为1,节假日编程事件按帧读取步骤如下:
[0039] 2.1)判断是否读取普通数据帧(即为第1帧),若是,进入步骤2.5),执行完后应答节假日编程记录第1帧即前44个节假日数据,并告知还有后续数据帧,请求主站继续读取后续数据帧,进入2.2);若否,则结束;
[0040] 2.2)判断是否读取后续数据帧,若是,j=j+1,进入步骤2.3),执行完后应答42个节假日数据,进入步骤2.4);若否,则结束;
[0041] 2.3)判断j≤M是否成立,若是进入2.5),若否,则结束;
[0042] 2.4)判断j等于M是否成立(即为最后一帧),若是,则退出该步骤;若否,则告知还有后续数据帧,请求主站继续读取后续数据帧,进入步骤2.3;
[0043] 2.5)判断i≤N是否成立,若是进入2.6),若否,退出该步骤;
[0044] 2.6)读取上i次节假日编程事件存储的次序,并判断该次序对应的帧序号是否为j,若是,则将该次序对应的更新前的节假日数据覆盖至第j帧对应项的节假日数据,i=i+1,返回至2.5);若否,则i=i+1,回到步骤2.5)。
[0045] 进一步的,步骤2.7)中,该第j帧对应项是通过如下方法得到:该次序减去1再减去44的值对42求余数得出。
[0046] 本发明的方法的基本原理是根据每次编程只会编写(即更新)1-254个节假日中的一个节假日数据。节假日编程事件记录除了存储一份公共节假日数据外,只保存发生时间,操作者代码、次序和该次序对应的更新前的节假日数据。电能表不对每次编程事件后的公共节假日数据进行另外存储。当需要读取任一一次节假日编程事件的完整公共节假日数据时,只需通过本发明的节假日编程事件读取步骤即可按帧读取而出。这样每一次的节假日编程记录可省1011字节(4*254-5),10次记录共可节约10110字节,参照图1、图2。
[0047] 本发明的方法可应用于下述电能表中:2级单相费控智能电能表(远程--开关内置)、2级单相费控智能电能表(远程--开关外置)、2级单相费控智能电能表(模块-远程-开关内置)、2级单相费控智能电能表(模块-远程-开关外置)、1级三相智能电能表、1级三相费控智能电能表(远程-开关内置)、1级三相费控智能电能表(远程-开关外置)、1级三相费控智能电能表(模块-远程-开关内置)、1级三相费控智能电能表(模块-远程-开关外置)等。
[0048] 上述仅为本发明的具体实施方式,但本发明的设计构思并不局限于此,凡利用此构思对本发明进行非实质性的改动,均应属于侵犯本发明保护范围的行为。