TMSR-SF0控制系统与保护系统通讯方案的设计与实现

2021-03-06 13:39朱晨晨韩立欣
核技术 2021年2期
关键词:驱动程序串口数据包

朱晨晨 韩立欣 后 接

(中国科学院上海应用物理研究所上海201800)

钍基熔盐核能系统因其突出的经济性、安全性、可持续性和防止核扩散的能力,在第四代裂变反应堆的6个候选堆型中具有明显的竞争力[1-2]。作为钍基熔盐堆(Thorium Molten Salt Reactor,TMSR)的2 MW液态燃料钍基熔盐实验堆的非核模拟实验堆,钍基熔盐仿真堆(Thorium Molten Salt Reactor-Solid Fuel,TMSR-SF0)的运行控制和安全保护功能分别由基于实验物理与工业控制系统(Experimental Physics and Industrial Control System,EPICS)的分布式控制系统和基于现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)的保护系统独立实现。

为了实现TMSR-SF0的控制系统和保护系统的信息集成,并能够满足核电人因工程关于控制系统一体化和标准化以及最终能够高度可靠、及时、清晰地综合显示安全参数的要求,TMSR-SF0控制系统需要实现与基于FPGA的保护系统以自定义的通讯协议通信的方式进行通讯,使其能够读取并处理保护系统的数据,最终在其人机界面上统一显示。

核电上使用的控制系统与保护系统之间的通信方式有采用隔离的硬接线信号直接通信,有通过隔离网关实现通信。本文给出了一种能够实现控制系统与保护系统之间通讯的实施方案;文中设计的实施方案能够满足TMSR-SF0控制系统所要求的所有技术指标,且具有可靠性、实时性和稳定性;文中的保护系统是以自定义的通讯协议与控制系统进行通信,且具有校验功能,能够保证通讯内容的完整性和准确性;文中设计的控制系统与保护系统之间的通讯方案是基于EPICS平台上的S7plc驱动程序,是其他的核电控制系统所没有的,可以为将来控制系统与子系统的通讯设计及仪控行业中类似的通讯设计提供一种参考和借鉴。

本文重点研究了保护系统串口设备与控制系统之间通信的方案设计和技术实现。

1 设计

EPICS是用于大型科学装置控制系统软件开发和运行的软件工具集。基于其所开发的分布式控制系统的稳定性、可移植性、可互操作性、可裁减性及可重用性等特点,EPICS广泛应用在工业和实验项目中[3-5]。基于此,TMSR采用EPICS开发了TMSR试验回路控制系统以及刚刚成功运行的TMSR-SF0控制系统,其稳定可靠的特点保障了TMSR项目的顺利进行[6-7]。

TMSR-SF0保护系统通过MOXA NPort 5150串口联网服务器将RS-485串口设备与以太网连接,以传输控制协议/网际协议(Transmission Control Protocol/Internet Protocol,TCP/IP)数据包的形式每1 s周期性地单向发送数据到TMSR-SF0控制系统,其通讯结构见图1(TMSR-SF0保护系统的初步设计是内外网隔离——禁止外网直接访问保护系统的数据;将来实际应用中保护系统串口设备将采用隔离网关的方式设计实现网络的隔离)。TMSR-SF0保护系统通信协议中定义的帧尾信息有数据校验功能——保护系统发送数据时在FPGA实现中计算出校验码,发送给接收端;接收端计算校验码后以校验码是否匹配来判断接收数据的真实性。由于业务需要,文中实现的是单向通信,在此没有重发机制——如果接收端没有接收到数据包或者接收端经过计算得到的校验码与发过来的不一致(即出现数据传输误码),则直接丢弃,不会重发。因此需要EPICS相应的驱动程序,实现TMSR-SF0保护系统与控制系统之间的通讯。

作为EPICS的TCP/IP通讯驱动包,S7plc驱动程序具有接收并解析串口设备发来的TCP/IP数据包的功能,并且已在TMSR试验回路长期稳定应用。故S7plc驱动程序可以作为TMSR-SF0控制系统和保护系统通讯的工具。

图1 TMSR-SF0保护系统串口设备通过FPGA与MOXA通讯的结构图Fig.1 Structure diagram of TMSR-SF0 protection system serial device communicating with moxa through FPGA

S7plc作为EPICS驱动支持层(Device support)接收并解析串口设备服务器发送的TCP/IP数据包,进而建立输入输出控制器(Input/Output Controller,IOC),并开发用以处理保护系统实时通讯数据的数据库文件,最终使得保护系统数据在控制系统的人机界面上统一显示。其数据流程图见图2。

图2 TMSR-SF0控制系统与保护系统串口设备之间的数据流程图Fig.2 Data flow chart between TMSR-SF0 control system and protection system serial device

2 实现

TMSR-SF0保护系统中需被控制系统读取并处理的信号量,由保护系统自定义的通讯数据帧所传递,数据帧格式中数据分类见表1。

表1 TMSR-SF0保护系统自定义的通信协议数据帧格式Table 1 Data frame of communication protocol for TMSR-SF0 protection system

表1 中通信协议是针对钍基熔盐仿真堆而设计,能够满足仿真堆的设计要求,且设计的通信协议帧尾信息具有校验字段,即使把该协议使用在复杂的核电现场使用环境下,也能够保证通讯内容的完整性和准确性。为了实现TMSR-SF0控制系统对保护系统数据的读取与处理,需要完成接口软件开发和系统测试。

2.1 接口软件开发

接口软件开发任务主要是实现Linux平台下EPICS系统的驱动程序与保护系统软件之间的通讯配置,包括IOC搭建、S7plc驱动配置、IOC实时数据库设计和人机界面开发。

2.1.1 IOC搭建

基于EPICS的TMSR-SF0保护系统与控制系统之间的通讯方案,是在Linux系统Centos 6.4 32位操作系统平台下用EPICS base-3.14.12版本(安装目录为$base)进行IOC搭建,并用S7plc-1.17版本进行驱动配置[8-9]。

创建IOC实例,首先通过makeBaseApp.pl生成一个IOC实例的应用目录和一个IOC启动目录。一个IOC实例包含应用目录s7plcApp、配置目录configure、启动目录iocBoot和Makefile等。IOC实例中最重要的是s7plcApp,其包含了源文件目录src和数据库目录db。S7plc驱动包中的设备支持/设备驱动程序(drvS7plc.h、devS7plc.c和drvS7plc.c)和记录 支 持程 序(s7plcBase.dbd、s7plcCalcout.dbd和s7plcReg.dbd)被使用在s7plcApp的src下以编译支持库和IOC应用,src下的Makefile配置见图3。configure下RELEASE文件中 的EPICS_BASE需 配置为$base。在IOC实例目录下,编译成功后,生成db、dbd、include、lib、bin,搭建IOC完成。

2.1.2 S7plc驱动配置

为了实现TMSR-SF0保护系统串口设备与控制系统EPICS IOC的通信,在IOC的启动脚本iocBoot/iocs7plc/st.cmd中,配置S7plc的串口通信参数。

图3 IOC实例下s7plcApp的src中Makefile配置流程图Fig.3 Configuration flow of Makefile in src directory under s7plcApp for the IOC

S7plc串口通信配置函数为s7plcConfigure PLCname,IPaddr,port,inSize,outSize,bigEndian,recvTimeout,sendInterval。函数中定义的PLCname将在输入记录INP链接中被引用;IPaddr引用的是服务器端地址;port引用的是服务器端设置的TCP端口;inSize定义从服务器端PLC读取的以字节为单位的数据块大小;outSize定义接收的以字节为单位的数据块大小;bigEndian定义传输的字节顺序,本文设计的方案是小端传输,值设置为0;recvTimeout定义接收的超时时间;sendInterval定义发送时间间隔。

2.1.3 IOC实时数据库设计

EPICS IOC实时数据库能够实时接收和存储TMSR-SF0保护系统发送的数据。TMSR-SF0控制系统需要监测的保护系统中的模拟量包括源量程/中间量程/功率量程高压值、脉冲计数值、功率值、校准系数,出口温度值,一回路/二回路流量原始电流值、流量值、流量校准系数,三回路负载原始值、负载值、负载校准系数,事故后监测温度值;开关量包括源量程/中间量程/功率量程工作状态,出口温度逻辑状态,一回路/二回路流量逻辑状态,三回路负载逻辑状态,厂外失电逻辑状态、断路器驱动状态、安全专设驱动状态。

在设计的TMSR-SF0保护系统数据库文件中,对表1保护系统自定义的通信数据开发对应的数据库记录,包括AI和BI。其数据库记录的实例如下:

使用S7plc驱动,数据库记录中的设备类型DTYP则设置为“S7plc”;AI记录的INP域设置为“@PLCname/N T=FLOAT”,其PLCname是在驱动配置中自定义的plc name,N表示从第N(由保护系统通讯协议定义的字节偏移量定)个字节开始读取,T=FLOAT定义数据类型;PREC域定义字段值的保留有效字段长度;SCAN域设置为“I/O Intr”,表示驱动程序一旦接收到数据,就将此过程变量从数据块中复制到输入记录;BI记录的INP域设置为“PLCname/M B=T”,表示从第M个字节开始读取两个字节中的第T位(由保护系统通讯协议定义的字节偏移量定M,由定义的位数定T)。

依据数据库记录的定义,解析在某一时刻控制系统端接收到的数据包中的监测量AI和BI,并对比AI和BI同一时刻在保护系统界面上的原始值、控制系统端接收到的数据包解析值以及在EPICS IOC端的AI和BI的PV值,如果三值一致则能够确定IOC实时数据库能实时接收和存储TMSR-SF0保护系统传送的数据。

2.1.4 人机界面开发

控制系统人机界面开发能够使得监控人员更好地监测保护系统的实时数据。基于TMSR-SF0控制系统显示画面的开发工具Control System Studio(CSS版本为3.2.16)平台[10],建立保护系统的显示画面,进行画面组态。根据SF0控制系统监控的实际需求,设计的通讯方案实现了保护系统数据的实时显示,其B序列部分数据显示画面见图4。

2.2 系统测试

图4 TMSR-SF0控制系统读取保护系统B序列的部分数据显示画面Fig.4 Display screen of protection system partial data read by TMSR-SF0 control system

在TMSR-SF0保护系统的MOXA NPort 5150串口联网服务器操作模式配置成TCP Server模式并启动成功的条件下,运行ioc文件iocBoot/iocs7plc/st.cmd。

2.2.1 功能测试

TMSR-SF0保护系统中有出口温度、一回路流量、二回路流量、三回路负载低/高以及它们的状态(旁通/闭锁/故障/预警/停堆)等。图5是TMSR-SF0控制系统显示画面接收到的保护系统B序列的部分数据。图中第一行是出口温度值及其旁通和故障状态,是保护系统中最重要的参数指标。在控制系统显示终端可实时监控出口温度值的变化,以便于操作员整体掌握保护系统的状况。

经过功能测试,基于EPICS平台的S7plc驱动程序实现的控制系统可以实现对保护系统进行实时监测,满足系统设计要求。

图5 TMSR-SF0控制系统显示画面接收到的部分信息Fig.5 Display screen of partial information received by TMSR-SF0 control system

2.2.2 性能测试

通过长期观察TMSR-SF0控制系统与保护系统通讯软件的运行,测试软件的实时性、稳定性和可靠性。如果在正常工况下,TMSR-SF0控制系统接收的数据与保护系统原始数据是一致的,每次通讯的平均响应时间小于等于系统要求的响应时间100 ms(在设计之初,对于TMSR-SF0仿真堆没有提出具体的技术指标,此处以实时性要求较高的平均响应时间100 ms为参考基准),并且长时间表现出稳定的趋势(丢包率小于等于1%),就可以证明基于EPICS实现的TMSR-SF0控制系统与保护系统的通讯软件是可靠、实时、稳定的。

1)可靠性:TMSR-SF0保护系统通讯协议中定义了27个模拟量和287个开关量,图6和图7分别给出了模拟量出口温度和一回路流量在长期观察过程中随机抽取的连续14 d关于TMSR-SF0保护系统端原始值和控制系统显示画面终端监测值的样本数据对比图(在系统测试时,连续监测了一段时间,数据量很大,在图中很难画出所有数据,为了简化对比图,针对每个变量随机抽取每天的一个样本数据在图中显示出来,此处随机抽取连续14 d的数据)。

图6 TMSR-SF0保护系统和控制系统出口温度对比Fig.6 Comparison of outlet temperature between TMSR-SF0 protection system and control system

图7 TMSR-SF0保护系统和控制系统一回路流量对比Fig.7 Comparison of primary flow rate between TMSR-SF0 protection system and control system

TMSR-SF0保护系统端原始值和控制系统显示画面终端监测值是完全一致的,故基于EPICS实现的TMSR-SF0控制系统与保护系统的通讯软件是可靠的。

2)实时性:在TMSR-SF0控制系统与保护系统通讯软件终端,采用ping保护系统IP的方式测试一段时间,记下每天开始发数据包的时间和最后一个数据包得到响应的时间。设发数据包的总时长为time,发数据包总数为total,则平均响应时间t=time/total。图8给出了在长期观察过程中随机抽取14 d的关于TMSR-SF0控制系统与保护系统通讯的平均响应时间的变化趋势。

从图8中可见,TMSR-SF0控制系统与保护系统通讯的最小平均响应时间是1.54 ms,最大平均响应时间是4.2 ms,计算出的平均响应时间是2.248 ms。由于平均响应时间2.248 ms小于系统要求的响应时间100 ms,故基于EPICS实现的TMSR-SF0控制系统与保护系统的通讯软件是实时的。

图8 TMSR-SF0控制系统与保护系统通信的平均响应时间变化趋势Fig.8 Trend of average response time of communication between TMSR-SF0 control system and protection system

3)稳定性:在TMSR-SF0控制系统与保护系统通讯软件终端,采用ping保护系统IP的方式连续测试一段时间,记下每天发送数据包总数和接收数据包总数,可得丢数据包总数。设发送数据包总数为N,接收数据包总数为M,则丢数据包总数为K=NM,丢包率=K/N。根据丢包率的计算方法,随机抽取了14 d的数据,计算出的丢包率是0%,故基于EPICS实现的TMSR-SF0控制系统与保护系统的通讯软件是稳定的。

本文系统测试是在Intel(R)Core(TM)i7-6500U CPU@2.50 GHz、16.0 G RAM、Centos 6.4 32位、EPICS base-3.14.12、S7plc-1.17、50~100 M宽带、保护系统串口设备以每1 s周期性发送数据包的环境下进行测试,经过长期观察TMSR-SF0控制系统与保护系统通讯软件的运行,对比保护系统端的原始值和控制系统显示画面端监测值,计算连续一段时间通信的平均响应时间及丢包率,证明了基于EPICS实现的TMSR-SF0控制系统与保护系统的通讯软件的可靠性、实时性和稳定性。

3 结语

本文设计并实现的TMSR-SF0控制系统与保护系统的通讯软件具有一定的可靠性、实时性和稳定性,能够满足SF0控制系统所要求的所有技术指标,能够为工程应用和仪控行业类似的通讯软件提供使用和借鉴价值,同时,为TMSR控制系统后续的功能开发,提供可靠的技术支持。但是由于TCP/IP本质上是双向通信,此处单向通信是通过软件实现,为长远考虑,并为TMSR后续项目(如实验堆、试验堆、示范堆等)大型软件的安全可靠性等性能指标以及其他使用串口通信的功能开发和正常运行提供关键支撑技术研发能力和保障,下一步将继续在其软件安全可靠性方面努力,做进一步研究和改进,以保证单向通信的可靠实现。未来将从以下方面进行改进:1)控制系统软件账户登录和访问权限控制;2)从目前单个IOC配置到多个IOC冗余配置的研究;3)IOC数据库安全访问;4)CA安全访问。

猜你喜欢
驱动程序串口数据包
二维隐蔽时间信道构建的研究*
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
基于API函数库实现串口数据通信的分析与设计
基于EM9000工控板高性能双串口通信模型设计与实现
阻止Windows Update更新驱动程序
C#串口高效可靠的接收方案设计
计算机硬件设备驱动程序分析
船舶电子设备串口数据的软件共享方法
妙用鼠标驱动