五、知识链接
项目3 智能建筑分区供水监控系统的双机冗余
1.训练目标(能力目标)
能够为开发好的单机监控系统创建双机冗余监控系统。
能排除双机冗余中出现的常见故障。
能熟练配置双机冗余中的主机和从机。
2.知识目标
掌握双机冗余的基本概念。
理解双机冗余的系统构架。
能熟练使用双机冗余相关的函数。
3.素质目标
风险控制意识,要保证已开发完的单机监控系统的安全完整。
4.项目引入(项目描述)
针对项目2中开发完善的单机智能建筑给水排水监控系统,为了保障系统的安全性和可靠运行,需要配置双机冗余,即用一个主机和一个从机共同完成监控任务。当有一个站点出现故障时另外一个仍能正常使用,保证了系统的正常运行。
硬件系统说明:智能建筑给水排水监控系统的网络系统采用的是单网构架(两个站点之间只有一个网络保持通信),因此只需要开发单网双机冗余即可。
用户需求如下:
1)设置一个主机和从机。
2)正常情况下,只能一个处于活动状态,另一个处于备用状态。
3)当活动站出现异常时,备份站会在短时间内切换为活动状态,成为新的活动站,完全实现原活动站的功能。
4)可以在运行环境中显示当前数据连接通信链路的状态,是正常还是失败。
5)可以在运行环境中显示当前进行数据连接的是主机还是从机。
6)可以在运行环境中显示当前站点是活动站还是备份站。
任务一 完成智能建筑给水排水监控系统的双机冗余系统搭建
一、训练目标
掌握双机冗余的基本概念。
理解双机冗余的系统构架。
能熟练配置双机冗余中的主机和从机。
能熟练使用双机冗余相关的函数。
能排除双机冗余中出现的常见故障。
二、任务引入
双机冗余系统的搭建是建立已经开发好的单机监控工程的基础上的,这里提供了在项目二中已经开发好的智能建筑给水排水监控系统,我们需要做的就是对该监控系统分别在主机和从机上进行双机冗余的配置,来满足用户需求。用户需求在项目引入中已经进行了详细说明,这里不再赘述。
这里配置双机冗余的基础是下位硬件控制器和监控主机之间的网络通信已经连接好。这里需要说明的是主机和从机既要同时连接到控制网络中,也要同时连接到以太网中通过TCP/IP协议来通信,因此,主机和从机都要接入到同一台以太网交换机中。监控站点的数据采集通过控制网络来实现,网络构架如图3-1-1所示。
图3-1-1 冗余的网络构架
配置双机冗余之前需要把单机版的监控工程分别复制至主机和从机中。主机与从机的数据库须保持一致,两台站点的数据库中点名与I/O连接须一致!
三、任务分析
通过对任务的分析,我们发现要完成任务需要进行两步操作,第一步要配置双机冗余实现两台设置之间的正常互为备用关系,第二步要开发信息显示界面,实时显示当前冗余系统的一些站点的状态信息。
第一步的操作主要通过配置导航栏进行配置。
第二步的操作主要通过脚本程序和函数调用来实现。下面通过具体的实施来进行说明。
四、任务实施
在任务实施阶段我们把单机版的监控工程分别复制至主机和从机中,接下来需要分别对主机和从机进行双机冗余设置,这里主机、从机的IP及名称如表3-1-1所示。
表3-1-1 主机和从机信息表
1.主机端设置
主机端的设置主要是设置从机的参数(即指定主机通信对端的地址和端口号),需要三步来实现。第一步需要添加从机的网络节点设置从机参数;第二步设置双机冗余指定本机角色和从机名称;第三步设置系统运行参数。下面分别来实施。
(1)添加从机的网络节点
在主机上打开应用工程,在开发系统的导航栏中选择“配置→网络配置→节点配置”,双击“节点配置”,弹出“节点配置”对话框,如图3-1-2所示。增加一个代表从机的网络节点。
在该对话框中,我们设置从机名称为“congji”,IP地址为“192.168.100.2”,端口1为“2006”,端口2为“2007”。然后单击“添加”按钮即可在“节点配置信息显示”栏下看到该节点的配置信息。
(2)设置双机冗余
接下来在开发系统的导航栏中选择“配置→网络配置→双机冗余”,双击“双机冗余”,弹出“双机冗余设置”对话框,如图3-1-3所示,在该对话框中我们指明本机的角色是主机,同时选定从机的节点名称。
配置完成后在“双机冗余设置”对话框中,单击“配置”按钮,出现“HisSetting”对话框,如图3-1-4所示,这里我们设置服务端口为默认的“7105”,客户端的连接IP为“192.168.100.2”,连接端口为“7105”。关于设置的详细知识,参见本项目知识链接中的主机配置部分。
图3-1-2 “节点配置”对话框
图3-1-3 冗余设置
图3-1-4 “HisSetting”对话框
(3)设置主机端系统运行参数
接下来在开发系统的导航栏中选择“系统配置→运行系统参数”双击打开,弹出配置画面,如图3-1-5所示,勾选“允许备份站操作”,关于主机端的冗余配置结束。
2.从机端设置
从机端的设置主要是设置主机的参数(即指定从机通信对端的地址和端口号)。从机端的设置与主机端的设置的步骤相同,只是把参数换成了主机的参数。
(1)添加主机的网络节点
在从机(192.168.100.2)上打开应用工程,在开发系统的导航栏中选择“配置→网络配置→节点配置”,双击“节点配置”,弹出“节点配置”对话框,如图3-1-6所示,增加一个代表主机的网络节点。
图3-1-5 冗余的系统参数设置
图3-1-6 节点配置对话框
在该对话框中,我们设置主机名称为“zhuji”,IP地址为“192.168.100.1”,端口1为“2006”,端口2为“2007”。然后单击“添加”按钮即可在“节点配置信息显示”栏下看到该节点的配置信息,如图3-1-6所示。
(2)设置双机冗余
接下来在开发系统的导航栏中选择“配置→网络配置→双机冗余”,双击“双机冗余”,弹出“双机冗余设置”对话框,如图3-1-7所示,在该对话框中我们指明本机的角色是从机,同时选定主机的节点名称。
配置完成后在“双机冗余设置”对话框中,单击“配置”按钮,出现“HisSetting”对话框,如图3-1-8所示,这里我们设置服务端口为默认的“7105”,客户端的连接IP为“192.168.100.1”,连接端口为“7105”。关于设置的详细知识,参见本任务知识链接中的从机配置部分。
(3)设置从机端系统运行参数
图3-1-7 双机冗余设置
从机端系统运行参数的设置与主机端的设置一样,参见上主机端系统运行参数设置。
3.显示站点状态信息
根据本项目的任务要求我们需要实时显示双机冗余系统中站点的状态信息。
我们需要调用GetDataSourceStat函数来实时显示站点信息。关于GetDataSourceStat的使用和显示方法参见任务知识链接中3.单网双机冗余系统的配置中的(3)查看站的状态。
这里我们在窗口中创建当前双机冗余系统的站点状态为:############来显示站点状态信息,我们创建一个字符型中间变量des来存放站点状态信息。然后设置“#######”动画连接中的“数值输出→字符串”关联变量“des”。
图3-1-8 “HisSetting”对话框
同时添加“全局脚本→动作→应用程序动作”,在脚本编辑区的“程序周期执行”中添加如下脚本即可。
同样道理,我们在从站中执行同样的操作(添加显示界面、添加中间变量des、添加脚本)即可在从站中实时显示冗余系统中站点的状态信息。
4.运行
分别在主机和从机端进入监控系统的运行环境,即可以看到双机冗余的运行效果。可以分别在两台监控计算机上看到监控画面,若一台监控计算机出现异常或故障则另一台立即从备份站转变为活动站,保障系统的稳定运行。
五、知识链接
1.冗余的概念
冗余字面意思指的是重复、多余。但在专业术语中冗余通常指通过多重备份来增加系统的可靠性。常见的冗余措施是采取两套或两套以上相同、相对独立配置的设计连接组成的系统。通过提供系统运行所需的所有关键组件的冗余的方法,达到容错能力的系统或者系统的结构,当系统发生故障时,冗余配置的部件介入并承担故障部件的工作,由此减少系统的故障时间。
双机冗余就是指在一个网络系统中,通过两个力控监控组态软件数据源节点可以构成的冗余系统,一般安装有一个力控组态软件数据源节点的是一台监控PC,两个节点就是两台监控PC,因此称之为双机冗余。
一般情况下,构成双机冗余系统的两个节点都采用相同的计算机硬件配置、操作系统,相同版本的力控监控组态软件和应用工程,两个节点都和现场I/O设备具相同的物理连接。两个节点的区别仅在于节点参数(如:计算机IP地址、身份等)和初始状态的不同。
双机冗余的典型构架如图3-1-9所示。
图3-1-9 双机冗余的典型构架
在该系统构架中,采用了多重冗余的设置,设备冗余、控制网冗余和服务器冗余,可以极大地保障系统的安全性和稳定性。是否配备冗余系统以及配置什么样的冗余系统,取决于不同的系统需求,可以灵活配置。
冗余系统适用于工艺装置的生产过程比较复杂,系统的安全性、稳定性和容错性要求比较高的场所,单一的监控站往往满足不了现场监控的要求,需要建立多个监控站来满足操作人员监控的需要,同时为了保证系统的安全性,要求各监控站可以监控所有的控制站,以便保证系统中某个监控站出了问题不会影响整个系统的监控。
典型的工业控制系统中,操作管理级往往采用典型的服务器/客户端方式,根据不同的需要,服务器和客户端可以采用冗余配置,根据需求网络也可以配置成冗余的,这样配置可以提高系统的安全性和稳定性。
2.力控双机冗余的概念
在实施监控系统中力控实现双机冗余的要求是:使用两台计算机来监控系统,采集的生产实时数据能够在两台计算机上同时存储和显示,负责监控的计算机出现故障后,备用的计算机能够接替监控计算机进行数据的采集和存储,并且可以通知操作人员处理监控计算机的故障。当监控计算机恢复正常以后,可以手动或自动接替备用计算机工作,恢复初始的工作状态,备份计算机接替工作时期的存储数据能够恢复到采集计算机上,真正实现数据的连续备份,一般情况下监控计算机负责采集,备份计算机不负责采集,只负责备份。
(1)主机从机的概念
根据两台计算机角色的不同,可以把两台计算机分别命名为主机和从机。其中备用计算机成为从机,另一台计算机为主机。在力控监控软件中,为了从物理的角度区别两个节点,在建立双机冗余系统时两个节点被分配各自的身份:主机和从机。当一个节点被设定为主机后,另一个节点则被设定为从机。主机与从机身份设定后,在系统运行过程中不会更改。可以这样简单地理解主/从机概念:主机和从机分别对应双机冗余系统中一台特定的物理计算机,且在系统运行过程中,这个对应关系不会改变。
(2)活动站和备份站的工作方式
在双机冗余系统中,主机和从机的工作状态是不同的。正常情况下,只能一个处于活动状态,另一个处于备用状态。无论主机或从机,处于活动状态的节点被称为活动站,处于备用状态的节点被称为备份站。主机可以是活动站也可是备份站,取决于该站点是否处于活动状态。
(3)活动站完成的工作
1)对I/O设备进行数据采集。
2)实时数据处理。
3)历史数据保存。
4)报警处理。
5)周期性探询另一节点的状态。
(4)备份站完成的工作
1)从活动站同步系统时钟。
2)禁止对I/O设备数据采集。
3)从活动站同步实时数据。
4)周期性探询活动站的状态。
(5)活动站和备份站切换方式
在力控的双机冗余系统中,同一时间只能有一个活动站。不管是主机或者从机在切换为活动站时都需要探测目前系统中是否已经有活动站。在通常情况下,系统首先启动双机冗余系统中的主机,主机启动后在超时时间内探询不到其他活动站存在,将自己状态置为活动状态,成为活动站,然后启动从机,从机探询到已经有活动站存在,将自己状态置为备用状态,成为备份站。用户可以通过手工操作进行状态切换,即:将主机切换为备份站,从机切换为活动站,也可以再反复切回。
由此可见,活动站与备份站虽然也代表双机冗余系统中两个节点的不同身份,但这种身份是动态可变的,与主/从机的概念不同。
(6)故障时活动站和备份站切换方式
当主机或从机出现异常时,则进入故障状态。处于故障状态的节点被称为故障站。
导致异常的因素很多,如:掉电、系统崩溃等,如果发生异常的是当前备份站时,活动站继续工作,系统不会受到影响。操作人员可以从活动站的报警信息中获知备份站进入故障状态已成为故障站,可及时采取修复措施。当故障站恢复后,重新接入网络并与活动站建立握手关系,故障站重新转为备份站,并从活动站同步实时数据,恢复丢失的历史数据、报警数据等。
如果是当前活动站发生异常并转为故障站,备份站通过周期性探询发现活动站没响应,备份站会在短时间内切换为活动状态,成为新的活动站,完全实现原活动站的功能,并将该异常状态在报警信息中显示出来。当故障站修复后,重新接入网络并与当前活动站建立握手关系,并成为备份站(如故障机器为主机且主机曾正常工作过,则转为活动站,否则不转为活动站,从活动站同步实时数据,恢复丢失的历史数据、报警数据等。)
(7)活动站和备份站之间的协同机制——心跳链路
在冗余系统中,正常情况下主机接管工作,从机处于热备状态,主机和从机不停地检测对方的状态,这个检测对方的动作被称为“心跳”。为确保心跳的检测不出现问题,可以采用多重网络结构,即“心跳”可以通过主、从机之间的任何通信链路进行检测,也就是说只要主、从机之间一条通信链路是好的,就可以检测到对方心跳,主从机就可以通过这条链路进行数据通信。
如果两个节点间的“心跳”通信网络出现了故障,此时备份站会自动切换为活动站,此时相当于同时出现两个活动站。两个活动站同时工作会导致I/O设备采集冲突等一系列问题,应该尽可能地避免出现此类情况来保证“心跳”通信网络畅通,为此,在双机冗余系统中可以设置网络冗余,以保证两节点间的网络可靠性。
两个节点间只一个网络保持通信的双机冗余系统称作单网双机冗余系统,简称单网冗余系统;两个网络互为备用,保证节点间通信的双机冗余系统称作双网双机冗余系统,简称双网冗余系统,如图3-1-10所示。
图3-1-10 单网冗余和双网冗余系统对比图
1)单网冗余系统。
在单网冗余系统中,主机和从机仅使用了单一网络适配器,主/从机之间只有一个网络。这种系统的网络结构简单,缺点是单一网络出现故障时,会同时出现两个活动站,并导致I/O设备采集冲突等问题。
2)双网冗余系统。
在双网冗余系统中,主机和从机都使用两个网络适配器,并分配在两个不同的网段,主/从机之间存在两个网络连接。两个网络互为备用,可保证主/从机之间的可靠网络通信。
在双网冗余系统中的两个网络中始终只有一个网络处于工作状态,完成主/从机之间的通信传输。处于工作状态的网络被称为活动网络。另一个网络处于备用状态,不进行通信传输,处于备用状态的网络被称为备用网络。
双网冗余系统的切换逻辑与单网冗余系统相比仅一个区别,就是在主/从机之间探询对方状态时增加了活动网络与备用网络的切换。以备份站探询活动站状态为例:当备份站通过活动网络向活动站发送探询命令,如果发现没得到活动站在规定时间内的正确应答,备份站并不立即将活动站判断为故障站,而是自动切换到备用网络再次向活动站发送探询命令。如果备用网络通信正常,则将备用网络切换为活动网络,并将故障的网络状态在报警信息中显示出来。
3.单网双机冗余系统的配置
单网双机冗余系统的配置比双网冗余系统的配置简单,在双网冗余系统中由于主机和从机都要和两个网络(双网)进行通信,因此各自需要安装两个网络适配器。而在单网双机冗余系统中主机和从机只需要一块网卡即可,因此配置时可以省去对网络适配器的配置。
单网双机冗余系统需要分别对主机和从机进行配置,配置的具体步骤如下。
(1)主机的配置
对双机冗余系统主机的配置主要是添加从机的网络节点,在该网络节点的配置中填写从机的参数,然后在双机冗余中设置本机为主机,同时选定从机的站点名称。
1)添加网络节点。
在主机(192.168.100.2)上打开应用工程,在开发系统的导航器中选择“配置→网络配置→节点配置”,双击“节点配置”,弹出“节点配置”对话框,如图3-1-11所示,增加一个代表从机的网络节点。
在该对话框中,我们需要设置从机的名称、从机的IP和端口号。然后单击“添加”按钮即可,在“节点配置显示”栏下看到该节点的配置信息。这里我们的从机名称为“cong1”,IP地址为“192.168.100.1”,端口1为“2006”,端口2为“2007”。
其中“主机IP地址”参数设定为从机的IP地址:“192.168.0.1”。“主机端口1”和“主机端口2”的端口设置“2006”和“2007”。由于在单网双机冗余系统中本机只使用一块网络适配器,“本机网卡IP地址”可不必设置。
2)设置双机冗余。
设置完“节点配置”后,需要完成双机冗余的设置。在开发系统的导航器中选择“配置→网络配置→双机冗余”,双击“双机冗余”,弹出“双机冗余设置”对话框,如图3-1-12所示,在该对话框中我们重点要指明本机的角色是主机还是从机,同时选定从机的节点名称。
这里我们选择本机类型为“主机”,从机节点为“cong1”。使用默认的查询周期和超时时间即可。关于各设置的含义如下。
①本机类型:该参数有4个选项:“单机”“主机”“从机”和“历史站”。如果本机节点没有构成双机冗余系统,选择“单机”。如果本机节点设为主机,则选择“主机”,否则选择“从机”。在本例中本机为主机,该参数选择“主机”。
②从机节点:指定从机所在的网络节点。本例中该参数选择刚刚创建的网络节点“cong1”。
③查询周期:主机探询从机工作状态的周期,默认值为1000毫秒。主机周期性地向从机发送探询命令,并依据从机的应答来判断从机的状态。
图3-1-11 增加从机网络节点
④超时时间:主机向从机发送探询命令,等待从机正确应答的最长时间,超过该时间会判断从机不存在(发生了故障),默认值为15000毫秒。
配置完成后单击“配置”按钮,出现“HisSetting”对话框,如图3-1-13所示(这里的HisSetting中的His是History的缩写,代表历史数据的设置),该设置的各项含义如下。
①服务端口:主机开放的服务端口。
②连接IP:从机的IP地址。
③连接端口:从机开放的服务端口。
④数据校验:进行历史数据恢复时,对历史数据文件进行校验。
⑤数据压缩:历史数据恢复复制时,先进行数据压缩,再复制。
⑥自动同步:历史站故障恢复后,自动同步历史数据,在这里设置同步多少天的历史数据。由于历史数据文件较大,在同步过程中会占用较多的系统资源,该参数建议不要设置过大。
图3-1-12 主机和从机名称
图3-1-13 HisSetting参数设置
这里我们设置服务端口为默认的“7105”,客户端的连接IP为“192.168.100.1”,连接端口为“7105”。这里服务端口主要作用是用来网络同步历史数据端口,当历史站故障恢复后,自动同步历史数据,历史站故障恢复后,需要同步的历史数据可能比较大,从机若要同步这些历史数据需要使用专用的通道,端口为“7105”。
图3-1-14 备份站操作设置
3)设置主机系统运行参数。
添加完网络节点、设置完双机冗余的参数之后还需要对主机的系统运行参数进行设置。
在开发系统的导航器中选择“系统配置→运行系统参数(双击打开)”,弹出配置画面,如图3-1-14所示。
勾选“允许备份站操作”,关于主机端的冗余配置结束。
注意这里的“允许备份站操作”的含义指的是:选择后备份站也可以对监控系统进行操作。
(2)从机的配置
从机的配置与主机的配置类似,需要添加主机的网络节点,在该网络节点的配置中填写主机的参数,然后在双机冗余中设置本机为从机,同时选定主机的站点名称。
1)添加网络节点。
在从机(192.168.100.1)上打开应用工程,在开发系统的导航器中选择“配置→网络配置→节点配置”,双击“节点配置”,弹出“节点配置”对话框,如图3-1-15所示,增加一个代表主机的网络节点。
图3-1-15 增加主机的网络节点
在该对话框中,我们需要设置主机的名称、主机的IP和端口号,然后单击“添加”按钮即可,在“节点配置信息显示”栏下看到该节点的配置信息。这里我们的主机名称为“zhu1”,IP地址为“192.168.100.2”,端口1为“2006”,端口2为“2007”。
其中“主机IP地址”参数设定为主机的IP地址:“192.168.0.2”。“主机端口1”和“主机端口2”的端口设置“2006”和“2007”。同样道理,由于单网冗余,因此“本机网卡IP地址”可不必设置。
2)设置双机冗余。
从机设置完“节点配置”后,需要再完成双机冗余的设置。在开发系统的导航器中选择“配置→网络配置→双机冗余”,双击“双机冗余”,弹出“双机冗余设置”对话框,如图3-1-16所示,在该对话框中我们重点要指明本机的角色是主机还是从机,同时选定主机的节点名称。
这里我们选择本机类型为“从机”,从机节点为“zhu1”。使用默认的查询周期和超时时间即可。关于“双机冗余设置”对话框中的其他选项的含义与主机设置相同。
图3-1-16 设置从机参数
3)设置从机的系统运行参数。
在开发系统的导航器中选择“系统配置→运行系统参数(双击打开)”,弹出配置画面,如图3-1-17所示。勾选“允许备份站操作”,关于从机端的冗余配置结束。
注意:主机与从机的数据库必须保持一致,数据库中点名与I/O连接必须一致!在配置双机冗余系统时,一定是同一工程复制到主/从机上,然后按照上述说明单独配置!
(3)查看站的状态
对于构建好的双机冗余系统,我们需要了解双机之间的链路是通信正常还是通信失败,当前数据源是来自于从机还是主机,当前的监控PC的状态是活动站还是备份站。要了解这些信息,我们需要调用系统函数,在人机界面系统提供了一个系统函数GetDataSourceStat(intData-SourceNo)用来获取数据源状态,此函数的说明如下。
函数描述:获取数据源状态。
返回值:数据源状态int型。
bit0,0为当前连接主机,1为当前连接从机;
bit1 代表当前链路状态,0为链路通信正常,1为链路连接失败;
bit2 代表当前站点是否备份态,0为运行态,1为备份态。
若函数GetDataSourceStat(0)返回值为-1则代表链路完全中断,主、从机均链路中断。
图3-1-17 从机的备份站操作设置
其中bit1为当前链路状态,0为链路通信正常,1为链路连接失败;这里的链路指的是数据源所在的PC与设备之间的链路通信状态,而不是活动站与备份站之间的心跳链路的通信状态。
函数GetDataSourceStat(intDataSourceNo)中的参数intDataSourceNo指的是开发环境下导航栏中的“工程→数据源”目录下数据源列表中数据源所处的顺序号,以0开始计。函数的返回值是一个3位二进制数转换成的十进制数。
例如若函数GetDataSourceStat(0)返回值为4,则表示的二进制值为100,其中从低位到高位分别为bit0=0,bit1=0,bit2=1,表示当前连接机是主机,链路通信正常,当前站点处于备用状态。
函数GetDataSourceStat的返回值可能是-1、0、1、2、3、4、5、6、7,分别对应9种站的状态,如表3-1-2所示。在运行环境中显示时,需要对这9种情况分别加以判断即可获取当前站的状态信息。
表3-1-2 GetDataSourceStat函数返回值对应的站状态信息
(4)活动站备份站切换
活动站备份站切换操作是系统自动完成的,若要手动切换活动站和备份站可以利用系统中提供的一个系统函数,可以在双机冗余系统中实现手动对站状态的切换。函数形式如下。
语法:ConvertTo(MasterOrSlave)。
说明:双机热备状态切换函数。
参数:MasterOrSlave,0为由工作状态切换到备份状态,1为由备份状态切换到工作状态。
示例:ConvertTo(tag1.pv);//当tag1.pv的值为0时,由工作状态切换到备份状态;当tag1.pv的值为1时,由备份状态切换到工作状态。
注意:默认数据源之间切换有效。