第5章 水电站计算机监控数据库系统.doc_第1页
第5章 水电站计算机监控数据库系统.doc_第2页
第5章 水电站计算机监控数据库系统.doc_第3页
第5章 水电站计算机监控数据库系统.doc_第4页
第5章 水电站计算机监控数据库系统.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章 水电站计算机监控数据库系统5.1 数据库概述数据是将现实世界中对客观事物的各种描述信息记录下来,形成可以识别的一组文字、数字或符号,它是客观事物的反映和记录。在水电站计算机监控系统中,测点、设备、画面、控制命令等都是数据。这些与被监控对象有关的数据可以以某种形式,如表格、关系图、视图、存储过程等形式组合在一起,形成各种各样的数据集合,这些数据集合以一定的组织方式存储在一起就形成了数据库。这里所说的“以一定的组织方式”指的是一个数据平台,通过这个平台可以对数据进行存储、检索、维护、加载和访问等管理,我们把这个能管理数据的平台称为数据库管理系统(Data Base Management System,简称DBMS),数据库管理系统实质上是一个专门用来管理数据库的软件。数据库管理需要人员,专门管理数据库的人员称为数据库管理员(Data Base Administrator,简称DBA)。数据库与数据库管理系统需要硬件的支撑,通常采用数据库服务器来安装数据库和数据库管理系统。数据库系统(Data Base System,简称DBS)就是数据库、数据库管理系统、数据库服务器和数据库管理员的总和,即数据库系统数据库数据库管理系统数据库服务器数据库管理员。5.1.1数据库系统的结构图5-1数据库系统层次结构图数据库系统包含四大组成部分:数据库、数据库管理系统、数据库服务器和数据库管理员,它们的层次结构如图5-1所示。为了能使关系更加清楚,在图5-1中外加了操作系统,它虽然不属于数据库系统的范畴,但它是数据库安装的基础。数据库和数据库管理系统必须安装在操作系统(如Windows、Linux)之上。数据库管理员可以通过数据库管理系统管理数据库。1数据库数据库(Data Base,简称为DB)由物理数据库和数据库字典两部分组成,一部分是按照一定的数据模型组织并存放在外存上的一组相关数据的集合,称为物理数据库。例如,水电站计算机监控系统中的各种量,如有功功率、无功功率、功率因素等信息,可以用一定的数据模型组织成一个集合,如采用字段、记录、函数等形式组成集合,这些数据集合形成了水电站计算机监控系统的物理数据库。另一部分是数据库中有关信息的定义和描述部分,称为数据字典。例如数据库中的数据集合必须由表、关系图、视图、存储过程、角色、用户、规则等进行描述,这些描述部分共同组成了数据字典的内容。数据字典是数据库管理系统和用户进行管理、维护及查询的依据。2数据库管理系统图5-2 DBMS在数据库系统中的地位和关系数据库管理系统(DBMS)是数据库系统的核心软件,是对数据进行存储、检索、维护、加载和访问等管理的软件系统。它在数据库系统中的地位和关系如图5-2所示。对水电站计算机监控系统的数据库系统而言,DBMS主要应具备以下几个方面的功能:(1)数据库的生成数据库生成包括实时数据库的生成和历史数据库的生成。根据主接线图、网络拓扑结构、采集模块定义、通信格式等信息,对开关量、模拟量和脉冲量的采集数据生成实时数据库。根据数据的安全性、重要性以及对存储速度的要求,运行人员通过DBMS自动或手动对实时数据进行存储,并生成历史数据库。(2)数据操作和管理数据库管理员能对数据库进行打开、关闭、修改和更新等操作,能对物理数据库和数据字典进行控制、存储、恢复、备份和还原等管理。(3)数据查询和统计数据库管理员能通过DBMS选择要查询的数据库,编辑查询条件,进行数据查询和预览,能通过查询界面进行事件统计、事故统计、操作统计等操作,能生成各种报表并召唤打印机等。3数据库服务器对数据库系统而言,其支撑硬件主要有计算机主机、外部存储器、数据通道、输入输出设备、网络等硬件设备。数据库服务器就是这些硬件的总称。数据库服务器必须具有足够大的内存用来安装操作系统、数据库、数据库管理系统以及其他软件系统。另外,基于水电站计算机监控系统实时性的需求,数据库服务器需要有足够大的外存、较高的I/O存取效率、较大的吞吐量以及较强的数据处理能力。4数据库管理员数据库管理员(Data Base Administrators, 简称DBA)是指管理、开发、维护、使用和控制数据库的人员。数据库管理员可以设置数据库的结构和内容,设计数据库的存储结构和存储策略,确保数据库的安全性和完整性并监控数据库的运行。5.1.2实时数据库概述数据库理论与技术的发展极其迅速,其应用日益广泛,在当今的信息社会中,它几乎无所不在。以关系型为代表的三大经典(层次、网状、关系)型数据库在传统的(商务和管理的事务型)应用领域获得了极大成功,然而数据库的应用正从传统领域向新的领域扩展,如水电站计算机实时监控、电力调度、数据通信、电话交换、电子银行事务、电子数据交换与电子商务等。这些应用有着与传统应用不同的特征,一方面,要维护大量共享数据和控制数据;另一方面,其应用活动(任务或事务)有很强的时间性,要求在规定的时刻或一定的时间内完成其处理;同时,所处理的数据也往往是“短暂”的,即有一定的有效时间,过时则有新的数据产生,而当前的决策或推导变成无效。以关系型为代表的三大经典型数据库在现代工程中的时间关系型应用面前却显得软弱无力,面临着新的严峻的挑战,由此而导致了实时数据库(Realtime Database,RTDB)的产生和发展。因此,实时数据库就是其数据和事务都有显式定时限制的数据库,系统的正确性不仅依赖于事务的逻辑结果,而且依赖于该逻辑结果所产生的时间。近年来,RTDB 已发展为现代数据库研究的主要方向之一,受到了数据库界和实时系统界的极大关注。然而,RTDB 并非是数据库和实时系统两者的简单结合,它需要对一系列的概念、理论、技术、方法和机制进行研究开发,如数据模型及其语言;数据库的结构与组织;事务的模型与特性;事务的优先级分配;调度和并发控制协议与算法;数据和事务特性的语义及其与一致性、正确性的关系;事务处理算法与优化;I/O 调度、恢复、通信的协议与算法等等,这些问题彼此高度相关。因此,只有将两者的概念、技术、方法与机制“无缝集成”(Seamless Integration)的实时数据库才能同时支持实时性和一致性。在水电站计算机监控系统中,实时数据库通常又称其为“核心数据库”。核心数据库的一个重要特征是要满足系统对时间的要求和限制,例如对快速性的要求,水电站计算机监控系统对实时响应的要求可达毫秒级。另外也有对动作配合的要求,如开机条件具备时,就应及时地发开机令。这里有一个量度标准,即实时性,它是实时系统响应能力的一个客观评价。实时系统的另一个特点是要能长时间连续稳定地工作,应该比被控设备,如发电厂的主辅设备有更好的可靠性和可利用率指标,这也是为什么要对实时控制系统提出可利用性能评价的原因。为了实现实时控制,实时性、可靠性、正确性、安全性以及突发事件的处理能力都是很重要的。通常实时性的保障得益于如下措施:高的主频及好的时间基准,高的采样速率和良好的中断能力,强有力的处理和恰当的网络传输速度,对来自现场的不合理信号的判别以及容错能力等。由于计算机结构的原因,实时数据库通常是常驻内存,可以节省较长的数据输入/输出的时间。前面所述的以关系型为代表的三大经典型数据库都属于商用数据库,如Microsoft Access 2000、Microsoft SQL Server 2000、Oracle等。由于实时数据库对实时性等方面有较高的要求,商用数据库的很难满足这种需求,因此实时数据库一般不采用商用数据库,而多数采用由相应公司自行开发的专用数据库。如国电自动化研究所开发的Nari Access数据库、EC2000数据库和NC2000数据库、中国水科院自动化所开发的H9000系列数据库以及加拿大CAE公司开发的SCADA数据库等都属于专用实时数据库。5.1.3历史数据库概述实时数据库虽然在存储效率上是通用的商用数据库不可比拟的,但是实时数据库的数据结构是面向记录型的,而通用的商用数据库是面向关系型的,因此实时数据库要处理大量具有关系型数据结构的历史数据是不大可能的。并且实时数据库要用到共享内存的存储方式,其存储容量也是有限的。因此在水电站计算机监控系统中需要综合实时数据库和商用数据库的优势建立统一的数据库平台。在水电站计算机监控系统中,所采用的商用数据库称为历史数据库,它是相对实时数据库而命名的。目前一般应用两种商用数据库建立历史数据库系统,一种是在Windows NT操作系统上,应用Microsoft SQL Server建立历史数据库系统,另一种是在Unix操作系统上,采用 Oracle 建立历史数据库系统。无论采用何种商用数据库建立历史数据库系统,其共同的作用是进行历史数据的操作、管理与维护,它必须与实时数据库系统相配合,实时数据库系统可以利用历史数据库系统的二维关系数据表的强大功能,而历史数据库系统可以利用实时数据库在内存中数据的高速处理机制、合理的数据存储结构和一定范围内的计算机制,来缓解磁盘读写的速度和安全性瓶颈。在水电站计算机监控系统中历史数据库主要保存静态数据和定时由实时数据库转发备份到历史数据库的实时数据,包括运行记录、报警记录和操作记录,这些数据根据相互之间的关系分别存储在不同的关系表中。所以历史数据库中有相当一部分数据是实时库数据加上时间标志,并进行一定的统计所得到的(如累计、平均和求和等)。历史数据库采用 SQL Server或Oracle,建立在历史数据库服务器上,实时数据库通过 ODBC 或者专用的访问链接与历史数据库实现数据的交换。从水电站计算机监控系统的数据库体系结构可以看出,在某种意义上可以认为实时数据库是历史数据库在内存中的映象。I/O 调度负责实时数据库与历史数据库间的数据同步,因此实时数据库的数据模式和历史数据库的数据模式具有一一对应的关系,历史数据库的数据模式跟随实时数据库的数据模式而修正。5.2实时数据库的设计与开发实时数据库(Realtime Database,RTDB)工作原理如图5-3所示,从图可以看出,水电站计算机监控系统是以实时数据库为核心,以数据库接口为媒介,以网络为通道,使监控系统中各种软件的功能得以实现。本节着重讨论实时数据库的设计原则、设计内容、性能要求、设计与开发、启动、安装与维护、数据链接以及其实时数据库管理系统(Realtime Data Base Management System,简称RDBMS)。5.2.1设计原则随着计算机网络技术及数据库系统的发展,实时数据库系统己在水电站中得到了广泛的应用。为了达到水电站监控的功能需求,实时数据库系统的设计要遵循的一般开发原则如下:1数据一致性数据一致性即数据的唯一性。在水电站计算机监控系统中,存在大量数据信息。由于监控系统由许多子系统组成,各子系统除了自己的特有的信息数据外,还有些信息数据必须与其他子系统共享。这些共享的数据必须同步更新,否则就会产生数据混乱现象,导致数据的不一致性和不唯一性。所以要保证数据的一致性和唯一性,实时数据库必须统一管理,需要建立统一的实时数据库管理系统,即RDBMS。2数据共享性正如前面所述,监控系统的各子系统存在数据共享,数据共享不仅指数据“共用”,还应满足:数据不依赖于各子系统,即由各子系统共用;数据与程序严格分离,数据的增删、更改等不需要更改程序。各子系统通过实时数据库管理系统RDBMS共享数据,其关系模型如图5-4所示。数据共享性对实时数据库提出如下要求:信息通用性,即包含各子系统所需要的所有信息;数据透明性,即各子系统对数据的共享是公开的;语言通用性,即各子系统可以利用某种统一的语言调用数据。3数据安全性实时数据库是各子系统实现其功能的基础,实时数据库系统的崩溃,对水电站计算机监控系统来说是一个灾难。因此必须保证实时数据库系统的高度安全性和可靠性。提高实时数据库系统安全性和可靠性的措施很多,如数据库服务器双机热备用、磁盘镜象、数据库拷贝备份等,而且目前广泛采用的大型数据库也都具有较完善的数据库安全保障措施。另外,从应用方面,为进一步保证实时数据库系统的安全性和可靠性,水电站应该实行专人负责和集中统一管理的制度。由于水电站计算机监控系统由很多子系统集成形成的,而这种集成的基础就是实时数据库系统。各个子系统在运行中,都可能对实时数据库中的数据进行操作。实时数据库系统应该按照上述的三个原则统一规划和统一设计。图5-3 实时数据库工作原理图5-4数据共享关系模型5.2.2设计内容在水电站计算机监控系统中,系统对 LCU 从网络上定时传送来的电厂主要设备的运行状态和运行参数进行必要的预处理,存于实时数据库中。电厂运行实时信息有多种数据类型,这些数据类型包括:开关量、模拟量和脉冲量,其中开关量包括一般开关量和中断开关量。一般开关量包括隔离刀闸、接地刀闸状态和故障监视信号等;中断开关量由以下过程形成:机组、母线和线路、厂用断路器和继电保护等开关信号,因一个事故可能引起一连串的开关量动作,需采用中断方式对这类信号进行采集,以提高分辨率。而模拟量包括电量和非电量。电量又包括直流电量和交流电量,非电量包括温度、压力、位移、转速等;水电站计算机监控的数据不仅数量繁多,而且相当多的数据之间存在着的联系。因此监控系统需要处理的数据多且复杂,设计一个强大而有效的实时数据库系统是决定整个监控系统成功开发的关键。水电站计算机监控系统的任务是对水电站运行进行自动监视、控制和管理。一方面需要维护大量的共享数据和控制信息;另一方面监控活动的完成具有严格的时间性,要求在某时刻或某有限时间内,从 PLC等外部采集开关量、模拟量和脉冲量等数据,并按彼此间的关联存取和处理采集的数据,这些数据的有效时间是短暂的,过时则失效。因此水电站计算机监控系统的正确性不仅依赖于逻辑结果,而且还依赖于逻辑结果产生的时间。5.2.3性能要求监控系统对实时数据库的性能要求主要包括以下几个方面:(1)快速性。由于水电站的运行变化是连锁反应,十分迅速的,这就要求实时数据库系统要有良好的响应特性,即能完成快速的数据访问。(2)可靠性。为了能够准确地反映水电站的状态,数据库系统应具有高度可靠性。(3)可扩性。由于水电站对监控需求随时间的推移会有所变化,例如需要增加或替换一个或一些功能,这时要求实时数据库系统能满足和适应监控系统的功能变化,能方便地进行扩充和修改,但不影响软件系统的应用。(4)安全性。由于水电站系统必须是连续不断的运行,所以实时数据库系统应该有较高的备用,以保证在任何操作出错、软硬件故障的情况下都不中断运行。(5)便捷性。应当能够在线生成和修改数据库。操纵者可以以统一的方法进行读写和存储。5.2.4设计与开发1设计思想实时信息一般每隔 l2 秒钟采样一次,随着时间的推移,显然数据量是非常庞大的,如何合理组织数据保证较高的存取效率就显得非常重要,因此必须对实时数据库结构进行优化设计。电厂生产实时信息包括模拟量、开关量和脉冲量等多种类型,其内容涉及到发电机组、水轮机组、保护装置、励磁装置、调速装置、变电设备和其它设备等。每个数据除了实际数值外,还有相应的门坎阀值如越上上限、越上限、越下限、越下下限、复上限、复下限等信息需保存,以便进行报警判断处理。目前,实时数据库一般采用按设备分类的方法来组织实时数据的结构,即将实时数据按发电机组、水轮机组、保护装置、变电设备和其它设备等类型分别存储到不同的表中。实时数据库一般采用面向对象(OOP)的思想和方法进行设计和开发,数据结构的设计都围绕类和对象来完成。对象和类的组建是 OOP 程序设计的基础,也是实时数据库开放性和可扩展性的关键。这种设计的特点是能设计出网络化和层次化的系统结构模型,用以满足监控系统各类复杂应用软件的要求。面向对象技术从 80 年代初开始在计算机软件开发领域十分活跃,其优越性已经得到了世界范围的广泛认同。面向对象技术的实质是将现实世界中的物体(对象)按其具有的共同特性进行抽象,从而提出了“类(Class)”的概念。认为对象是类的实例化产物,如监控系统的对象有发电机、变压器、线路、开关和辅助设备等,我们可以把它们抽象为设备类,而这些对象是设备类的实例。类具有的重要特征是可以继承并加以扩展。面向对象技术使各种设备以类的形式出现,如发电机、变压器、开关和刀闸等设备用类的符号来表示,打开这些类的符号就可以看到相关的参数,如发电机类有关的参数有机组转速、机端电压、无功功率等,这些参数将以属性的形式出现在类中,开发人员可以直观方便地对这些的属性进行赋值、读取和运算。类的属性既可以在人机界面、图形显示、数据库操作等模块中得到使用,也可以在其他高级应用软件中经继承后使用。水电站计算机监控要完成大量的数据处理和运算,而处理方法和算法将以函数和方法的形式封装在类中,操作和运行人员无需关心处理方法和算法的细节,只需知道处理和运算结果,并知道如何运用这些类的方法和函数即可。2数据结构水电站监控系统有层次结构的特点,典型的水电站是由母线、机组、开关站、闸门、公用设备等组成,这些设备由 LCU 进行控制,不同的 LCU控制不同的设备对象。由此,把各类设备定义成相关类的基础上,将 LCU 定义为包含各种设备的包容类,最后将水电站定义为 LCU 的包容类,这样整个水电站就构成一个具有继承关系的树形结构,如图5-5所示。为整个数据库提供良好的数据基础。5-5 基本数据结构简图采用这种树形结构的好处:一方面与实时数据库的结构模型相同,通过对不同层次类增加相应的属性和函数可以实现对该类对象的操作,而不会影响其他层次和对象,树形结构模型非常符合“分层分布式的面向对象监控系统”的设计思想;另一方面,对各类数据定位、管理和操作等处理更加方便、快捷。另外,如果是梯级电厂,在水电站对象上面还可以设置一层“梯级对象”,用于管理下面的水电站对象。把水电站类、LCU类和设备类用数据表表示出来,一个类可以对应一个数据表,类与类之间的关系通过视图、关联和存储过程等进行描述,这样就形成了整个水电站计算机监控实时数据库的数据结构。3开发OOP设计使用现实世界描述事物的方法来设计软件,具有把复杂的事物分解为一个个相对独立的对象并协调起来完成复杂的功能。在OOP设计中,程序由一个或多个类组成,它们用来描述一组具有共同特性的对象。类是在系统中运行时刻的基本元素,是属性和行为的封装体。“类”具有可继承性和多态性,它们给外界提供了统一的接口,而且一旦建立,就可重复使用,这种理想的模块化机制,大大增强了软件的可重用性和可扩充性。现在,多种功能强大的OOP设计开发工具与平台的出现,如基于UNIX平台的Motif,基于Windows 95/98或Windows NT平台的Visual C+、Visual Basic、Delphi等,更是有力地支持了OOP设计思想在实际中的应用。以下采用Visual C+语言举例说明设备类的设计。设备类的部分设计代码如下所示:Class CLS_ Equipmentpublic:/*设备基本属性*/CString Name;int ID;long LcuID;/所属 LCU 编号/*与设备相关的其他属性和方法*/上述设备类定义中,ID 为一整型变量,用于存储设备在水电站中唯一索引标识符,该标识符与数据库相关联,形成实例后,既可表示元件的唯一性又便于与实时数据库相对应。各类设备,如母线类、连接线类、负荷类、断路器类、隔离刀闸类、变压器类以及发电机类等,均由该基本类派生。设备类除具有基本属性外,还有各自独立的属性。水电站具有层次关系,因此只定义基本设备类不够,还要反映这种层次关系,在 OOP 程序设计中有包容类的概念,包容类可以包含一系列其他对象,既可以封装该对象,又可以对封装的对象进行管理。根据上述水电站的层次特点,形成两个主要的包容类:LCU 类和水电站类。LCU 类用于管理它所控制的设备,它除了具有反映自身状态的属性外,还包括一组指向该对象的指针,其程序代码举例如下:Class CLS_LCUpublic:CString Name;Int ID;Protected:CTypePtrArray EquipPointArr;Public:void AddEquipment(CEquipment *pEquip);void DeleteEquipment(int Index);CEquipment *GetEquipment(int Index);/*与 LCU 相关的其他属性和方法*/ 其中Name 代表 LCU 的名称,ID 存储 LCU 的编号。此外,该类还定义一个指向设备对象的指针数组类 EquipPointArr,用于存放该 LCU 所指向的各类设备指针。ADDEquipment( )与 DeleteEquipment( )函数分别负责增添和删除该 LCU所包含的设备,GetEquipment( )函数用以获取指向某设备对象的指针。用同样的方法可以创建水电站类。当然,水电站类、LCU类和设备类是监控系统实时数据库的主类,另外还有通信类、测点类以及其他辅助类,这些类的设计方法类似于设备类的设计,在此不一一列举。类设计完成后,即可生成实例,并由上一级包容类进行管理。实时数据通过类的属性进行传递,通过类的方法和函数进行处理和运算。实际上,由各种类表以及类之间组成的关系链表就形成了面向对象的实时数据库。5.2.5启动、安装和维护1启动和安装由于实时数据库对象存放于监控系统各工作站的内存中,在工作站主机开机时,需要根据外存存放的数据对实时数据库进行初始化(即生成这些实时数据库对象)。初始化实时数据库的方法很多,有采用普通的文本编辑器直接编辑 ASCII 数据源文件,然后调用转换程序生成实时数据库的方法;也有设计一个专用的实时数据库外存文件,然后调用该文件生成实时数据库的方法;也有采用通用的数据库软件如Access、SQL Server或Oracle 设计与实时数据库相应的表,实时数据库参数存放在表中,然后通过检索和查询表的方法生成实时数据库。根据实时数据库各种类的属性建立起各种类的数据库表,实时数据库类的属性即为数据库表的字段。实时数据库的生成是通过实时数据库各类的构造函数实现的。例如水电站类和现地控制单元类的关系为聚集关系,一个水电站类对应于多个现地控制单元类,在产生水电站类时应该同时产生多个现地控制单元类,利用水电站表中的数据初始化现地控制单元类的属性,并将其通过链表链接起来。在现地控制单元类的生成过程中通过其构造函数实现对实时模拟量类、实时开关量类、脉冲量类的生成,利用数据库表对其属性进行初始化,然后通过链表将这些类链接起来。实时数据库生成后,就可将硬盘上的数据库文件安装到实时数据库,由实时数据库的安装程序来实现。它主要完成:(1)为数据库分配内存,使之驻留内存;根据水电站的层次结构,为各库建立层次型的指针链接,即上一层数据库的记录对下一层数据库相关记录的指针是一对多的关系,并检验层次指针的合理性和层次结构的完整性;(2)建立管道和主线程序,准备与监控系统的应用软件进行通讯。2运行和维护实时数据库运行和维护的内容主要有:(1)主从结构和设备数据的录入、修改和删除;(2)采集数据的录入、修改和删除;(3)公用数据库字典的维护。水电站的设备发生变动时,通过在线修改可添加、更改和删除实时数据库中数据字典,并及时地反映到实时数据库中。实时数据库的数据字典保存在数据库服务器的专用数据库中,在开发出交互式图形操作界面之前,可由开发人员在数据库服务器端进行修改。5.2.6数据链接1实时数据库与历史数据库的链接在水电站计算机监控系统中一般采用 SQL Server或Oracle 数据库作为历史数据库。历史数据库主要保存静态数据和定时由实时数据库转发的实时数据,所以历史数据库中有相当一部分数据是实时库数据加上时间标志,并进行一定的统计所得的。历史数据库建立在历史数据库服务器上,实时数据库通过 ODBC 或专用的数据接口与历史数据库链接,实现数据的定时转储。实时数据库与历史数据库间的数据同步由I/O 调度负责。由于 I/O 操作是整个系统中最慢的步骤,为了减少数据访问服务器的次数,可以采用单线程定组批量写入的方式,这样比逐条存入历史数据库的效率要高很多,而且可以减少对磁盘的访问次数和处理时间,增加硬盘使用的寿命。2实时数据库与应用程序的链接实时数据库提供与应用程序之间的方便、灵活、快速的传递数据功能。目前,监控系统大多采用的是客户端服务器(C/S)方式,数据库为服务器(Server),应用程序为客户端(Client)。实时数据库采用多线程模式与应用程序通讯,应用程序通过数据通道发送请求,请求实时数据库提供数据,实时数据库根据请求,在库中查找到相应的数据再通过数据通道发送给应用程序。5.2.7实时数据库管理系统图5-6 数据库集成管理工作流程实时数据库管理系统(RDBMS)主要负责控制整个系统实时数据库的运行和存取。但为了满足水电站计算机监控系统对实时数据和历史数据集中管理的要求,尤其是中小型水电站,可以将实时数据库(RDBS)与历史数据库(HDBS)结合起来进行管理,形成系统管理层。历史数据库管理系统(HDBMS)建立初始数据,完成系统的初始化工作,提供与应用程序交互的用户接口。RDBMS 通过 ODBC接口或专用的数据接口与 HDBMS 合作完成全部功能。RDBMS 从 HDBMS 获得模式信息,装入数据,开始系统运行或进行数据恢复,向 HDBMS 转储全部数据,完成定期备份功能;系统管理层提供应用软件访问实时数据库的存取接口,以实现二者的通信。系统管理层的最终目标是采用前后台结构将实时数据库管理系统(RDBMS)和历史数据库管理系统(HDBMS)作为一个统一的数据库服务器,对应用软件提供一个统一的 SQL 操作界面,让应用软件能以访问 HDBMS 相同的形式访问 RDBMS。前台为 RDBMS,后台为 HDBMS。后台 HDBMS 提供模式定义、模式修改、定期备份、形成日志文件(LOG)等功能,前台 RDBMS 定期(每隔一个系统采集周期将实时数据转存到后台数据库中。实时应用软件访问 RDBMS,而数据库管理员和非实时应用软件访问 HDBMS。为实现统一的透明的 SQL 访问接口,而又不影响系统的执行效率,在数据库服务器中创建数据归属表(DBT),对属于实时数据库还是历史数据库进行登记,同时构造预编译器,对访问实时数据库的 SQL 语句进行预编译,转化为对 RDBMS 提供的存取函数的适当调用,以保证对实时数据的快速存取。数据库集成管理工作流程如图 5-6所示。5.3历史数据库的设计与开发在水电站计算机监控系统的实际应用中,一些需要长期保存和进行事后处理的数据,如温度量越限次数统计、状态量的变位和复归时间统计、机组开停机次数统计、机组运行停机时间的统计等,必须采用历史数据库进行存储和处理。当前有两种历史数据库可供选择,一种是在Windows操作平台上,安装Microsoft SQL Server作为历史数据库;另一种是在UNIX操作系统上,安装Oracle作为历史数据库。有了历史数据库,电厂正常运行情况的有关数据的统计、故障或事故的数据的处理以及其他历史记录的统计就显得轻而易举。5.3.1基于Microsoft SQL Server的历史数据库的设计1系统的构成(1)结构与配置要完成基于Microsoft SQL Server的历史数据库,首先需要在监控系统中增加一个网络节点,并使该节点与监控系统的通讯网络链接。其次在网络节点上接历史数据库服务器,可以接一台数据库服务器配置为单服务器方式,也可以接两台数据库服务器配置成为主/从方式。如果配置为主/从服务器方式,则还需要在服务器上安装应用程序自动实现主/从服务器的切换以及保持双机数据的一致性,当然也可以采用磁盘阵列(RAID)方式保持双机数据的一致性。最后,在历史数据库服务器上安装历史数据库管理系统,用以对历史数据库的访问、管理和查询。(2)软件构成历史数据库从实时数据库中接收实时数据,并对数据进行处理、计算和统计。历史数据库系统的软件构成如图5-7所示。图5-7 历史数据库系统的软件构成图Microsoft SQL Server是一个高性能的关系型数据库开发平台,它具有客户端/服务器(C/S)体系结构,能构成大规模的分布式数据库,数据接口采用开发数据库互联ODBC(Open Database Connection),而编程接口采用开放数据服务ODS(Open Data Services),ODBC数据库访问接口是国际标准接口,在Microsoft SQL Server上运行的各种应用程序可以直接访问其他关系数据库,如Sybase、Oracle等。2功能和特点历史数据库系统的功能和特点举例如下:(1)数据库的生成历史数据库直接由实时数据库按照网络节点配置情况加载形成。实时数据库相应测点组态信息可直接按节点加载到历史数据库中,也可以用人工的方式添加、修改和删除。在历史数据库中,按照需求可对某些重要的数据进行报表统计和历史趋势曲线数据记录。Microsoft SQL Server的所需存储空间可以根据配置情况进行估算,并自动创建数据库、数据库表以及ODBC链接字符串等。(2)数据库的链接按照网络配置表与网络节点进行链接,接收实时数据库I/O测点的数据,并对数据进行存储、处理、统计和计算等。(3)事故追忆保存当事故发生时,在数据库中自动保存事故追忆记录,包括追忆时间、追忆源以及其他相关追忆信息。在进行事故追忆查询时,可以方便地进行事故重演,可采用应用软件对事故进行播放、慢放与快进,并进行事故分析。(4)报表管理在历史数据库中自动保存各种报表数据,如模拟量抄表、越复限统计、累计运行时间统计;开关量动作次数、复归次数统计、累计运行时间统计;电能抄表、电量累计及峰、平、谷电量统计等。保存的报表数据可以生成各种报表、可以查询和打印。(5)数据查询可以采用多种方式如按曲线、按记录、按报表等查询历史数据库。按曲线方式查询可以查询同一时段不同测点的曲线,也可以查询不同时段内同一测点的曲线。按记录方式查询可以查询某一对象的各种记录,这些记录按事件发生时序排序。按报表查询方式可以把各种数据形成自定义报表并通过界面显示出来。(6)数据库维护图5-8 历史数据库软件构成图数据库维护一般采用自动的方式。在系统配置中使自动维护应用程序与历史数据库关联,并在应用程序中设定数据库的备份时间,备份数据的保存时间、备份数据的保存路径等参数,应用程序便会根据设定自动备份数据库。如设定每日0:00点备份数据库,则应用程序将在每日0:00把数据库进行备份并保存到设定的路径。如设定的保存时间为6个月,则6个月以前的备份将被自动删除,保存时间的长短要根据数据库服务器的容量而定。5.3.2基于Oracle的历史数据库的设计如果水电站计算机监控系统的操作系统选用UNIX操作系统,则可以安装基于Oracle的历史数据库。由国电自动化研究院开发的水电站计算机监控系统NC2000的历史数据库就是采用Oracle数据库组建的,以下以NC2000为例说明基于Oracle的历史数据库的设计。1系统的构成(1)结构和主要配置基于Oracle的历史数据库以UNIX操作系统作为支撑平台,并通过网络与实时数据库链接。它可以配置为单机运行方式和主/从方式。在主/从方式下,自动实现数据的同步和主从切换。另外也支持RAID磁盘阵列,但需要操作系统驱动程序和相关硬件的支持。(2)软件的构成历史数据库软件有历史数据库管理系统、Java应用接口程序、一览表查询软件、事故追忆查询软件、报表生成软件以及其他相关软件。其体系结构如图5-8所示:历史数据库管理系统采用C语言编写,与Oracle数据库实现无缝链接,并使用缓冲池技术,具有高速数据处理能力。数据库链接可以采用ODBC和JAVA数据库链接JDBC(Java Database connectivity)等通用数据访问接口,方便用户编程扩展应用。实时数据库管理系统也采用C语言开发,负责把采集的数据发往历史数据库,并实现与实时数据库的无缝链接。Java应用接口程序为所有查询软件提供必要的和统一的数据访问接口,以上软件均通过高速网络连接。2数据库的生成首先在服务器上安装Oracle数据库软件,创建一个空的数据库。然后历史数据库管理系统根据监控系统需留存数据的要求来创建相应的数据表,如事故一览表、越限一览表、测点配置表、电能量配置表、事故追忆记录表、状态统计表等。3数据采集与存储数据采集由实时数据库管理系统完成。该软件定时采集实时数据库的模拟量、温度量等非状态量,定时采集开停机状态、阀门状态等开关量,定时采集开关变位、油泵启停、事故、故障、数据越限和复位等事件,并将这些信息数据发送往历史数据库管理系统。数据存储由历史数据库管理系统实现,一旦收到实时数据库管理系统的数据信息后,该服务程序对信息进行分类、记录、统计等各项运算,并存储其运算结果。历史数据库管理系统的运算包括:(1)分类:主要完成数据的一览表分类;(2)记录:包括模拟量、温度量、电能量等非状态量的定时记录;事故追忆记录以及其他数据的记录;(3)统计:包括模拟量、温度量的越复限次数统计;状态变化动作/复归次数统计;电能量累计及峰、平、谷时段电量统计;机组开停机次数统计;机组开停机时间累计;辅助设备启停次数统计;辅助设备运行时间累计以及其他需要统计的项目。4数据查询历史数据库提供了方便快捷的查询系统。用Java语言编写,具有友好查询界面和跨平台运行特性。(1)报表查询用户可以使用报表生成软件自主定义报表内容及格式,指定要查询的数据,然后再进行查询。查询时只需指定时间就可以得到满意的报表。(2)曲线查询进行曲线查询时可以任意指定查询的测点和起始时间,测点可以任意组合。曲线查询功能的设计主要针对定时采集的模拟量和温度量等数据,可以得到机组负荷曲线、全厂负荷曲线、设定负荷曲线、水位变化曲线、温度变化曲线、电流变化曲线、电压变化曲线等曲线。(3)一览表查询一览表查询主要用来查询实时数据库中发生的各种事件信息,可以按时段查询各种记录,也可以按时间查询,可以查询的一览表包括状态一览表、事故一览表、故障一览表、越复限一览表、辅助设备启停一览表、操作一览表、流程信息一览表等多种一览表信息。也可以对这些一览表进行组合查询。在查询一览表时,可以按机组分别查询,也可以查询全厂总的一览表信息。查询时有关信息将自动按照事件发生时间逆序排列、有助于快速检索。(4)事故追忆查询事故追忆是水电站发生事故后,重现历史数据库记录下的在事故发生前和事故发生后的一系列相关参数,包括机组的状态、有功、无功、电流、电压、开关位置、温度、辅助设备状态等电气量和非电气量信息,另外还包括事故记录启动原因、启动时间等。事故追忆查询软件启动后,将自动与历史数据库管理系统链接,并读取历史数据库中的事故追忆记录信息,如事故追忆名称、各种事故追忆记录的总数及未读信息个数、各种事故追忆的发生时间。用户可以通过选择项来决定查看的事故追忆条目,并把查询结果打印出来。(5)历史回放历史回放是实时数据库中的图形显示软件与历史数据库服务系统相结合的一种查询方案。将图形显示软件设定为历史回放状态,并且指定回放时间段,即可以显示在该时间段内水电站各个测点或辅助设备的状态变化,重现了历史上水电站的运行状态。5数据库维护由于水电站的数据量比较大,运行时间越长,数据库就会越大,为了防止数据库的无限膨胀,历史数据库管理系统对数据采用自动维护方式。自动维护方式可以根据具体水电站的要求来定,例如,定时采集的数据在数据库中保存15天,15天后其数据的采样频率改为5min一点,30天后改为10min一点,60天后改为30min一点。180后数据将被删除。对各种信息的保存时间不一样,一般一览表信息仅保存最近10000条记录,状态变位、辅助设备启停等事件数据信息保存2年,统计信息保存2年。历史数据库维护操作由历史数据库管理系统自动完成,无需人为干预。6主/从数据库切换历史数据库在主/从方式下,由历史数据库管理系统决定主/从状态,实时数据库数据发布系统与主历史服务程序链接和交换数据。主/从数据库之间的数据备份由历史数据库管理系统自动完成。Java应用接口也会自动判别主/从状态,并始终与主历史数据库服务器保持链接,保证查询结果的可靠。5.3.3历史数据库的开发历史数据库的开发一般采用可视化语言商用数据库系统进行开发,如采用Visual C+SQL Server、Visual C+Oracle、DelphiSQL Server、DelphiOracle、Visual BasicSQL Server等。历史数据库的开发涉及很多核心技术,如数据仓库创建技术、关系型数据库建模、数据访问技术、数据环境集成技术、数据报表开发技术、数据图表开发技术、远程数据库开发技术、多层结构数据库应用技术、复杂数据控件开发技术、数据安全防范技术、数据库备份技术等技术。这里只对数据库开发中的一些通用简单的技术作简要的介绍。1数据库表的自动创建数据库表的创建可以采用通用数据库语言SQL语言。创建数据表的SQL语句如下:CREATE TABLE dbo.表名称 (ID int IDENTITY (1, 1) NOT NULL ,/标识字段字段1 char (10) COLLATE Chinese_PRC_CI_AS NULL ,/字符型1字段2 datetime NULL ,/时间型字段3 float NULL , /浮点型字段4 image NULL , /图形型字段5 int NULL , /整型字段6 ntext COLLATE Chinese_PRC_CI_AS NULL , /文本型字段n varchar (20) COLLATE Chinese_PRC_CI_AS NULL /字符型2) ON PRIMARYGO2数据库的操作编程数据库的操作编程主要涉及到数据库表或视图的查询、增加、修改和删除等。可以在数据库写存储过程或在应用程序直接写SQL程序段来完成这些功能。(1)查询。简单的SQL查询包括SELECT命令、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件。其语句如下:SELECT Name FROM TB_State

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论