背景技术
在水电厂信息系统中,所有业务功能都建立在对系统内设备统一管理的基础上,设备模型的建立和存储以及系统内模型保持一致至关重要。目前常见的设备模型建立和存储方法为:为每个厂站、每种类型的设备、每种类型的部件、每种类型的参数都分别创建不同结构的数据表,通过ID表示从属关系。
如:“XX发电厂”有“1#发电机”设备和“1#水轮机”设备,“1#发电机”设备有5个部件,分别为“定子”、“转子”、“主轴”、“机架”和“轴承”,每个部件均包含参数类型“模拟量”、“开关量”。那么数据表的结构通常设计如下表1~6所示,表1~6省略了大部分与水电厂生产过程相关的具体信息字段,仅列出能够表征其设计思想的数据表和字段描述:
表1“厂站”数据表结构
表2“水轮机”设备数据表结构
字段描述 |
设备ID |
设备类型ID |
所属厂站ID |
生产厂家 |
额定水头 |
...... |
表3“发电机”设备数据表结构
设备ID |
设备类型ID |
所属厂站ID |
生产厂家 |
额定电流 |
额定电压 |
...... |
表4部件数据表结构
字段描述 |
部件ID |
所属设备ID |
设备类型ID |
...... |
表5模拟量数据表结构
字段描述 |
参数ID |
所属部件ID |
参数类型ID |
高限 |
低限 |
...... |
表6开关量数据表结构
字段描述 |
参数ID |
所属部件ID |
参数类型ID |
0-1报警 |
1-0报警 |
...... |
上例中系统组成关系简单,设备类型少,而实际的信息系统中设备多,组成关系复杂,其表结构也更加复杂。
由上例可见,采用该方式时,当水电厂中设备类型较多,各种设备所构成的部件不同,各个部件的参数类型也不相同时,系统需要分别设计多种数据表结构。当系统接入了新的设备类型时,首先需要设计并增加对应的设备类型的数据表结构,然后再研发一套对应的设备类型存储接口;当增加一种参数类型时,也需要先设计并增加对应的参数类型数据表结构,然后再研发一套对应的参数类型存储接口;当某参数类型新增了一个属性时,比如参数类型“模拟量”新增了“死区”属性,那么需要先修改“模拟量”数据表,增加一个“死区”的字段,然后再修改操作“模拟量”数据表的接口函数。
由于水电厂主设备具有从属的层次关系,如一个水电厂有多个设备,一个设备有多个部件,一个部件有多种参数类型,该方式采用二维数据表结构,通过ID来表明这样的从属层次关系,极大地增加了设备模型的管理成本。当模型修改时,比如删除了设备下的一个部件,那么需要到多个数据表中删除与该部件相关的信息,容易出错或遗漏。另外,该方式存储设备模型时,也涉及对多个数据表操作,而对每种数据表的操作接口都是根据数据表结构定制而成,步骤繁琐,并且不具有良好的可扩展性和可维护性。
发明内容
发明目的:为了克服现有技术中存在的不足,本发明提供一种水力发电厂主设备模型建立、存储和同步的方法,为水电厂信息系统提供全面的模型编码格式、通用的模型建立步骤、灵活的模型存储格式、以及通用的数据表结构,以建立和存储水电厂信息系统内所有主设备模型信息,提高水电厂信息系统的可扩展性和可维护性,同时也为分布式水电厂信息系统提供一种模型自动同步的解决方案。
技术方案:为实现上述目的,本发明采用的技术方案为:
一种水力发电厂主设备模型建立、存储和同步的方法,包括如下步骤:
(1)检测历史数据库中是否存在该主设备的设备模型,若不存在则跳转至步骤(6);
(2)检测本地是否存在该主设备的设备模型XML文件,若不存在则跳转至步骤(4);
(3)比较本地的设备模型XML文件和历史数据库中的设备模型的修改时间,若本地新则跳转至步骤(5);
(4)从历史数据库中下载设备模型至本地,存储为本地的设备模型XML文件;
(5)加载本地的设备模型XML文件,跳转至步骤(7);
(6)在本地建立该主设备的设备模型,具体包括如下步骤:
(6-1)新建或选择该主设备所属工程;
(6-2)在所属工程项目下新建或选择该主设备所属厂站模型;
(6-3)在所属厂站模型项目下新建或选择该主设备所属专业性质模型;
(6-4)在所属专业性质模型项目下新建或选择该主设备所属设备类型模型;
(6-5)在所属设备类型模型项目下新建该主设备的设备模型;
(6-6)在该主设备的设备模型项目下新建构成该主设备的各个部件模型;
(6-7)在各个部件模型项目下新建各自的部件参数;
(7)编辑该主设备的设备模型信息;
(8)将编辑好的设备模型信息存储为本地的设备模型XML文件;
(9)将本地的设备模型XML文件以二进制形式存储到历史数据库中,形成该主设备在历史数据库中的设备模型。
优选的,在步骤(6)完成时,系统自动为该主设备生成一个在系统内唯一的系统编码,所述系统编码由所属厂站模型代码、所属专业性质模型代码、所属设备类型模型代码、设备模型代码、所包括的部件模型代码及部件参数代码构成。
优选的,每个工程项目下可建立0~99个厂站模型;每个厂站模型项目下可建立0~99个专业性质模型,包括发电设备、变电设备等;每个专业性质模型项目下可建立0~99个设备类型模型,包括发电机、水轮机、断路器、变压器等;每个设备类型模型项目下可建立0~99个设备模型,如发电机下建立1#发电机、2#发电机等;每个设备模型项目项目下可建立0~999个部件模型,如1#发电机下建立定子、转子等;每个部件模型项目下可建立若干部件参数,单个部件下可建立0~99个参数类型,每个参数类型项目下可建立0~9999个参数,每个参数项目下可建立0~99个参数属性,如定子下可以建立有功功率、定子铁芯温度等模拟量类型参数,也可以建立第一路保护跳闸动作、事故停机按钮动作等开关量类型参数。
其中参数类型为系统开发时预先定义的,参数类型包括:静态参数、模拟量、快变量、开关量、SOE量、状态量等,可以根据实际业务需求通过系统开发方式进行扩充至99种参数类型;每种参数类型可以拥有多个参数属性,比如参数类型为模拟量,其可拥有的参数属性包括序号、参数名称、单位、电压范围类型、放大系数、校正系数、高限、低限、值等。
其余模型,包括厂站模型、专业性质模型、设备类型模型、设备模型、部件模型、参数等的设定可以设计成在用户界面操作完成增删和编辑的形式。
优选的,在步骤(6)完成时,系统自动为该主设备生成一个在系统内唯一的系统编码,所述系统编码由19位阿拉伯数字组成,以8字节long存储,编码规则如表7所示:
表7系统编码的编码规则
上表中每一个“X”表示以为0~9的阿拉伯数字,其中厂站代码为该主设备所属厂站模型代码,专业性质代码为该主设备所属专业性质模型代码,设备类型代码为该主设备所属设备类型模型代码,设备代码为该主设备的模型代码,部件代码为该主设备所包括的部件模型代码,参数类型代码、参数代码和参数属性代码为相应的部件参数代码;由表7可以看出,该编码规则和主设备模型建立的步骤及各部分的数值范围是对应的。
优选的,所述历史数据库中的设备模型存储表结构如表8所示:
表8设备模型存储表结构
字段名 |
中文描述 |
数据类型 |
No |
序号 |
int |
SysCode |
系统编码 |
bigint(8字节) |
FileTime |
设备模型XML文件修改时间 |
datetime |
DevInfo |
设备模型XML文件二进制 |
image |
Name |
设备模型描述 |
varchar(30) |
Reserved |
备用字段 |
varchar(100) |
上表中,系统编码为系统自动为该主设备生成的一个在系统内唯一的代码。
在水力发电厂信息系统中,所有业务功能都建立在对系统内设备统一管理的基础上,设备模型的建立和存储至关重要。本发明中系统编码的设计参照了国家电网公司的规范《国家电网公司生产管理系统设备代码(试行)》中“4设备分类代码方案”,在该规范基础上进一步扩充了信息系统中与业务相关的编码(参数类型代码、参数代码、属性代码等),并兼容该规范中“4设备分类代码方案”,因此本发明中的系统编码具备对水电厂所有主设备编码的能力,并具备对所有主设备的部件、各部件采集的数据以及每种采集数据的属性编码的能力,覆盖面广,并留有一定的扩充裕度。
本发明中将一个设备(包含其下的部件、参数及参数属性等)模型对应保存为一个设备模型XML文件,再将该设备模型XML文件整体以二进制的形式存储到历史数据库中。由于XML文件格式是树形结构的,因此在表达水电厂中设备的层次关系上有着与生俱来的优势。当设备修改时,如增删了部件,或增删了参数,甚至是系统软件又开发了一种新的参数类型时,系统都能够自动完成对设备模型XML文件内容的修改。
而且,系统仅采用一种数据表结构就可以存储系统内所有的设备模型,不管设备模型内部结构发生何种变化,都不需要修改历史数据库表结构,也不需要修改系统软件存储接口的编程实现,有效地提高了系统的可维护性和可扩展性。
本发明中采用了本地模型和历史数据库中的模型自动同步策略,能够满足分布式系统应用的需求,系统模型管理人员只需要在一处对模型进行修改,系统内其他节点就能够自动获取最新的系统模型,避免了繁琐的人工模型同步,确保系统内模型的一致性。
有益效果:本发明提供的水力发电厂主设备模型建立、存储和同步的方法,为水电厂信息系统提供全面的模型编码格式、通用的模型建立步骤、灵活的模型存储格式、以及通用的数据表结构,以建立和存储水电厂信息系统内所有主设备模型信息,提高水电厂信息系统的可扩展性和可维护性,同时也为分布式水电厂信息系统提供一种模型自动同步的解决方案。
具体实施方式
下面结合附图对本发明作更进一步的说明。
如图1所示为一种水力发电厂主设备模型建立、存储和同步的方法流程图,具体包括如下步骤:
(1)检测历史数据库中是否存在该主设备的设备模型,若不存在则跳转至步骤(6);
(2)检测本地是否存在该主设备的设备模型XML文件,若不存在则跳转至步骤(4);
(3)比较本地的设备模型XML文件和历史数据库中的设备模型的修改时间,若本地新则跳转至步骤(5);
(4)从历史数据库中下载设备模型至本地,存储为本地的设备模型XML文件;
(5)加载本地的设备模型XML文件,跳转至步骤(7);
(6)在本地建立该主设备的设备模型,具体包括如下步骤:
(6-1)新建或选择该主设备所属工程;
(6-2)在所属工程项目下新建或选择该主设备所属厂站模型,每个工程项目下可建立0~99个厂站模型;
(6-3)在所属厂站模型项目下新建或选择该主设备所属专业性质模型,每个厂站模型项目下可建立0~99个专业性质模型,包括发电设备、变电设备等;
(6-4)在所属专业性质模型项目下新建或选择该主设备所属设备类型模型,每个专业性质模型项目下可建立0~99个设备类型模型,包括发电机、水轮机、断路器、变压器等;
(6-5)在所属设备类型模型项目下新建该主设备的设备模型,每个设备类型模型项目下可建立0~99个设备模型,如发电机下建立1#发电机、2#发电机等;
(6-6)在该主设备的设备模型项目下新建构成该主设备的各个部件模型,每个设备模型项目项目下可建立0~999个部件模型,如1#发电机下建立定子、转子等;
(6-7)在各个部件模型项目下新建各自的部件参数,每个部件模型项目下可建立若干部件参数,单个部件下可建立0~99个参数类型,每个参数类型项目下可建立0~9999个参数,每个参数项目下可建立0~99个参数属性,如定子下可以建立有功功率、定子铁芯温度等模拟量类型参数,也可以建立第一路保护跳闸动作、事故停机按钮动作等开关量类型参数;其中参数类型为系统开发时预先定义的,参数类型包括:静态参数、模拟量、快变量、开关量、SOE量、状态量等,可以根据实际业务需求通过系统开发方式进行扩充至99种参数类型;每种参数类型可以拥有多个参数属性,比如参数类型为模拟量,其可拥有的参数属性包括序号、参数名称、单位、电压范围类型、放大系数、校正系数、高限、低限、值等;其余模型,包括厂站模型、专业性质模型、设备类型模型、设备模型、部件模型、参数等的设定可以设计成在用户界面操作完成增删和编辑的形式;
(7)编辑该主设备的设备模型信息;
(8)将编辑好的设备模型信息存储为本地的设备模型XML文件;
(9)将本地的设备模型XML文件以二进制形式存储到历史数据库中,形成该主设备在历史数据库中的设备模型,且历史数据库中的设备模型按表8的存储表结构进行存储。
在步骤(6)完成时,系统自动为该主设备生成一个在系统内唯一的系统编码,所述系统编码由19位阿拉伯数字组成,以8字节long存储,编码规则如表7。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。