论文部分内容阅读
报警系统作为控制系统的重要组成部分,用于实时监测过程变量的报警状态并发布报警信息,以便于工作人员及时进行故障维修或隐患排除。EPICS(Ex-perimental Physics and Industrial Control System)是应用最广泛的粒子加速器控制系统开发工具。随着EPICS技术的发展,EPICS社区先后发布了多款用于报警系统的开源软件,如 ALH(Alarm Handler)、BEAST(Best Ever Alarm System Toolkit)和Phoebus/Alarms等,本论文是在EPICS社区最新发布的Phoebus/Alarms基础上进行报警技术的研究与应用。本论文描述了 Phoebus/Alarms报警系统的开发环境,如Phoebus、Kafka、Elas-ticSearch、Kibana、Anaconda和前后端分离网页架构等技术。对Phoebus/Alarms报警系统的系统架构和设计理念进行了研究,并在其原型系统上进行了二次开发,增加了报警信息网页查询、微信推送和短信发送等3种报警信息的发布方式,并实现了报警参数的自动配置功能。报警系统的总体架构分为服务端、Kafka、上层应用端等3层。服务端的组件Alarm Server和AutoConfigurator分别用于监测过程变量的报警状态变化和实现报警参数的自动配置。Kafka将过程变量的实时报警信息和报警系统的相关配置等信息存储在4个主题中,从而实现了应用解耦。上层应用端主要由3类模块组成,分别是Alarms中的客户端组件、报警信息查询网页、微信和短信发布程序。Alarms中的客户端组件可以实现声音报警播放、报警状态展示和报警状态确认等功能。为了方便工作人员远程查询各过程变量的实时报警信息,我们开发了基于B/S(Browser/Server)架构的报警信息查询网页,该网页通过WebSocket通信协议缩短了前后端的同步时间,所展示的报警信息将根据报警严重程度的不同显示对应的颜色,并可通过报警严重程度、所属组别等条件进行过滤和排序。另外,我们还开发了微信和短信发布程序,该程序拥有跟模块Alarms不同的报警策略,不仅可以发送报警信息和恢复信息,还可以基于装置的运行模式、报警信息等内容采取抑制措施,从而将有效的报警信息发送给工作人员。本论文研究的报警技术在合肥光源、红外自由电子激光装置上得到了应用。报警系统目前运行稳定,为工作人员及时掌握装置的报警信息提供了重要的技术支持。