一种SCADA系统的1+N冗余机制设计方法
技术领域
[0001] 本
发明涉及SCADA分布式平台所应用的各个专业技术领域,涵盖电
力监控、
水利监控、油
气化工、轨道交通、
煤炭矿井等自动化工业控制行业。
背景技术
[0002] SCADA(Supervisory Control And Data Acquisition:SCADA)系统即
数据采集与监视控制系统,是集计算机、网络、通信、传感等技术于一体的工业自动化控制系统,可广泛应用于电力、水利、石油、化工、轨道交通等行业的数据采集与监视控制等诸多领域。SCADA系统可以实时采集现场数据,对工业现场进行本地或者远程控制、对工艺流程进行全面、实时监视,为生产调度和管理提供必要的数据,并可藉此运用
先进控制论
算法提供更进一步的辅助分析和生产调度决策。
[0003] 为了保证SCADA系统连续有效的运行,其功能可靠性和
稳定性都需要给予特别的考虑。一般而言,SCADA系统可以从
软件、
硬件、网络通信链路等方面采用多层次的冗余技术来达到较高的可用性和可靠性。特别是SCADA系统所采用的
服务器,作为关键部件,其上不仅运行有实时
数据库服务,还要提供各种服务
进程,因此SCADA服务器一般采用冗余模式。
[0004] SCADA系统平台采用分层分布式的运行方式,系统中的任何一个应用进程都可以根据需要配置在不同的一个或多个
节点机器分布运行,所有的进程都具备1+N多冗余功能,该技术可极大地提升系统的容错能力。
[0005] 所有的应用服务程序不仅具有一个正在运行的进程,还有能完成同样功能的后备进程热备用在N个其它节点上,如果当前运行进程的机器出现单点故障,其它节点的备用进程会按照选举算法或配置的有限策略迅速接管故障节点所承担的服务,极端情况下,若还存在一个能够正常提供服务的节点,则在最后所有服务都将在该节点上运行(性能允许情况下)。本发明创造将详述SCADA系统平台1+N冗余容错机制的实现原理。
发明内容
[0006] 针对
现有技术中存在的问题,本发明的目的是设计一种SCADA系统的1+N冗余机制设计方法,在多台服务器宕机后只要存在一台资源够用的服务器正常运行时,其仍然能够连续稳定的提供服务,保证了系统的可靠性。
[0007] 为了实现上述发明目的,本发明采用的技术方案为:一种SCADA系统的1+N冗余机制设计方法,其特征在于:
[0008] 步骤一、每个服务进程对象存在一个“服务器运行列表”配置项用于存储该服务应该运行在哪些服务器上,配置在列表前的服务器拥有更优先的执行权利;只有“服务器运行列表”中配置了服务器的名称,该服务才能在该服务器上运行,否则不会在该服务器上运行;
[0009] 步骤二、每台SCADA服务器有一个实时数据库,各服务器之间的实时数据库实时同步,以及一个实时数据库管理进程负责管理该实时数据库;在各服务器系统启动后,每个服务进程对象会查看自己的“服务器运行列表”配置项,如果当前机器名称在配置项中,该进程就会启动,并同时向本机的实时数据库管理进程报告本进程是可用的,并填写到实时数据库该服务进程对象的实时属性“候选列表”中;
[0010] 步骤三、本机的实时数据库管理进程经过仲裁,判断该进程可以作为该任务的执行者,并填写到实时数据库该服务进程对象的实时属性“执行者列表”中;实时数据库管理进程通过检查侯选列表中的侯选成员和判断侯选成员是否在机器上运行来实现进程死亡检测;如果在机器上有一个侯选成员,实时数据库管理进程定期与该侯选成员进程进行通信,如果在下一个通信周期之前应用没得到响应,本机实时数据库认为该侯选成员应用程序已经死亡;
[0011] 步骤四、每台SCADA服务器的实时库中还存在一个负责进行容错仲裁的管理进程POMS Master,它决定哪台机器运行相应的进程,并在进程在某台服务器运行失败后,在其它服务器间调度进程的执行;该管理进程POMS Master通过监控通讯报文来确定运行在网络上的该任务的计算机是否存在故障;
[0012] 如果在预定的时间内管理进程POMS Master没有从该服务器上接收到同步信息包,或从非同步机上接收到同步信息包,管理进程POMS Master把该服务器定为不同步;如果预定的时间内收到该同步信息包,并确认该服务器同步,管理进程POMS Master将负责从每个进程的“执行者列表”中选择其中一个作为该任务的实际执行者。
[0013] 本发明的有益效果
[0014] 作为综合
监控系统软件平台中的核心机制,本发明所设计的1+N冗余机制能够保证系统持续稳定、可靠的运行,该机制已经在大型系统中得到了应用与验证,目前已成功应用于南京地
铁、沈阳地铁、武汉地铁、淮安有轨电车等多条城市轨道交通综合监控系统中,并深受用户好评。
[0015] SCADA系统自身的复杂性,决定了冗余技术的复杂度,本发明所设计的1+N冗余机制,在多台服务器宕机后只要存在一台资源够用的服务器正常运行时,其仍然能够连续稳定的提供服务,保证了系统的可靠性,在极大程度上减少了因系统故障带来的不确定性因素并节省了维护成本。
附图说明
[0016] 图1为本发明
实施例的进程配置列表图。
[0017] 图2为本发明实施例的1+N冗余的实施步骤
流程图。
[0018] 图3为本发明实施例的三台服务器同步运行正常示意图。
[0019] 图4为本发明实施例的1+N冗余的切换过程(scada1发生故障)示意图。
[0020] 图5为本发明实施例的1+N冗余的切换过程(scada1、scada3发生故障)示意图。
[0021] 图6为本发明实施例的1+N冗余的切换过程(scada1、scada3发生故障后scada1恢复)示意图。
具体实施方式
[0022] 以下结合附图和具体实施例对本发明作进一步详细说明。
[0023] 假设1:完成一个SCADA系统的所有功能服务有5个,即历史数据存储进程、数据采集进程、报警进程、程控管理进程、计算服务进程。
[0024] 假设2:当前控制中心的局域网上有3台SCADA服务器,分别取名为scada1,scada2,scada3,如图1所示:本实施例的进程配置列表图。
[0025] 图1中带“斜体下划线”的表示当前服务优先运行在哪一台机器上;其它不带“斜体下划线”的表示机器上该任务处于热备激活状态。
[0026] SCADA系统的1+N冗余机制设计过程如下:
[0027] (1)用户配置
[0028] 每个服务进程对象存在一个“服务器运行列表(PreferredList)”配置项用于存储该服务应该运行在哪些服务器上,最简单的算法是配置在列表前的服务器拥有更优先的执行权利。只有“服务器运行列表(PreferredList)”中配置了服务器的名称,该服务才可能在该服务器上运行,否则不会在该服务器上运行。
[0029] 图1中各进程的PreferredList配置如下表1所示。
[0030] 表1各进程的PreferredList、ResumeMode配置表
[0031]服务进程 PreferredList配置 ResumeMode
历史数据存储进程 'scada1,scada3,scada2' Automatic
数据采集进程 'scada2,scada1,scada3' Automatic
报警进程 'scada2,scada3,scada1' Automatic
程控管理进程 'scada3,scada2,scada1' Automatic
计算服务进程 'scada3,scada1,scada2' Automatic
[0032] 表1中的ResumeMode配置项表明该服务是否会自动(Automatic)调整到优选服务器上运行,可配置为Automatic、Manual。以历史数据存储进程为例,其优先运行在scada1机器上,scada2,scada3作为备用,scada1上的该进程失效后优先由scada2上的该进程接管,scada2上的该进程也失效后由scada3上的该进程接管,若此时scada1系统恢复正常,而且历史数据存储进程的ResumeMode属性配置为Automatic,则其会切换至scada1继续运行;如果配置为Manual则依旧保存在scada3上运行,其它进程同理。
[0033] (2)向本机实时数据库报告是否可用
[0034] 每台SCADA服务器有一个实时数据库(各服务器之间的实时数据库实时同步),以及一个实时数据库管理进程负责管理该实时数据库。
[0035] 在各服务器系统启动后,每个服务进程对象会查看自己的“服务器运行列表(PreferredList)”配置项,如果当前机器名称在配置项中,该进程就会启动,并同时向本机的实时数据库管理进程报告本进程是可用的,并填写到实时数据库该服务进程对象的实时属性“候选列表(CandidateList)”中。如图2中的步骤2所示。
[0036] 图2为本发明实施例的1+N冗余的实施步骤流程图。
[0037] (3)本机实时数据库管理进程判断此任务是否可用
[0038] 本机的实时数据库管理进程经过仲裁,判断该进程可以作为该任务的执行者,并填写到实时数据库该服务进程对象的实时属性“执行者列表(ReadyList)”中。如图2中的步骤3所示,具体仲裁过程如下:
[0039] 实时数据库管理进程通过检查侯选列表中的侯选成员和判断侯选成员是否在机器上运行来实现进程死亡检测。如果在机器上有一个侯选成员,实时数据库管理进程定期与该侯选成员进程进行通信,如果在下一个通信周期之前应用没得到响应,本机实时数据库认为该侯选成员应用程序已经死亡并执行如下步骤:
[0040] ●从实时数据库的后选列表中移去此候选成员机器对象
[0041] ●取消所有该进程的消息通知
[0042] ●删除所有该进程已经缓冲的消息通知
[0043] ●杀死处于激活状态但不正常的该进程,由进程管理器重新启动进程[0044] ●如果此任务进程能够迅速确认此次通讯,实时数据库管理进程将它作为当前服务的可能提供者保存,并将其填入到该服务进程对象的实时属性“执行者列表(ReadyList)”中,如图2中步骤3所示。
[0045] (4)从步骤3中选择任务的当前执行者
[0046] 每台SCADA服务器的实时库中还存在一个负责进行容错仲裁的管理进程POMS Master,它决定哪台机器运行相应的进程,并在进程在某台服务器运行失败后,在其它服务器间调度进程的执行。该管理进程通过监控通讯报文来确定运行在网络上的该任务的计算机是否存在故障。
[0047] 如果在预定的时间内POMS Master没有从该服务器上接收到同步信息包,或从非同步机上接收到同步信息包,POMS master把该服务器定为不同步。如果预定的时间内收到该同步信息包,并确认该服务器同步,POMS管理者将负责所有从步骤4每个进程的“执行者列表(ReadyList)”中选择其中一个作为该任务的实际执行者。由用户在步骤1中所排列的顺序在前的,将优先作为该任务的执行,并将其填写到实时数据库该服务进程对象的实时属性“当前执行者(CurrentLink)”中。如图2的步骤4所示。
[0048] (5)处理数据
[0049] 当系统实时数据库的某个值发生变化,并要求相应的进程进行处理时,就会产生一个消息通知信息,每台服务器的实时数据库首先缓冲该消息通知信息,然后POMS主机检查实时数据库中处理该消息的通讯服务进程当前在哪台机器运行,只有该机器的通讯服务进程才会处理该消息通知且进行确认,并将消息确认信息广播送到网络上所有同步机器,然后其它所有机器从它们的缓冲列表中清除该确认的消息通知,而不进行任何数据的处理。
[0050] 当正在激活运行的某个进程(如通讯进程)所在的服务器失步或失电等,POMS会将该容错对象的CurrentLink属性重新赋给另外一个能运行该进程的机器,服务进程所在新服务器的实时数据库管理进程将把所有缓冲等候的故障容错通知信息送到该服务进程,然后该服务进程处理并确认这些缓冲等候的容错通知。
[0051] 由上所述,图1的数据采集进程正运行在scada2上,若此时scada2网络中断,POMS master首先认为该机器失步,然后将实时数据库该任务对象的“当前执行者(CurrentLink)”实时属性清空,并从该任务对象的“执行者列表(ReadyList)”中选择scada1作为当前连接,而scada1的数据采集进程获得自己是当前任务的执行者,将接管scada2的任务。若scada1服务器也出现问题或网络中断,scada3将作为当前任务的执行者,从而实现的进程的1+N冗余通讯机制。同样对于历史数据存储进程、程控管理进程、计算服务进程也是如此。
[0052] 下图3~6演示了1+N冗余进程切换的情况。
[0053] 图3是本实施例的三台服务器同步运行正常示意图。
[0054] 1)历史数据存储进程由scada1接管,其余进程处于备用状态。“斜体下划线”表示当前正在运行的进程(如历史数据存储进程),其它表示处于备用状态的进程(如数据采集进程)。数据采集进程、报警进程运行在scada2上,程控管理进程、计算服务进程运行在scada3上,如图3所示;
[0055] 2)服务器scada1发生故障后原本在scada1中运行的进程将按“服务器运行列表(PreferredList)”的配置顺序进行切换(如表1所示),即历史数据存储进程由服务器scada3接管,其它进程不变,如图4所示:本实施例的1+N冗余的切换过程(scada1发生故障)示意图;
[0056] 3)当scada3也出现问题后程控管理进程、计算服务进程将由scada2接管,即所有服务进程都由scada2提供,此时即使服务器资源仅剩下1/N,系统仍然能够持续稳定的运行,如图5所示:本实施例的1+N冗余的切换过程(scada1、scada3发生故障)示意图;
[0057] 4)如果此时scada1系统恢复,而scada3系统未恢复,则历史数据存储进程因为其ResumeMode属性配置为Automatic,所以它换切至scada1继续运行;计算服务进程因为其ResumeMode属性配置为Automatic,而且PreferredList配置中scada1优于scada2,所以也会切换至scada1运行,而程控管理进程则依旧保持在scada2上运行,如图6所示。若此时scada3系统也恢复正常,则程控管理进程、计算服务进程最后也会切换至scada3系统中运行,如图6所示:本实施例的1+N冗余的切换过程(scada1、scada3发生故障后scada1恢复)示意图。
[0058] 以上的实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案
基础上所做的任何改动,均落入本发明
权利要求书的保护范围之内。本发明未涉及的技术均可通过现有的技术加以实现。