PRP协议在反应堆仪控系统控制网络中的初步应用
2014-03-04刘少海陈永忠韩利锋徐海霞
刘少海 陈永忠 韩利锋 张 宁 徐海霞
1(中国科学院上海应用物理研究所 嘉定园区 上海 201800)
2(中国科学院大学 北京 100049)
3(中国科学院核辐射与核能技术重点实验室 上海 201800)
PRP协议在反应堆仪控系统控制网络中的初步应用
刘少海1,2陈永忠1,3韩利锋1,3张 宁1,3徐海霞1,3
1(中国科学院上海应用物理研究所 嘉定园区 上海 201800)
2(中国科学院大学 北京 100049)
3(中国科学院核辐射与核能技术重点实验室 上海 201800)
网络通信中的网络冗余协议,如快速生成树协议(Rapid Spanning Tree Protocol, RSTP),在网络发生单点故障时其可靠性需进一步提高才能用反应堆数字化仪表与控制系统中。本文介绍了应用于智能变电站的IEC 62439-3标准所发布的并行冗余协议(Parallel Redundancy Protocol, PRP),分析了该协议实现高可靠性和高可用性的原理,并在Linux网络协议栈应用层开发了基于TCP/IP的PRP协议软件。测试表明,在应用层实现PRP协议的方案可行,可以达到零自愈和零丢包的高可靠性要求,为提高反应堆仪控系统控制网络的可靠性提供了参考思路和实现方式。
并行冗余协议,IEC 62439-3,数字化仪表与控制系统,控制网络,可靠性
仪表与控制系统(Instrumentation and Control System, I&C)是核电站的重要组成部分,机组的安全、可靠、经济运行在很大程度上取决于仪表控制系统的性能水平[1]。当前,采用数字化仪表与控制系统已是先进型反应堆的一个重要特征[2]。其区别于传统模拟I&C的关键之一就在于具有极强的通讯能力,通讯功能的实现是由控制网络来承担[3]。为了保证控制网络在单一故障时的高可靠性,美国核管会(U.S. Nuclear Regulatory Commission, NRC)强调控制网络的设计必须遵循冗余性原则。但目前核电仪控领域还没有权威的机构制定出相应的网络冗余标准和实现方式,只能借鉴其他对实时性、可靠性要求较高的工控领域(如智能变电站)中的相应标准和技术。
工业冗余控制网络的通信可靠性对工控系统的安全稳定运行有重要作用。常把网络发生单点故障后恢复通信的自愈时间,以及在自愈期间是否伴随丢包现象作为衡量该冗余网络协议可靠性的重要指标。2008年,国际电工协会IEC SC65 WG15发布了IEC 62439——高可用性自动化网络协议标准[4]。其中,IEC 62439-3发布的并行冗余协议(Parallel Redundancy Protocol, PRP)以“并行”方式,从理论上实现了零自愈时间和零丢包率的无缝切换效果。超越了John等在2010年给NRC的报告“Secure Network Design Techniques for Safety System Applications at Nuclear Power Plants”[5]中提到的快速生成树协议RSTP 0.25-2 s的自愈时间指标;也超越了IEC 62439采纳的媒介冗余协议(Media Redundancy Protocol)、交叉冗余协议(Cross-network Redundancy Protocol)以及信号冗余协议(Beacon Redundancy Protocol)毫秒量级自愈时间指标[6]。目前PRP主要应用在智能变电站中,为了探索PRP在核电仪控领域中应用的可行性,本文借助仪控系统控制网络平台,对PRP协议在节点应用层实现的方向上做了原理性探究。测试结果表明,从可靠性角度而言,该方案能满足反应堆仪控系统控制网络对高可靠性的要求。
1 PRP
IEC 62439标准归纳了2种网络冗余方式,即网络设备冗余和网络节点冗余[4,7]。
网络设备冗余是指交换机和链路的冗余,其以备用或交替的模式运行,当网络出现单一故障时,系统通过切换到冗余的网络通路恢复通信。根据网络拓扑不同,相应切换时间最小可达毫秒级[6]。
网络节点冗余是指冗余协议工作在网络终端上,终端通过2个并行端口,连接到两个独立运行局域网中,整个网络中唯一的非冗余元素是节点本身。这种方式对交换机无特殊要求。因是并行运行,一旦出现单点故障,可以以零延时恢复通信,即无缝切换。IEC 62439标准要求冗余协议实现可确定的网络恢复时间[6]。不论从可靠性指标还是网络拓扑适应性来看,网络节点冗余方式优于网络设备冗余方式,是理想的网络冗余方案。并行冗余协议PRP就是基于网络节点冗余的冗余协议。
1.1 网络结构和工作原理
PRP网络拓扑和节点结构如图1所示。
节点通常以双连接方式接入[4,8],称为双连接节点(Doubly Attached Node with PRP, DANP),其与两个局域网都有物理连接,且这两个局域网的拓扑结构无直接关联。
图1 PRP网络拓扑和节点结构Fig.1 Network topology and node structure of PRP.
DANP通过链路冗余体(Link Redundancy Entity, LRE)将两个并行的网络端口与上层协议相连。LRE是协议栈中额外的一层,整个PRP协议靠它来实现冗余功能。LRE的核心功能是通过重复报文丢弃算法完成对报文的“双发双收”。LRE可以通过驱动层软件、应用层软件或是硬件实现[6]。本文将研究PRP在应用层的实现方案,同时探索PRP在反应堆仪控系统控制网络中应用的可行性。
2 在应用层实现PRP协议方案
在应用层实现PRP的终端节点如图2所示。
图2 节点结构Fig.2 Node structure.
DANP的两个以太网卡的MAC地址和IP地址不相同,并通过RPP Socket API来替代LRE实现冗余功能。
2.1 重复报文处理
在发送节点中,RPP Socket API收到来自应用层的数据后,首先根据以太网数据帧的有效载荷(payload)大小将到来的数据分片处理后,均加上4字节的冗余控制标签RCT (Redundancy control tag),复制成两份后根据不同的网卡IP,分别经过TCP/IP协议层层封装,再同时从两个网络适配器发送出去。
网络数据封装的过程和报文格式如图3所示。其中,4字节的RCT由以下3个参数组成:
(1) 序列号(Sequence),占16位,是接收节点进行重复报文判断的主要参数。设其取值在0-65500,按照递增方向分成655个区间,每区间有100个数值。对同一节点发送数据时,相邻两次数据发送所需要的Sequence分别取自相邻的两个区间;若某一次发送的数据需要分片处理,那么PRP Socket API每向TCP/IP下传有RCT头的数据片段,序列号就增1,直到分片数据全部发送。
(2) 局域网标识符(LAN),占4位,依据局域网A、B的取值不同,指示数据帧传送的路径。
(3) 用户数据总长度(Size),占12位,确定每次发送的用户数据单元的大小。
接收节点收到一对在逻辑上认为是重复的报文后,首先判断其Sequence是否属于当前序列号区间或者相邻的下一个序列号区间。若不属于,说明到来的是由故障因素导致延时到达的过期报文,将直接丢弃;若属于,节点会进一步通过重复报文丢弃算法来判断。最终第1个收到的报文上传,后到的视为重复报文被丢弃。
图3 PRP封装格式和流程Fig.3 Format and process of PRP encapsulation.
丢弃算法采用丢弃窗口算法[4],如图4所示。丢弃窗口由3个参数组成,即StartSeq、CurrentSeq和ExpectedSeq。窗口区间左闭右开;StartSeq是窗口下边界,是本局域网丢弃的最小序列号;保存在数据帧RCT中的是CurrentSeq;ExpectedSeq是窗口的上边界,且ExpectedSeq= CurrentSeq+1。通过程序相关设计和TCP协议的可靠传输特性,能够保证PRP数据帧有序上传。
图4 丢弃窗口算法Fig.4 Drop window algorithm.
受局域网的健康状态、网络数据传输延迟时间、两个网卡接收数据流程等因素影响,本文将丢弃窗口算法扩展为两种模式:连续模式和交替模式。连续模式,即同一局域网的报文连续到来的状态,通常发生在某一局域网故障时。此时,本局域网的StartSeq值不变,窗口区间增1;故障局域网的丢弃窗口参数值保持不变;交替模式,即网A和网B的报文交替到来。此时两个局域网的丢弃窗口均发生参数值变化。如图4当并行的局域网B的CurrentSeq落入网A的丢弃窗口内,则将其丢弃。有:
若CurrentSeq落在网A的丢弃窗口外,则来该报文上传。有:
在上述两种丢弃模式的配合下,丢弃窗口算法对报文进行有序地丢弃和上传,来实现PRP协议的冗余功能。
2.2 PRP协议软件构架
基于TCP网络编程技术,本文在TCP/IP协议栈的应用层开发了PRP协议软件。TCP网络编程为客户端(C)/服务器(S)模式。TCP服务器模型有:TCP循环服务器模型、TCP并发服务器模型、IO复用服务器模型。对accept()函数的不同处理方式是区别以上3种模型的一个重要依据[9]。
由于并发服务器模型能对多个客户端的数据请求进行并发处理,所以本文主要参考TCP并发服务器模型[9],在Linux下,用C语言以“多进程”概念完成了服务器端和客户端的程序编写。PRP软件构架如图5、图6所示。
图5 TCP双网卡客户端模型Fig.5 TCP client model of dual NIC.
图6 双网卡TCP并发服务器模型Fig.6 TCP concurrent server model of dual NIC.
服务器端创建了两个TCP端口与各自网卡IP绑定。而且服务器端必须从多个客户端网卡的连接请求中,识别出来自同一客户端的两个网卡经不同局域网传来的连接请求,并绑定在同一处理进程,以在此进程中实现C/S间数据的双发双收。
数据双发双收功能主要通过prp_recv()函数和prp_send()函数来实现。prp_recv()调用IO函数recv()解决数据的双收问题;prp_send()调用IO函数send()解决数据的双发问题。由于阻塞IO是最通用的IO类型,为了避免recv()、send()在数据没到来之前,一直阻塞而不返回,中止程序运行,需设置recv()和send()函数超时[9]:
struct timeval tv={2,0}; //超时时间设置为2 s setsockopt(socket,SOL_S0CKET,SO_SNDTIME O,&tv,sizeof(tv));//设置发送超时
setsockopt(socket,SOL_S0CKET,SO_RCVTIME O,&tv,sizeof(tv));//设置接收超时
注意,recv()和send()的第4个参数应设置为MSG_WAITALL,确保函数在阻塞模式下不等到指定字节数目的数据不会返回,除非超时时间到。
2.3 PRP协议实现方案在实现方式上特点
IEC 62439-3标准中定义的PRP协议是在网络协议栈的数据链路层实现的,而本文PRP协议实现方案是参照IEC 62439-3标准在应用层实现的。得益于TCP协议的可靠传输特性和PRP“并行”概念,在功能上,本文PRP方案能够实现双发双收的冗余功能,在理论上可以达到零自愈时间和自愈期间零丢包率的性能。在实现方式上,本文方案还有其自身的特点,体现在:
(1) 本文PRP协议方案虽允许两者在同一个网络中同时存在,但相互之间不能透过PRP协议方案进行通信,而标准PRP协议却能够实现。这主要受到TCP并行服务器模型在用accept()函数处理客户端连接请求时,用逻辑“与”来处理的技术限制。
(2) 在应用层实现的PRP,其RCT在应用层就必须开始封装。
(3) 本文PRP协议方案中DANP有两个不同的MAC地址和IP地址,IP地址网段不一样,要通过协议软件的专门模块进行区分、绑定。而标准PRP协议中DANP的IP地址和MAC地址都是唯一的。这种配置使得其对上层协议透明,如地址解析协议能像单端口节点一样在DANP上工作[10]。
(4) 标准PRP协议不依赖于上层协议且对上层协议透明,适用于不同拓扑结构的工控网络。而本文PRP协议方案协议依赖于TCP/IP协议,这使得与其他应用层工业协议存在兼容问题,需要继续探索它在不同拓扑结构的工控自动化网络中的应用可行性和应用方式。
(5) 标准PRP协议是用驱动软件或是硬件来实现。本文是在应用层上开发软件。
3 测试
本文依托凌华科技ATCA的3台刀片服务器aTCA-6900,安装操作系统Red Hat Enterprise Linux 6,搭建了如图7所示的反应堆冗余控制网络实验测试平台,测试了本文PRP协议方案的可靠性表征性能指标——自愈时间和自愈期间的丢包率。
aTCA-6900是多核双处理器的服务器版,有两个1 G的网卡位于前面板(eth2/eth3)。选其作为一对网卡,视aTCA-6900刀片服务器为DANP。LAN A是控制网络实验室局域网,有6台终端联网运行,LAN B是所园区局域网。每次使两个Client端以T={3 s, 2 s, 1 s, 0.5 s, 0.2 s}集合中的值为周期,以点对点的方式向server端发送数据,期间使其中一个局域网在中断后恢复通信;在server端用wireshark捕获从2个网卡到来的报文,记录此次测试中的对应两DANP间的报文序号和捕获时间。测试多次,其中最长测试持续时间1周,期间多次制造单点故障后使网络恢复正常。以Node0与Node1之间T=2s的测试结果为例(图8)。
若一个局域网断开(如网A),不会对另一个独立的、并行的局域网(如网B)的通信造成干扰;断开的局域网修复后,部分报文会延迟到达(属于过期报文),其他的均丢失,但也不会干扰另一个正常局域网,整个断开愈合过程不会使正常局域网丢包和延时,对两节点间通信而言,没有切换时间,即自愈时间为0。所以本文方案可以实现零自愈和零丢包的高可靠性要求,能为提高核I&C冗余控制网络的可靠性提供一种很好的思路和实现方式。
图7 PRP性能测试平台Fig.7 A performance test platform of PRP.
图8 测试结果Fig.8 Results of test.
4 结语
本文对PRP冗余技术在节点应用层实现方向上做了原理性研究和双网冗余测试。测试表明,该方案能够实现IEC 62439-3标准中定义的PRP协议所能实现的核心功能。即实现零自愈和零丢包的无缝切换高可靠性要求。相比于AP1000仪控系统
Ovation平台采用的双网备份冗余,以及EPR仪控系统TXP平台采用的带星型耦合器的虚拟环网冗余等基于网络设备冗余方式的无扰切换冗余技术,对十分注重可靠性的核电工控领域而言,PRP无缝切换冗余技术以网络节点冗余的方式,更具有较高的实用价值。
1 王家胜, 洪振旻, 胡平. 核电站数字化仪控系统改造中的几种控制系统综合应用分析[J]. 核科学与工程, 2005, 25(3): 231-238 WANG Jiasheng, HONG Zhenmin, HU Ping. Some digit I&C system applies and analyse in nuclear power station’s reconstruct[J]. Chinese Journal of Nuclear Science and Engineering, 2005, 25(3): 231-238
2 郭晓明. 核电站数字化仪控系统可靠性分析方法研究[D]. 北京: 清华大学, 2011 GUO Xiaoming. On reliability analysis method of nuclear power station digital instrument control system[D]. Beijing: Tsinghua University, 2011
3 郑明光, 徐济鋆, 金承华, 等. 中国百万级核电站数字化仪控系统的设计目标分析[J]. 核技术, 2001, 24(2): 134-138 ZHEN Mingguang, XU Jiyun, JIN Chenghua, et al. Design objective analysis of computerized I and C system used in Chinese national pressurized water reactor[J]. Nuclear Techniques, 2001, 24(2): 134-138
4 International Electrotechnical Commission. IEC 62439 SC 65C High availability automation networks[S]. Geneva, Switzerland: IEC, 2008
5 John Michalski T, Francis Wyant J, David Duggan, et al. Secure network design techniques for safety system applications at nuclear power plants, a letter report to the US NRC[EB/OL]. http://pbadupws.nrc.gov/docs/ML 1225/ML12250A812.pdf, 2010-9-20
6 谢志迅, 邓素碧, 臧德扬. 数字化变电站通信网络冗余技术[J]. 电力自动化设备, 2011, 31(9): 100-103, 120 XIE Zhixun, DENG Subi, ZANG Deyang. Redundancy technique of digital substation communication network[J]. Electric Power Automation Equipment, 2011, 31(9): 100-103, 120
7 Araujo J A, Lazaro J, Astarloa A, et al. High availability automation networks: PRP and HSR ring implementations[C]. Industrial Electronics (ISIE), 2012 IEEE International Symposium on, Hangzhou, CN, 2012
8 陈原子, 徐习东. 基于并行冗余网络的数字化变电站通信网络构架[J]. 电力自动化设备, 2011, 31(1): 105-108 CHEN Yuanzi, XU Xidong. Communication network structure of digital substation based on parallel redundancy[J]. Electric Power Automation Equipment, 2011, 31(1): 105-108
9 宋敬彬, 孙海滨. Linux网络编程(第二版)[M]. 北京:清华大学出版社, 2014 SONG Jingbin, SUN Haibin. Linux network programming (2nded)[M]. Beijing: Tsinghua University, 2014
10 王浩, 王平, 付蔚, 等. 高可用性自动化网络[M]. 北京:科学出版社, 2012 WANG Hao, WANG Ping, FU Wei, et al. High availability automation networks[M]. Beijing: Science Press, 2012
CLCTL362+.5
Research on application of PRP to the control network for digital I&C of nuclear reactor
LIU Shaohai1,2CHEN Yongzhong1,3HAN Lifeng1,3ZHANG Ning1,3XU Haixia1,3
1(Shanghai Institute of Applied Physics, Chinese Academy of Sciences, Jiading Campus, Shanghai 201800, China)
2(University of Chinese Academy of Sciences, Beijing 100049, China)
3(Key Laboratory of Nuclear Radiation and Nuclear Energy Technology, Chinese Academy of Sciences, Shanghai 201800, China)
Background:Only the reliability of Rapid Spanning Tree Protocol (RSTP) and some other redundancy protocols is improved when a single-point failure occurs in the network, then the RSTP might be applied to control network of reactor’s digital instrumentation and control system (I&C). The Parallel Redundancy Protocol (PRP) released in standard IEC62439-3 and applied to the intelligent power transducing station is proposed as a possible solution to provide completely seamless switchover in case of a single-point failure.Purpose:In order to fulfill all the high-reliability requirements of redundancy control network, the PRP is applied to the digital I&C of nuclear reactor.Methods:The principle of achievable high reliability and high availability based on PRP are analyzed in detail, and a software implementation of PRP protocol has been developed based on TCP/IP over Linux in the application layer. ResultsTest results show that the high reliability requirements of zero self-healing time and zero packet loss can be realized during the simple data transmitting experiments across the various network nodes.ConclusionThe PRP and the peoposed implementation plan can be employed to achieve high reliability control network for nuclear reactor’s I&C system.
Parallel redundancy protocol (PRP), IEC 62439-3, Digital instrumentation and control system (I&C), Control network, Reliability
TL362+.5
10.11889/j.0253-3219.2014.hjs.37.110603
中国科学院战略性先导科技专项(No.XDA02010300)资助
刘少海,男,1988年出生,2012 年毕业于三峡大学,现为硕士研究生,核技术及应用专业
2014-07-21,
2014-08-22