孙 江,夏 凡,吴 豪,李 波,王 硕
(核工业西南物理研究院,成都 610041)
HL-2A托卡马克装置主机大厅是开展核聚变物理研究和工程实践的最重要的场所。在主机大厅里面,主机周围分布着各个子系统的上百件套不同设备,实验人员在实验期间根据实验目的不同需要出入主机大厅对其所负责的设备进行相关的调试调整。考虑到HL-2A主机大厅里面存在许多危险因素,比如上万伏特的高压、零下一两百多度液氮液氦、中性束注入期间产生大量的中子辐射、大功率的微波辐射等等,都是对人体有害的[1]。这些危险因素一般出现在等离子体放电期间,所以放电期间实验人员必须全部离开主机大厅,才能保证人员和设备的安全。
在之前的HL-2A放电实验中,采用放电前打铃60秒的方式通知主机大厅里面的实验人员立即离开。但是这种方式存在的弊端是主机大厅空间大、噪音大,有些角落听不清铃声。因此有必要重新设计一套人身安全联锁系统,确保实验人员在等离子体放电前全部离开主机大厅,且等离子体放电期间不会有人误入主机大厅,及时制止各种可能的安全事故发生。
人身安全联锁系统是HL-2A托卡马克装置中央安全控制系统的重要组成部分,主要用于主机大厅的人身和设备安全联锁保护。参考ITER CODAC并根据当前时代背景下的技术条件和控制运行理念,有效地结合装置的运行状态及保障设备和人员安全的需求,设计了一套人身安全联锁系统。
人身安全联锁系统的开发设计,主要针对实验人员人身安全及仪器设备财产安全而展开,是一个以保护概念为核心的专用系统。它分为两个部分:中央安全控制系统和门禁访问控制系统。本文从总体结构,系统框架,通讯网络等方面介绍了人身安全联锁系统的设计和实现。
中央安全控制系统(central safety system,CSS)需要对门禁访问控制系统(access control system,ACS)进行实时监视和安全控制[2-4]。图1是ITER门禁访问控制系统的接口关系图,深灰色为门,浅灰色为CSS部分,无色为ACS部分。
图1 ITER典型的门禁访问监视控制框架图
ITER的门禁访问安全控制系统主要对进出受保护的区域提供安全联锁。根据安全级别和装置运行状态等综合因素考虑,通过使用令牌进出控制门来实现门禁访问。当进入的该区域处于“限制”状态时,每个人都应使用令牌通过控制门进入。直到真正离开受限制的区域后,将令牌返还给分配箱。每个令牌的状态(插入或移出的状态)应被监控,并发送给CSS。
ITER CODAC对人员安全保护(Safety)和设备联锁保护(Interlock)作出划分。但是,由于HL-2A装置与ITER有一定差异,所以我们不完全照搬CODAC相关设计标准。对于较复杂的涉及人员安全的子系统,我们对其设立安全和联锁保护,而对于一些较为单一的诊断设备等子系统,我们仅对其设立联锁保护,不加入人员安全保护功能。
CSS是一个中央协调器,通过中央安全网络(CSN,central safety network)接收各个子系统的布尔事件,并向这些子系统发出指令,也需要处理一些模拟量信号。CSS控制逻辑不受人工干预和手动控制,但某些人工功能(比如急停)要放到中控[5-6]。CSS具体负责的任务有:
1)处理来自现场设备的警报和事件;
2)将访问控制警报和事件推送到大屏显示;
3)跟踪和记录存储事件。
图2 中央安全控制系统框架图
ACS主要包括门闸设备和控制终端、视频拍照和红外探测功能等[7-9]。门禁系统的安全设计通过双门互锁、防尾随功能以及对人进出行为的严密逻辑控制程序实现安全性更高、可靠性更强的门禁控制管理,有效地监测托卡马克装置大厅是否有人逗留或者闯入[10-15]。门禁访问控制系统负责的任务有:
1)获取实验人员身份和配置他们的访问权限,并将身份和访问权限下载到门闸控制器中;
2)授予/拒绝来自门闸控制器的访问请求,保存访问记录;
3)根据每个实验人员的身份和当前装置运行状态来确定是否允许当前人员对安全控制区的访问。
中央安全控制系统由一套西门子冗余400系列PLC、ET200分布式IO采集、千兆交换机组成并装配到EMC屏蔽机柜,用来处理与装置和人员安全有关的事件,同时具有机柜状态监控功能,主要监视机柜前后门状态和机柜温度。如果机柜内温度超过25度,则自动启动风扇。机柜内部正面从上往下的布局依次是供电,冗余PLC和ET200设备,交换机和温控显示和接地,背面是端子排用来接外部信号。
EPICS是用于实验物理和工业控制平台的一套开源软件框架。EPICS的软件包主要包括Base、各种模块(Module)和扩展(Extension)。其中Base是EPICS软件的主体部分,而模块和扩展则是在Base的基础上为EPICS提供软硬件支持和其他辅助功能[16]。
EPICS采用了客户端/服务器架构实现不同主机之间的通信。在EPICS中扮演服务器角色的是IOC,它们负责完成具体的输入/输出动作及本地控制任务,并利用CA协议从网络中接收来自客户端的信息或向客户端发布自身状态信息。EPICS IOC的基本结构如图3所示。
图3 EPICS IOC的结构示意图
EPICS使用各种类型的记录(Record)来表示输入/输出量,而IOC内存中所有Record的集合则被称为IOC数据库(Database)。局域网内通常包含多个IOC,它们的IOC数据库便组成了一个分布式数据库。当Record需要与硬件交互时,则需要调用相应的Device Support实现和硬件之间的通讯。IOC数据库中的Record通过CA协议发布到网络中,成为能够被CA客户端访问的过程变量(process variable,PV)。
中央安全控制系统拥有自己的IOC,将门禁访问控制系统的变量通过CA协议发布到PON网络中。CSN采用千兆光纤星型网实现各系统之间的通讯,在中央机房放置一台西门子交换机XR528-6M,VLAN设有2个网段,一个属于CIN网,一个属于CSS网。
PON(Plant Operation Network)网络对应于ITER的装置运行网。所有与EPICS相关的机器均在此网段内。所有连接CIN和CSN的子系统中的控制器、数据服务器和上位机操作终端均接入PON网络。PON网络承载所有子系统常规控制和安全联锁的监视数据流。
这节主要详细说明门禁访问控制系统在HL-2A现场是如何布置和运行的。
人身安全联锁系统的总体设计结构图如图4所示。在现有的设备和网络基础上,新安装了门禁设备和门禁软件。
图4 HL-2A人身安全联锁系统的总体设计图
在主机大厅的两个出入口分别安装了门闸设备,其通电由PLC驱动继电器完成。实验人员需要刷员工卡才能开闸通过,且一次只能通过一个人。控制门闸设备的屏蔽(非使能)和激活(使能)功能实现多门互锁。门闸设备具有反潜回功能,当同一个人刷卡进去后需要刷卡出来后才具有再次刷卡进去的权限,不允许进去时刷卡,出来时却不刷卡。
门禁管理系统一般为门闸自带工具,负责登记用户进出权限并将刷卡进出的人员信息记录存储到SQL Server数据库中。没有登记授权的人员不允许刷卡进入主机大厅。只有具有访问权限,门闸才解锁允许通过。
每天第一炮放电前,由专人对主机大厅区域进行巡逻检查,确定大厅没有逗留任何人的情况下,开启门闸设备。门禁访问控制系统与中央安全控制系统有互锁保护,门禁系统会实时监测、统计和显示主机大厅内的人数,并将计算结果发送到中央安全控制系统,确保在放电过程中主机大厅无任何人员。若主机大厅内部的人数不为0,那么中控台就不能发出开始放电的指令。放电期间禁止刷卡进入主机大厅,门禁刷卡开闸功能无效。
同时,在大厅的两个出入口上方均安装有一个显示屏,用来显示进入到主机大厅的实验人员的名字、进去时间、当前人数和实验状态等信息。此外,还在主机大厅内放置了4个大功率喇叭,在准备开始放电之前,喇叭会不断广播停留在主机大厅内的实验人员的名字,催促他们迅速刷卡离开主机大厅。
在门禁访问控制系统硬件的基础上,还需要软件编程完成进出人员的记录、显示、广播等功能。所以门禁控制上位机还需要运行两个程序,其中一个程序Alarm负责广播,另一个程序Display负责显示进出人员信息。都采用C#编程,使用EpicsSharp库,利用CA协议对PV进行读写。
中央安全控制系统搭建有一台EPICS软IOC,利用s7nodave驱动包将与门禁控制有关的PLC变量和PV对应起来,网页配置好PV生成DB文件并应用配置[17-18]。软IOC就能与PLC通讯,并通过Archiver Appliance实现PV的归档存储。PLC中5个与门禁控制有关的变量如图5所示。
图5 门禁控制PLC变量
这5个变量表示的含义分别是:
CCO-CSS-IOC:MJ-BELL 打开广播喊人;
CCO-CSS-IOC:MJ-BELL1 每天第一炮广播喊人;
CCO-CSS-IOC:MJ-STOP-BELL 关闭广播喊人;
CCO-CSS-IOC:MJ-RESET 门禁显示屏信息清零;
CCO-CSS-IOC:MJ-PEOPLE-IN 主机大厅里面有人。
用C#编写的Alarm和Display程序要一直监听前4个PLC变量的变化而触发相应的动作。实验运行人员在中控WINCC界面点击不同的指令,Alarm和Display程序监听到对应的PV有变化后,触发不同的动作。下面是C#利用CA协议定义PV通道和监听PV的实时值。
channel_FirstCall =client.CreateChannel
channel_FirstCall.MonitorChanged+=new EpicsDelegate
channel_StopCall =client.CreateChannel
channel_StopCall.MonitorChanged+=new EpicsDelegate
channel3 =client.CreateChannel
channel3.MonitorChanged +=new EpicsDelegate
channel4 =client.CreateChannel
channel4.MonitorChanged +=new EpicsDelegate
Alarm程序每2秒从SQL Server数据库中读取当前进出入大厅的人员记录。门禁系统在每次有效进入后,增加当前大厅内的人员数量,在有效退出后,抵消刷卡进去的记录,减少人员数量,从而判断主机大厅里的剩余人数。
门禁系统的Display程序也是C#编写,程序任务和结构跟Alarm程序类似,也是需要配置PV通道并监听它们。这里由于显示内容更多,所以需要监听的PV更多。
channel1 =client.CreateChannel
channel2 =client.CreateChannel
channel3 =client.CreateChannel
channel4 =client.CreateChannel
channel5 =client.CreateChannel
channel6 =client.CreateChannel
channel7 =client.CreateChannel
Display程序也是每2秒从SQL数据库读取进出人员的姓名、进去时间,并按刷卡时间的先后顺序将每个人的姓名、进去时间显示在屏幕上。屏幕显示还包括门禁状态、实验状态、当前人数、当前炮号。门禁系统的状态显示屏如图6所示。主机大厅当前人数为0的时候显示背景为绿色,有人时显示背景为红色,并显示总人数。实验人员能清晰的看到当前主机大厅的访问状态。
图6 主机大厅门禁访问控制系统显示屏
每天实验前试验运行人员开启门禁系统并将之前的人员记录清除复位。每天第一炮放电前,播报第一炮的语音对主机大厅进行清场,清场完毕后开始第一炮放电。从第二炮放电开始,根据门禁系统记录的进入主机大厅的人员信息,播报对应人员的姓名,催促他们尽快离开。
中控WINCC监控界面如图7所示。中控实验人员在每天第一炮放电前按下“第一炮喇叭喊人”按钮(对应变量CCO-CSS-IOC:MJ-BELL1),Alarm程序收到指令后触发主机大厅里面的喇叭开始循环播放语音“即将开始第一炮放电,请尽快离开主机大厅,放电结束之前不要返回主机大厅”。除开每天第一炮放电以外的其他炮放电,开始放电前都是点击“喇叭”按钮(对应变量CCO-CSS-IOC:MJ-BELL),喇叭开始广播“即将开始放电,请[名字1],[名字2],[名字3]等迅速离开主机大厅”,直到主机大厅里面的人全部刷卡出来后,喇叭播报一遍“大厅已清空,准备放电”,才可以启动放电。当中控人员按下“停止喊人”按钮(对应变量CCO-CSS-IOC:MJ-STOP-BELL),喇叭停止广播。当按下“门禁复位”按钮(对应变量CCO-CSS-IOC:MJ-RESET),门禁显示屏的进出人员信息全部清空。
图7 中控WINCC监控界面
门禁系统与中控互锁,在主机大厅内有人时,不能启动放电。Alarm程序判断主机大厅里面有人时,变量CCO-CSS-IOC:MJ-PEOPLE-IN的值为1,中控WINCC界面闪烁提示此时主机大厅里面有人,禁止启动放电。
门禁系统在实际运行中会遇到各种突发情况,比如需要外来人员协助修理设备时,需要持临时卡进入。有设备突发故障需要让出通道方便进出时,需要将门禁系统断电并停止工作,门禁系统再次投入前需由专人巡逻清场,再采用第一炮放电前清人的方式,然后启动放电。
基于CODAC框架下的人身安全联锁系统改善了硬件架构和网络结构,更好地集成了各个与安全相关的系统,实现了毫秒级的错误互锁,提供了友好的可视化界面,也降低了以后的改造花费和时间成本。人身安全联锁系统已经应用在HL-2A的放电实验中,保证了在放电期间,主机大厅不会有人逗留,通过门禁系统的区域人数计算功能,能准确计算进入区域的有效持卡人的数量。经过多轮实验运行测试,取得了较好的安全保障效果,解决了以前主机大厅存在的安全隐患。即保证了放电期间的人员安全,又提高了HL-2A的放电效率。
本系统目前正在进行改造升级,未来考虑采用生物识别设备(指纹仪、人脸识别)代替读卡器,提高身份认证的可靠性,减少卡片丢失的风险。