一种电能质量管理系统共享内存实现方法与流程

文档序号:16327028发布日期:2018-12-19 05:58阅读:216来源:国知局
一种电能质量管理系统共享内存实现方法与流程

本发明属于通信设备技术领域,尤其是涉及一种电能质量管理系统共享内存实现方法。

背景技术

随着铁路行业高速发展以及科技日新月异,铁路行业对供电系统电能质量有了更高的要求,需要提供一种专业的电能质量管理系统用于监测变电所用电设备的电力运行情况。这就要求电能质量管理系统具有高度可靠性。其中系统的各个进程是系统进行资源分配和调度的基本单位,各进程需要一个共享的数据空间进行数据交互。共享数据空间给系统各个功能模块正常运行提供必备的数据支持。电能质量管理系统中共享数据空间需要进行大量的数据交互,在此过程中会使系统性能消耗过大,直接影响系统的可靠性和实时性。



技术实现要素:

有鉴于此,本发明旨在提出一种电能质量管理系统共享内存实现方法,以解决电能质量管理系统中多进程使用共享内存所占用系统资源过大的问题。

为达到上述目的,本发明的技术方案是这样实现的:

一种电能质量管理系统共享内存实现方法,包括:

s1、数据初始化设置,完成电能质量管理系统各项数据在数据库中的基本配置;

s2、创建共享内存库;

s3、创建共享内存进程,实现电能质量管理系统的内存共享。

进一步的,所述步骤s1中,数据初始化设置的具体方法如下:

s101、搭建电能质量管理数据库;

s102、在电能质量管理数据库中创建电能质量管理系统基础数据表,为电能质量管理系统提前规划好所需表以及表结构内容;

s103、根据现场主接线图和电表采集变电所各用电设备安装信息和电能参数项;

s104、将采集的各用电设备安装信息和电能参数项写入到基础数据表,将电表信息和线路配置信息写入电能能质量管理系统软件中。

进一步的,所述s101中,数据库为mysql、oracle、sqlserver中的一种。

进一步的,所述步骤s102中,所述基础数据表包括终端通道信息表、厂站智能表计信息表、厂站终端信息表、系统进程信息表、系统服务器节点信息表、系统服务配置信息表、抄表任务模板信息表、抄表任务设置信息表。

进一步的,所述步骤s2中,共享内存存储结构的设置方法如下:

共享内存库采用分表空间模式存储不同类别数据库表数据;共享内存库分为3个表空间,即3个内存映射文件,分别为基础档案资料类表空间内存映射文件、系统信息类表空间内存映射文件以及抄表任务类表空间内存映射文件;

进一步的,基础档案资料表空间内存映射文件存储了终端通道信息表、厂站智能表计信息表和厂站终端信息表;

系统信息类表空间内存映射文件存储了系统进程信息表、系统服务器节点信息表以及系统服务配置信息表;

抄表任务类表空间文件存储了抄表任务模板信息表和抄表任务设置信息表。

进一步的,每种表空间内存映射文件采用ace中间件中的ace_mem_map技术实现共享内存;ace_mem_map为win32和unix中的内存映射文件机制提供了一个接口;这些系统使用底层的os虚拟内存工具将文件映射到进程的地址空间;采用内存映射文件的另一个好处就是当系统崩溃时或者掉电时,系统共享内存数据不会丢失,下次启动时候可以通过直接加载内存映射文件恢复原来系统运行状态;

映射文件的内容通过指针直接访问;一个指针接口通常比通过标准的i/o系统读/写调用访问数据块要方便和高效得多;

映射文件能够在两个以上的进程之间共享。

进一步的,所述表空间内存映射文件划分多个内存片段,依次存储所属数据库表,每个数据库表所属记录信息均放在同一个内存片段内;该表空间内存映射文件内部结构根据现场需要自由扩充和改变内部结构布局;其他进程是通过直接调用表空间内存映射文件的地址获取共享内存的数据,对共享内存中基础档案资料类表空间内存映射文件,系统信息类表空间内存映射文件以及抄表任务类表空间内存映射文件直接进行读写操作。

进一步的,所述步骤s3中,实现电能质量管理系统的内存共享具体方法如下:

s301、启动共享内存进程;

s302、读取共享内存进程的本地配置文件里面参数,获取每个信息表的最大记录数;

s303、根据配置文件内容获取每个表空间内存映射文件所包含的数据库表的名称、数据库表结构大小和该表对应的最大记录数,来计算每类表空间所含表格大小,并通过ace_mem_map依据表格大小和指定的名称创建表空间内存映射文件;

s304、连接电能质量管理系统数据库,通过步骤s302中的配置文件里面的电能质量管理系统数据库ip地址和登录账号信息,连接电能质量管理系统数据库;

s305、根据步骤s302,通过读取本地配置文件得出每一种表空间所含数据库表的配置信息,依次从电能质量管理系统数据库中读取本表空间所属的数据库表内容;

s306、将所读取的数据库表内容依次写入对应表空间内存映射文件;写入过程遵循每个数据库表占用表空间内存映射文件的一个内存片段,每个内存片段存储对应数据库表获取的内容所有记录,每个数据库表有nmax条记录,对应步骤s302中最大记录数。

s307、重复步骤s305、s306,直到基础档案资料类表空间内存映射文件,系统信息类表空间内存映射文件以及抄表任务类表空间内存映射文件均写入从数据库获取的对应数据。

进一步的,所述步骤s303中,计算表空间也就是表空间内存映射文件的大小采用以下公式:

其中,vmemsize表示每个表空间内存映射文件创建前计算的内存大小,si表示所属表空间的每个单一数据库表记录项数据结构的大小,ni_max对应该数据库表在配置文件中的最大记录数。

相对于现有技术,本发明所述的电能质量管理系统共享内存实现方法具有以下优势:

本发明所述的电能质量管理系统共享内存直接实现共享内存文件映射,无需进行底层设置,减少电能质量管理系统内存读写错误发生,保证电能质量管理系统共享内存持续和稳定运行;同时采用分类表空间内存映射文件存储电能质量管理系统共享内存数据,简化共享内存存储结构,优化内存检索方式,防止系统掉电丢掉数据。

附图说明

构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明实施例所述的启动前需要进行的数据初始化设置流程图;

图2为本发明实施例所述的共享内存库结构图;

图3为本发明实施例所述的电能质量高管理系统共享内存实现流程图;

图4为本发明实施例所述的表空间内存映射文件结构图。

具体实施方式

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。

在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明中的具体含义。

下面将参考附图并结合实施例来详细说明本发明。

如图1所示,本发明实施例启动前需要进行的数据初始化设置步骤:

1.搭建电能质量管理数据库,该数据库包括mysql、oracle、sqlserver等主流数据中一种。

2.在电能质量管理数据库中分别新建电能质量管理系统基础数据表,该数据表为电能质量管理系统提前规划好所需表以及表结构内容,包括终端通道信息表,厂站智能表计信息表,厂站终端信息表,系统进程信息表,系统服务器节点信息表,系统服务配置信息表、抄表任务模板信息表,抄表任务设置信息表。这些均为最基础的电能质量管理系统数据表,可以根据现场实施情况增加相应的表,并不仅限于上述数据表。

3.根据现场主接线图和电表获取变电所各用电设备安装信息,配置信息,以及采集所需的电能参数项。

4.通过电能质量管理系统配置页面分别对步骤2所需要创建的基础数据库表进行写入操作,将电表信息和线路配置信息写入电能能质量管理系统软件中。

如图2所示,共享内存库结构图:

1.电能质量管理系统共享内存库,采用分表空间模式存储不同类别数据库表数据。该种设计可以减少内存读、写以及查找的时间,提高共享内存交互性能,减少系统资源开销。

2.共享内存库分为3个表空间,也即3个内存映射文件。分别为基础档案资料类表空间内存映射文件,系统信息类表空间内存映射文件以及抄表任务类表空间内存映射文件。其中基础档案资料表空间内存映射文件存储了终端通道信息表、厂站智能表计信息表和厂站终端信息表;系统信息类表空间内存映射文件存储了系统进程信息表、系统服务器节点信息表以及系统服务配置信息表;抄表任务类表空间文件存储了抄表任务模板信息表和抄表任务设置信息表。

3.每种表空间内存映射文件采用ace中间件中的ace_mem_map技术实现共享内存。ace_mem_map为win32和unix中的内存映射文件机制提供了一个oo接口。这些系统使用底层的os虚拟内存工具将文件映射到进程的地址空间。映射文件的内容可以通过指针直接访问。一个指针接口通常比通过标准的i/o系统读/写调用访问数据块要方便和高效得多。同时映射文件也可以在两个或更多进程之间共享。因此本系统采用ace_mem_map机制实现的共享内存,真正实现多个进程共享同一块内存空间,减少系统资源开销和提高系统性能。同时采用内存映射文件的共享内存实现方式后,当系统崩溃时或者掉电时,系统共享内存数据不会丢失,下次启动时候可以通过直接加载内存映射文件恢复原来系统运行状态。

如图3所示,本发明提供的一种电能质量高管理系统共享内存及装置实现实施例:

1.启动共享内存进程。电能质量管理系统共享内存是由单独一个进程来实现,作为电能质量管理系统的一个子模块,需要手动开启共享内存进程,实现系统共享内存功能。

2.读取共享内存进程的本地配置文件里面参数。本地配置文件分别包括终端通道信息表、厂站智能表计信息表、厂站终端信息表、系统进程信息表、系统服务器节点信息表、系统服务配置信息表、抄表任务模板信息表、抄表任务设置信息表的最大记录数,该最大记录数是共享内存库中存储上述表记录的上限,可以根据不同变电所现场灵活修改对应的数值,同时该配置文件还包括电能质量管理系统数据库ip地址和登录账号信息。

3.根据配置文件内容获取每个表空间内存映射文件所包含的数据库表的名称、数据库表结构大小和该表对应的最大记录数,来计算每类表空间所含表格大小并通过ace_mem_map依据表格大小和指定的名称创建表空间内存映射文件。计算表空间也就是表空间内存映射文件的大小采用以下公式:

其中,vmemsize表示每个表空间内存映射文件创建前计算的内存大小,si表示所属表空间的每个单一数据库表记录项数据结构的大小,ni_max对应该数据库表在配置文件中的最大记录数,如步骤2所述。电能质量管理系统共享内存进程依次按照上述公式分别计算各个表空间内存映射文件的大小,之后分别创建基础档案资料类表空间内存映射文件,系统信息类表空间内存映射文件以及抄表任务类表空间内存映射文件。创建每个该内存映射文件可以直接被其他进程直接调用,实现内存共享功能。

4.连接电能质量管理系统数据库。通过步骤2中的配置文件里面的电能质量管理系统数据库ip地址和登录账号信息,连接电能质量管理系统数据库。

5.由步骤2中本地配置文件得出每一种表空间所含数据库表的配置信息,依次从电能质量管理系统数据库中读取本表空间所属的数据库表内容。

6.将所读取的数据库表内容依次写入对应表空间内存映射文件。写入过程遵循每个数据库表占用表空间内存映射文件的一个内存片段,每个内存片段存储对应数据库表获取的内容所有记录,每个数据库表有nmax条记录,对应步骤2中最大记录数。通常电能质量管理系统数据库表存储记录数小于最大记录数,且最大记录数可以随时修改,方便系统扩容。

7.重复步骤5和6,直到基础档案资料类表空间内存映射文件,系统信息类表空间内存映射文件以及抄表任务类表空间内存映射文件均写入从数据库获取的对应数据。

如图4所示,本发明提供的一种电能质量高管理系统共享内存及装置表空间内存映射文件内部结构图:

1.表空间内存映射文件划分多个内存片段,依次存储所属数据库表,每个数据库表所属记录信息均放在同一个内存片段内。

2.该表空间内存映射文件内部结构可以根据现场需要自由扩充和改变内部结构布局。

3.其他进程是通过直接调用表空间内存映射文件的地址获取共享内存的数据,对共享内存中基础档案资料类表空间内存映射文件,系统信息类表空间内存映射文件以及抄表任务类表空间内存映射文件直接进行读写操作。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1