燃气SCADA系统中数据采集服务器双机热备的实现

摘 要

燃气SCADA系统用于对燃气管网运行进行实时监控,实现燃气企业生产过程和调度管理的自动化和现代化

燃气SCADA系统用于对燃气管网运行进行实时监控,实现燃气企业生产过程和调度管理的自动化和现代化,同时为天然气公司的高层决策系统及管理系统提供数据分析依据,是天然气公司业务信息系统的重要组成部分,因此保证燃气SCADA系统的稳定、可靠运行具有非常重要的意义。
    燃气SCADA系统主要由主调度中心、远程监控站点和通信系统组成。调度中心主要由计算机系统组建,包含SCADA服务器、SCADA工作站和通信处理机等;监控站点设备平台由RTU/PLC组建,实现对现场仪表参数的实时监控;调度中心与监控站点通过通信系统进行监控参数和指令的信息交换,通信处理机负责监控数据集中和通信管理。
    数据采集服务器和数据库服务器是燃气SCADA系统中最重要的两个部分,前者完成整个系统的数据采集、远程控制等功能,并负责通讯协议的解析、实时数据的显示、实时数据的入库等;后者是整个SCADA系统的数据存储中心,为燃气SCADA系统的数据分析、报表、数据查询、数据统计等功能提供数据源。一旦数据采集服务器和数据库服务器发生故障或应用停机,将导致整个燃气SCADA系统无法正常运行,给燃气的安全生产、安全输送带来巨大的安全隐患,因此为了保证燃气SCADA系统稳定、可靠运行,目前国内大型的燃气SCADA系统在这两个部分一般都采用双机热备设计。
数据库服务器一般安装0racle、SQL Server等关系型数据库,操作系统一般采用微软的Windows Server,微软的Windows server一般带有集群管理软件,可以完成操作系统的集群管理,而关系型数据库也都有完善的冗余热备组件,只要合理配置即可实现数据库服务器的双机热备。数据采集服务器则不同,在数据采集服务器上一般安装组态软件服务器版和微软的Windows Server操作系统,操作系统可以通过集群组件实现双机热备,而组态软件一般没有专门的热备组件(如Intouch、WinCC)或者带有的热备组件无法与操作系统实现同步热备(如iFix),因此真正实现数据采集服务器的双机热备是当前燃气SCADA系统设计中的一个技术难点。
 

1 问题的分析
双机热备的数据采集服务器正常情况下由主服务器完成所有的数据采集、数据入库等工作,备用服务器实时监测主服务器的工作状态。当主服务器发生故障时,由备服务器接替主服务器完成以上工作,并且所有的切换工作均南系统自动完成。因此数据采集服务器要实现真正的双机热备,必须要综合考虑网络状态、磁盘状态、操作系统运行状态、组态软件运行状态等4方面的要素,因为以上任何一个状态发生故障,均会导致数据采集服务器无法正常工作。
    目前燃气SCADA系统常见的解决方案是在两台热备的数据采集服务器上建立集群管理,对外虚拟出一个唯一的IP地址,通过集群管理器监测两台服务器的网络状态、磁盘状态和操作系统运行状态,当主服务器的以上3个状态中任意1个出现故障,备用服务器接管主服务器的工作,而此时的主备服务器切换只完成了对网络、磁盘和操作系统的切换,无法完成组态软件(数据采集服务器运行的最关键的软件)的切换,此时大多数的燃气SCADA系统的应对方案是在主备服务器上分别安装独立的组态软件,并且主备服务器上的组态软件都处于运行状态,即同一时刻,不管主备服务器哪一台处于运行状态,主备服务器上的组态软件都在采集实时数据并向数据库服务器存储实时数据,这样做会带来两个问题,其一是同一时刻总是有两台服务器在采集各个终端站的数据,耗费了宝贵的通讯带宽,特别是对于GPRS无线通讯链路,在40K左右的有效带宽上,要同时保证主备两套通讯链路的实时数据交换几乎是不可能的,其通讯的有效性和实时性反倒不如未做双机热备情况下单台的数据采集服务器效率高,这样的结果显然违背了我们的设计初衷;其二是两台数据采集服务器同时向数据库服务器存储数据,由于通讯效率低下,导致两台数据采集服务器在同一时刻获得的现场设备状态不一致,如主服务器在0点0分0秒监测到现场某个阀门状态为关闭,而备用服务器由于通讯效率问题,数据显示延迟,在0点0分0秒读到的是此阀门在12点59分55秒的数据,而此时阀门还处于开启状态,这样就导致SCADA系统中数据出现二义性,操作员工作站上会因此出现设备状态的误报警,由此产生的分析数据和统计数据也会出现重大问题,而最关键的是系统本身无法识别这两个数据哪一个是准确的。由此可见,采用以上解决方案无法实现真正的数据采集服务器双机热备,反而使系统的稳定性和数据的有效性降低。
   要体现SCADA系统数据采集服务器双机热备的真正作用,就必须寻找一条技术路径,将组态软件的主备热切换和集群管理器结合在一起,同时确保同一时刻只有一台数据采集服务器上的组态软件在工作。
2 解决方案
    针对前面的问题分析,可以看出,问题的关键是保证组态软件的主备切换和集群管理器的主备切换保持一致。仔细研究微软的集群管理器组件的工作原理,不难发现,集群管理实际上是依托操作系统中的服务来完成管理工作的,而且每个服务之间都存在继承关系,即优先级。优先级最高的是操作系统软件(集群管理软件),优先级次之的是磁盘管理服务,然后是网络服务,网络服务下面绑定了数据库访问的服务,即数据库访问要依存于网络服务,网络服务依存于磁盘管理服务,磁盘管理服务依存于操作系统,当任何一个服务发生故障时,都会触发主备服务器的切换,而且切换时服务的关闭顺序是首先关闭数据库访问服务,其次是网络服务,然后是磁盘服务,最后是集群管理软件。因此,要实现组态软件的主备切换和集群管理器的主备切换保持一致,最简单的方法就是在组态软件与数据库访问服务之间建立一个依存关系,即当数据库访问服务关闭时,同时关闭组态软件;当数据库访问服务开启时,同时开启组态软件。
    解决思路出来后,在具体实施过程中又发现了一个小问题,即目前国内和国外的组态软件都是多任务的,无法找出一个主服务,通过对它的启停来控制组态软件的启停。若将组态软件所有的任务进程都与数据库访问服务建立依存关系,却经常会出现某个进程关闭错误而导致整个双机切换出现故障。经过反复试验,发现关闭组态软件主窗口可以实现组态软件的无故障启停,由于主窗口无法通过服务或进程管理来关闭和启动,因此需要编程来建立组态软件主窗口与数据库访问接口之间的依存关系。
    实现方式是以集群管理组件作为系统的切换平台,管理双机热备系统的集群管理器、网络、磁盘及Oracle服务的切换,通过自己开发的中间件(以下简称HotSwitch)建立iFix软件与Oracle访问服务的继承关系,把iFix软件作为0racle主服务的一个子服务,当Oracle发生故障时,集群管理组件会自动将服务从当前运行的服务器上切换到备用服务器上,而此时iFix软件会捕捉到此动作,通过HotSwitch软件同步完成iFix软件的切换,iFix软件的关闭和启动通过编程操作iFix软件的主窗口来实现。
    整个系统的切换由集群管理软件和HotSwitch软件管理,其关系如图3。
    整个系统切换步骤如图4所示。

3 试验验证结果
    本双机热备解决方案已经在实验室平台和多个国内大型燃气SCADA系统中得到验证,SCADA系统配置双机热备系统后,系统的稳定性和可靠性大幅提高,平均无故障时间由3 000h提高到30000h,系统的可用性和可靠性达到99.9%。系统平均故障切换时间小于30s,这一指标已经达到国内的先进水平,能够真正实现基于数据库软件、操作系统、监控软件三位一体的双机热备。
4 总结
    本文主要介绍了SCADA系统中数据采集服务器双机热备的必要性,同时给出了完善的解决方案,从分析、解决方案的制定、遇到的问题、程序源方面都做了详细的描述,此解决方案已经成功北京燃气、大连煤气、江苏省天然气、西宁燃通过双机热备配置,使燃气SCADA系统的稳可靠性得到了大幅的提升,最大程度地避免了系统的宕机故障和应用停机,保证了系统数据实时性和连续性。同时,本解决方案完全基于Windows平台,相对于Unix平台而言具有不可比拟的灵活性和扩展性,系统配置简单、维护方便,用户再也不必为传统意义的小型机热备系统投入大量设备资金和维护资金。
    本方案以天然气公司的现状和实际需求为依据,也可将此应用扩展到如水、电、热力等其他公用行业中。
 
(本文作者:刘涛1 张国栋1 宋来弟2 1.北京航天拓扑高科技有限责任公司 100176;2.北京市燃气集团有限责任公司 100035)