你的位置: 首页 > 仪器仪表 > 电工仪器仪表

电能表数据动态存储方法

2022-08-31 11:25:08 | 人围观 | 评论:

今天为大家介绍一项国家发明授权专利——一种电能表数据动态存储方法。该专利由深圳市科陆电子科技股份有限公司申请,并于2017年8月29日获得授权公告。

内容说明

本发明涉及电能表领域,具体的涉及一种电能表数据动态存储方法。

发明背景

智能电能表的行业标准要求智能电能表能够记录电压、电流、功率、电能等多种数据,每种数据的字节长度是不一样的,同时,在电能表使用的过程当中,需要记录的数据种类可能会变化,记录的间隔也可能会变化。

传统的记录方法中,单向链表法采用流水账的方式,将一条一条的负荷记录做成单向链表。每条记录中都记录本条记录的数据长度,这样使用每条记录的起始地址加上每条记录的数据长度就可以得知下一条记录的起始地址,遍历所有的记录后即可查找到所需的记录。但单向链表法查找非常耗时,且每条记录需记录额外的时标,降低了有效数据的比重,浪费了存储空间。

固定空间分配法为每条数据记录分配固定大小的存储空间和固定的记录间隔时间。这样由于记录不管在记录间隔上还是在数据长度上都是均匀的,所以查找时,可根据需要查找的时间点准确的计算出其存储地址,查找非常迅速。但如果以最大数据长度和最短记录间隔分配存储空间,则会极大的浪费存储空间。如果不以最大数据长度和最短记录间隔分配存储空间,则无法响应电能表使用过程中的记录数据种类更改以及记录间隔的更改。

传统的记录方法无法同时实现存储空间的高利用率和迅速查找的目的。

发明内容

本发明为克服上述现有技术所述的至少一种缺陷(不足),提出了一种电能表数据动态存储方法,其能有效提高存储空间的利用率,且可以达到快速查找记录数据的目的。

为了实现上述目的,本发明采用如下技术方案:一种电能表数据动态存储方法,包括以下步骤:S0 。获取电能表数据;S1 。根据获取的电能表数据的记录密度,将获取的电能表数据写入数据存储区中相应的数据分区,并对索引存储区中的索引信息进行相应的更新。

电能表数据动态存储方法

进一步所述步骤S1具体为:S101 。获取当前数据的记录密度,根据当前数据的记录密度判断在数据存储区是否存在相应的数据分区,若存在则进入步骤S102,若否则进入步骤S103;S102 。获取当前数据在相应数据分区中的偏移量;S103 。在数据存储区新建相应数据分区,获取相应数据分区的起始地址,将当前的数据记录设为该新建数据分区的第一条记录,偏移量为0,在索引存储区新建相应的索引;S104 。根据相应数据分区的起始地址加上偏移量得到当前的数据的存储地址,按照该存储地址将当前数据写入相应数据分区中;并将当前数据记录设为该相应数据分区的最后一条记录;S105 。在索引存储区对相应数据分区的相应索引信息进行更新。

进一步所述步骤S102包括,获取相应数据分区第一条数据的记录时标、最后一条数据的记录时标和数据类型;根据相应数据分区第一条数据的记录时标、最后一条数据的记录时标、数据类型计算得到当前数据在相应数据分区中的偏移量。

所述的数据的记录密度包括数据类型和记录间隔时间。所述的索引存储区的数据结构包括数据分区的起始地址、数据分区的第一条记录时标、数据分区的最后一条记录时标、数据分区的数据类型、数据分区的记录间隔时间。所述步骤S101之前还包括步骤S100 。检查记录间隔时间是否符合设定,若是,则进入步骤S101,反之,则返回重新检查。其还包括步骤S2,所述的步骤S2为对数据进行查询。

进一步,所述的步骤S2包括:S201 。以待查数据的时标为依据,在索引存储区遍历所有索引查找待查数据相应的索引;S202 。根据相应索引在数据存储区中查找相应的数据分区,并获取相应数据分区的起始地址和第一条数据记录的起始时标;S203 。根据相应数据分区的第一条数据记录的起始时标、待查数据的时标和数据类型计算得到待查数据在相应数据分区中的偏移量;S204 。通过计算数据分区的起始地址加上偏移量得到待查数据的存储地址;S205 。从该存储地址中读取待查数据,并根据相应索引信息解析数据的记录密度。

本发明的有益效果为:本发明将存储区划分为索引存储区和数据区,根据记录密度存储相应的数据,分区内数据的定义与解析全部依赖于索引的描述。由于只有新的记录密度才会新建索引,因此索引的数量相对数据记录条数就大大减少,从而遍历索引所需的时间则也相应减少,当寻找到匹配的索引后,由于该索引相应的分区内记录密度相同,就可以使用算术计算的方法,直接定位到存储空间,查找时间可忽略,从而整体的查找速度大大提高。每个分区中不仅不存在无用的存储空间,而且每条数据无需时标以及数据格式描述信息,分区和分区之间也属于无缝衔接,整个方案只需要额外的少量的索引数据,因此保持了存储空间的高利用率。本发明可实现存储空间的高利用率和快速查找数据的目的。





标签:[db:tags]