基于国产麒麟操作系统的状态诊断系统设计

描述

引言

现有的数据采集与监视控制(SCADA)系统大多运行在Windows平台上,缺少国产化方面的考虑[1]。本文介绍的SCADA系统开发及运行环境实现了全国产化。作为工业级数据采集与监视控制软件,对于系统的稳定性和可靠性要求较高。因此SCADA系统中需要有状态诊断子系统,并且系统中的关键组件——服务器,必须实现冗余配置,当主服务器发生故障时,能够及时诊断故障并切换到后备服务器,且切换过程中不能造成扰动。由于状态诊断系统与操作系统关系较为密切,不同操作系统下的实现可能大不相同,本文设计与实现了自主研发的基于国产麒麟操作系统的状态诊断系统。

1 整体结构

数据采集与监视控制系统采用跨平台的软件架构设计:硬件采用国产飞腾处理器的服务器和台式机(或笔记本),操作系统采用国产中标麒麟,开发工具采用可跨平台的Qt,支持在国产中标麒麟和Windows操作系统上跨平台运行。系统整体结构如图1所示。

SCADA

数据采集与监视控制系统采用客户端/服务器体系结构,正常情况下历史站即为系统的服务器,如果用户有高可靠性要求,会配置冗余历史站,历史站负责与下位机进行数据交互,并记录历史数据。客户端即各个操作员站,操作员站的数据从历史站获取,且网络仅传输每秒中发生变化的变更数据集。操作员站用于人机交互,用文字、动画显示现场的状态,并可以对现场的开关、阀门进行操作。根据用户需要,可以配置对外通信功能,通过网络单向发布管理层用户关心的数据和状态[2]。

2 功能及实现

数据采集与监视控制系统从功能上分为离线功能和在线功能:离线包括工程组态、离线查询等,在线包括数据通信、服务处理、数据处理、画面监视等[3]。操作员站和历史站的功能有所区别,操作员站主要包括画面监视、数据下发、打印等与用户的图形接口,历史站除包含操作员站的所有功能外,还包含数据通信、服务处理、数据处理等后台任务。状态诊断是操作员站和历史站都具有的后台服务子系统。软件结构如图2所示。

SCADA

历史站包含所有功能的设计优点在于,对于很小的项目,可以只配置一台历史站,或者配置两台互为冗余的历史站,这样可以有效降低成本。

2.1 状态诊断子系统基本功能

(1)初始确定历史站的主从机状态:先启动的为主机;同时启动时,A历史站为主机。

(2)周期自诊断:周期诊断本机各子任务的状态及系统资源状态。

(3)周期互诊断:实现主从机之间的心跳监测,通过周期性互发心跳值的方式实现。主机收不到从机的心跳信号时仍正常运行,从机收不到主机的心跳信号则切换为主机。

(4)判断数据站的状态:

①在线:任务管理、数据通信、服务器状态诊断、校时、数据处理、历史数据收集、数据采集、报警、全记录等,全部正常运行。

②离线:除数据通信模块,需要在线的任务都没有运行。

③故障:在线时需要在线的任务存在不正常运行的[4]。

2.2 自诊断方式

各子任务的状态通过周期检测心跳值的方式检测。对于心跳超时的子任务,可以根据任务配置,对出错的任务作不关闭不重启、关闭不重启、关闭并重启等处理,如果出错的子任务仍然不能正常运行,从机只报故障,主机需要切换为从机。

中标麒麟系统可以通过两种方式获取系统资源状态:

(1)读取系统文件,例如可以通过读取carrier文件,获取网络状态,部分示例代码参见函数void getNetState()。

(2)调用shell命令,解析命令的返回值,例如可以通过解析df命令的执行结果,获取硬盘使用率,部分示例代码参见函数void getHardDiskOccupy()。

SCADA

针对大部分冗余历史站容易出现的双主问题,本文制作了详细的冗余切换表,通过测试证明,可以避免双主的出现。部分冗余切换如表1所示。

SCADA

为了保证系统稳定可靠地运行,SCADA的状态诊断系统需要确定系统当前状态,并判断何时满足状态切换的条件。本文设计并实现的状态诊断系统按照图3所示状态图进行状态判断和切换[5]。

SCADA

状态诊断系统在工程运行前需要先检测工程配置是否正确,如果配置错误(如未配置历史站、PC名字配置错误),则提示错误,并结束工程;如果配置正确,则启动各子任务,并运行工程。

运行工程后进入在线状态,检测本机配置,如果配置为操作员站,则不存在主从机的区别,以操作员站的状态运行,直到退出在线或退出工程;如果配置为历史站,则需要判断主从状态,根据有故障不抢主、A机优先的原则确定主从机状态。

为了减少切换次数,主机无故障会一直保持主机状态,从机周期检测主机的状态,如果主机降从或退出,则从机自检无故障可以升主。

主机和从机均可以退出在线或退出工程。

3 实验结果

实验条件:历史站A、历史站B均正常运行。实验操作及实验结果如表2所示。

SCADA

4 结论

实验结果证明,本系统能够按照预期的结果在国产麒麟系统上稳定运行。通过对任务的监视、强制关闭与重启任务,能够对出错的子任务及时进行处理,保证各子任务的正常运行;通过服务器冗余配置,可以保证主历史站出故障能够迅速切换到从历史站,使得从历史站出故障时不影响主历史站的正常运行。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分