APP下载

基于PRP协议的EPICS冗余技术

2015-12-01刘少海陈永忠韩利峰

核技术 2015年4期
关键词:应用层局域网报文

刘少海 陈永忠 韩利峰

基于PRP协议的EPICS冗余技术

刘少海1,2陈永忠1,3韩利峰1,3

1(中国科学院上海应用物理研究所 嘉定园区 上海 201800)2(中国科学院大学 北京 100049)3(中国科学院核辐射与核能技术重点实验室 上海 201800)

冗余技术是提高EPICS (Experimental Physics and Industrial Control System)在核电领域应用可靠性的有效解决方案。不同于当前采用的“热备用”冗余模式,本文借鉴IEC 62439-3标准所发布的并行冗余协议(Parallel Redundancy Protocol, PRP)阐述的“并行”冗余模式,分析了该协议的应用层实现方案用于EPICS系统的可行性,并参照EPICS的通道访问协议(Channel Access, CA),在Linux系统下开发了基于PRP的EPICS CA协议软件。测试表明,基于PRP应用层协议方案的EPICS CA协议,在网络单点故障时可以实现无缝切换的高可靠性要求,为提高核电领域EPICS系统的通信网络可靠性,提供了实现方式。

并行冗余协议,核电,EPCIS,网络冗余,可靠性

由美国洛斯阿拉莫斯国家实验室(Los Alamos National Laboratory, LANL)和阿贡国家实验室(Argonne National Laboratory, ANL)等联合开发的大型分布式实时控制软件系统EPICS (Experimental Physics and Industrial Control System)[1−2],以其易扩展、开源、高可靠性、高性能以及对多平台的支持,已被应用到核电领域的大科学实验装置中。如国际热核聚变实验反应堆(International Thermonuclear Experimental Reactor, ITER)[3]、中国科学院钍基熔盐核能项目前期研发中的反应堆功率控制系统[4]等。由于核电的特殊性,对EPICS系统网络通信的可靠性提出了更高的要求,而冗余技术恰是提高EPICS系统通信网络的稳定性、可靠性的有效方法之一。

当前,EPICS控制系统的冗余技术主要采用IOC (Input/Output Controller)“热备用”的模式,通过备用、切换的方式使系统在产生故障时仍然能正常有效运行。如文献[4−6]提出采用德国电子同步加速器(Deutsches Elektronen Synchrotron, DESY)实验室的IOC冗余方法和采用Linux-HA的Heartbeat软件来实现EPICS IOC的冗余切换,热备切换时间小于1s[4]。

为进一步提高可靠性,本文借鉴了其他工控领域(如智能变电站)的先进冗余技术,参考IEC 62439-3[7]发布的并行冗余协议(Parallel Redundancy Protocol, PRP),以及文献[8]提出的PRP在应用层实现的协议方案,探索用“并行”冗余模式来实现EPICS通信网络的冗余。

1 EPICS系统软件结构

基于分布式标准的EPICS结构如图1[2]。EPICS是基于客户端/服务器模型的软件工具集,主要包括两部分:OPI (Operator Interface)层和IOC层。OPI分两层:通道访问CA客户端接口和应用软件;IOC分6层:通道访问CA服务端和客户端接口、数据库访问接口、动态数据库、记录支持模块、设备支持模块、设备驱动器。EPICS软件系统的核心机制是分布式动态数据库(Runtime database)和通道访问协议(Channel Access, CA)。

图1 EPICS系统结构Fig.1 Structure of EPICS.

分布式动态数据库中记录的数据单元称为过程变量(Process Variable, PV),它实时地反映I/O量的控制与运行属性。

EPICS软件中的各个组件通过CA交换数据。CA是EPICS依据客户端/服务端模型,建立在UDP/IP与TCP/IP 网络通讯协议之上的应用层协议,是连接OPI与IOC的一条软件总线,为OPI和IOC分别提供应用接口子程序库[9]。

2 PRP应用层协议方案

IEC 62439-3发布的PRP采用网络节点冗余的方式[7,10],以“并行”的冗余模式,从理论上实现了零自愈时间(切换时间为0)的无缝切换效果。PRP协议可以通过驱动层软件、应用层软件或硬件来实现[7−8,11]。本文根据EPICS CA是基于TCP/IP的应用层协议且采用客户端/服务端模型这一特性,选择将PRP应用层协议方案作为研究对象。在应用层实现的PRP协议的节点结构与网络拓扑如图2[8]。

图2 应用层的PRP节点结构与网络拓扑Fig.2 Node structure and network topology of PRP on the application layer.

网络中的节点用双端口分别连接到两个独立的、并列运行的、拓扑结构无关联的局域网中。且节点的两个以太网卡的MAC地址不同,IP地址处于不同网段。因此,其中一个局域网发生单点故障时,不会影响到另一个正常局域网的通信。对两节点间通信,单点故障并不会干扰正常通信;因为没有切换,故自愈时间为0。

图2中,PRP Socket API (Application Programming Interface)是协议中额外一层,它对系统Socket的接口函数recv()和send()分别进行处理,并封装成新的接口函数prp_recv()和prp_send()。应用软件可通过调用PRP Socket API来实现冗余功能——调用重复报文丢弃算法来实现对报文的“双发双收”。

2.1 重复报文处理

在发送节点中,PRP Socket API收到来自应用上层的数据后,复制成两份;根据两个网卡IP的不同,分别给数据帧加上4字节的冗余控制标签(Redundancy Control Tag, RCT),然后经TCP/IP层层封装后,将其分别从对应的网卡同时发送出去。

RCT的封装格式见图3。由三个参数组成:占16位的序列号(Sequence)、占4位的局域网标识符(LAN)和占12位的用户数据总长度(Size)。

图3 PRP封装格式Fig.3 Format of PRP encapsulation.

接收节点收到一对逻辑上的“重复”报文后,通过提取RCT参数,配合各自对应的局域网建立的重复报文丢弃算法,即可实现对冗余报文的处理。使先到的报文上传,后到达的报文被丢弃。

根据IEC 62439发布的PRP协议标准以及其扩展协议HSR标准。重复报文丢弃算法可以采用丢弃窗口算法、基于查阅表的算法等[7,12]。本文采用丢弃窗口算法,如图4所示。丢弃窗口由三个参数组成:本局域网丢弃的最小序列号startSeq、保存在数据帧RCT中的currentSeq以及期望序列号expectedSeq,且expectedSeq = currentSeq+1。

图4 丢弃窗口算法Fig.4 Drop window algorithm.

若来自局域网B的报文的currentSeq落入网A的丢弃窗口内,则将其丢弃。若currentSeq落在网A的丢弃窗口外,则该报文上传。

3 基于PRP的EPICS CA协议软件构架

EPICS的各个组件间(OPI与IOC,IOC与IOC)的通信,必须通过CA进行。CA协议和PRP应用层协议方案均采用客户端/服务端模式,且都基于TCP/IP,有良好的兼容性。本文将研究CA协议调用PRP Socket API,使CA协议具备并行冗余功能,以提高EPICS通信的可靠性。冗余EPICS系统软件结构如图5所示。

图5 冗余的EPICS系统结构Fig.5 Structure of redundant EPICS.

CA client要实现与CA server的通信,基本上要完成两个步骤:通道的定位和数据的读写。

3.1 通道定位

CA client通过向子网或预先定义的地址列表发送UDP广播包搜索目标机和过程变量PV。网络中的IOC的CA server在收到UDP广播消息后,将在本地运行的数据库中检索。拥有请求的PV的IOC也将通过向CA client发送UDP包给出应答,没有请求的PV的IOC将会忽略这一广播消息。

由于PV在整个EPICS控制系统中必须是唯一标识,这要求EPICS系统中的所有记录必须具有不同的名称。在非冗余情况下,若出现多个IOC对客户端的PV广播搜索给出应答,CA client将只接受第一个到达的UDP消息,后面的应答消息将会被忽略。这说明CA协议在基于UDP/IP协议的通道定位过程中,具备良好的并行冗余数据处理功能。

3.2 数据读写

定位通道以后,CA client将会获得给出应答的IOC的IP地址和通信端口号等信息,然后CA client就会与此IOC的CA server之间建立可靠的、可复用的TCP连接,实现数据的读写。如果在同一IOC上发现多个 PV,将使用同一个TCP连接完成通信。

于是,要使EPICS的实现并行冗余通信,必须解决CA协议基于TCP/IP的并行冗余的问题。即必须使CA协议客户端在获得冗余IOC其中一个的IP地址及通信端口以后,再在推导出另一冗余网络对应的IOC的IP及通信端口,然后通过两个局域网分别建立TCP连接,并让OPI(或IOC)的应用程序调用PRP Socket API,即prp_recv()和prp_send()来完成通信数据的“双发双收”。

原CA协议的CA sever基于TCP的程序模块,主要采用“单客户端单线程、统一accept()的TCP并发服务器模型”[13]。当客户端连接到来后,accept()新生成的socket将会放入client结构体中,程序以后的操作将以client为操作对象。然后使用epicsThreadCreate()函数建立一个线程来进行客户端请求的处理。

为增强PRP Socket API与CA协议的兼容性,本文只在其创建、调用socket函数的时候,同时创建和调用了相同的socket函数,并用prp_recv()和prp_send()替代recv()和send()等IO接口。如此,就在原协议基础上建立了第二条并行的TCP通道。

基于PRP应用层协议方案的EPICS CA协议软件构架如图6和图7。

图6 双网卡CA client的TCP客户端模型Fig.6 TCP client model of CA client with dual network interface cards.

图7 双网卡CA server的TCP并发服务器模型Fig.7 TCP concurrent server model of CA server with dual network interface cards.

4 测试

本文在凌华科技ATCA的两台刀片服务器aTCA-6900上分别安装操作系统Red Hat Enterprise Linux 6和EPICS Base R3.14.12,用实验室局域网搭建了如图5所示的EPICS并行冗余性能平台。其中,节点(a)将作为Soft IOC,节点(b)将在Linux终端通过EPICS命令行工具(caget、caput、camonitor等)调用CA client作为客户端,读取和显示节点(a)中Soft IOC的PV值。IOC数据库中的部分记录如下:

节点(a)上启动IOC后,在节点(b)上通过camonitor监测过程变量shawn:calcExample。其中节点间的通信间隔时间t为扫描时间SCAN。SCAN= 500 ms时camonitor的运行结果见图8。

在运行期间,使网络B(或网络A)发生单点故障。记录在不同SCAN= {1 s, 500 ms, 200 ms, 100ms, 80 ms, 50 ms}下,包括故障点的节点通信间隔时间T(T=切换时间+SCAN)在内的故障发生前后的80个通信间隔时间t。图9为扫描时间(SCAN)=100 ms的三次测试结果散点图。

由图8可知,EPICS的冗余CA协议在“通道定位”过程中,能够从冗余的IOC中选择其中一个作为TCP连接的对象。

由图9可知,“数据读写”过程中出现单点故障(如LAN_B断开)时,故障点的通信间隔时间t(横坐标X=40的点)与正常通信间隔时间t在误差允许的范围内相等,即无明显的切换时间,单点故障并不会影响节点间的通信。基于“并行”模式的冗余方法可以为提高EPICS通信的可靠性提供一种很好的思路和实现方式。

图8 SCAN=500 ms时camonitor运行结果Fig.8 Result of running camonitor by SCAN=500 ms.

图9 SCAN=100 ms时测试结果Fig.9 Result of test by SCAN=100 ms.

5 结语

本文对基于PRP应用层协议方案的EPICS网络冗余技术进行了原理性探究。用EPICS的通道访问协议CA调用PRP Socket API,使CA协议基于TCP/IP的模块具备了并行冗余数据处理功能。测试结果表明,基于PRP的CA协议可以实现网络无缝切换的高可靠性要求。当然,PRP技术还可以用网络驱动或者链路层硬件的形式与EPICS相结合,这可以做进一步的研究。对特别注重可靠性、稳定性的核反应堆工控领域而言,基于PRP技术的EPICS网络冗余方式存在很高的应用价值。

1 EPICS home page[EB/OL]. http://www.aps.anl.gov/epics, 2014-7-9

2 Kraimer M R, Anderson J B, Johnson A N, et al. EPICS application developer's guide[EB/OL]. http://www.Aps. anl.gov/epics/base/R3-14/12.php, 2014-12-5

3 Wallander A, Abadie L, Maio F D, et al. News from ITER controls-a status report[C]. Proceedings of ICALEPCS, 2011: 1−4

4 张宁, 尹聪聪, 韩利峰, 等. 基于EPICS的冗余方法在反应堆控制系统中的应用研究[J]. 核电子学与探测技术, 2013, 33(11): 1350−1353 ZHANG Ning, YIN Congcong, HAN Lifeng, et al. Application study of EPICS-based redundant method for reactor control system[J]. Nuclear Electronics & Detection Technology, 2013, 33(11): 1350−1353

5 尹聪聪, 韩利峰, 李勇平, 等. EPICS IOC冗余技术研究[J]. 自动化仪, 2013, 34(12): 73−75 YIN Congcong, HAN Lifeng, LI Yongping, et al. Research on EPICS IOC redundant technology[J]. Process Automation Instrumentation, 2013, 34(12): 73−75

6 李刚, 赵籍九, 雷革, 等. 基于ATCA平台的EPICS/IOC冗余技术研究[J]. 核电子学与探测技, 2010, 30(7): 879−884 LI Gang, ZHAO Jijiu, LI Ge, et al. Research of redundant EPICS/IOC based on the ATCA platform[J]. Nuclear Electronics & Detection Technology, 2010, 30(7): 879−884

7 International Electrotechnical Commission. IEC 62439 SC 65C high availability automation networks[S]. Geneva, Switzerland: IEC, 2008

8 刘少海, 陈永忠, 韩利锋, 等. PRP协议在反应堆仪控系统控制网络中的初步应用[J]. 核技术, 2014, 37(11): 110603 LIU Shaohai, CHEN Yongzhong, HAN Lifeng, et al. Research on application of PRP to the control network for digital I&C of nuclear reactor[J]. Nuclear Techniques, 2014, 37(11): 110603

9 丁建国, 刘松强. EPICS系统中的网络技术[J]. 核技术, 2006, 29(5): 380−383 DING Jianguo, LIU Songqiang. Network technologies applied in EPICS system[J]. Nuclear Techniques, 2006, 29(5): 380−383

10 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, Hangzhou, CN, 2012

11 谢志迅, 邓素碧, 臧德扬. 数字化变电站通信网络冗余技术[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

12 Jiang X Z. High availability seamless ring protocol implementation in FPGA[D]. Switzerland: ETH Zurich, 2009

13 宋敬彬, 孙海滨. Linux网络编程[M]. 第二版. 北京:清华大学出版社, 2014 SONG Jingbin, SUN Haibin. Linux network programming[M]. 2ndEd. Beijing: Tsinghua University, 2014

CLC TL362+.5

EPICS redundancy technology based on PRP

LIU Shaohai1,2CHEN Yongzhong1,3HAN Lifeng1,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: Redundancy technology can be used as an effective solution to improve the reliability of Experimental Physics and Industrial Control System (EPICS) applied to nuclear reactor, and the most popular redundancy method is a standby mode with the switching time less than 1 s. Meanwhile, the Parallel Redundancy Protocol (PRP) released in standard IEC62439-3 is proposed as a possible solution to provide zero switching time in case of a single-point failure. Purpose: In order to further improve the reliability of EPICS to fulfill the high-reliability requirements of the redundancy control network in nuclear reactor, the "parallel" redundancy mode elaborated in PRP is applied to the nuclear reactor. Methods: The feasibility of EPICS achieving a high reliability based on PRP technology is analyzed, and a software implementation example of Channel Access (CA) protocol of EPICS has been developed over Linux based on PRP which implemented on the application layer. Results: Test results show that the high-reliability requirements of completely seamless switchover can be realized when a single-point failure occurs in the redundant network. Conclusion: With the proposed implementation plan, the redundant EPICS can be employed to achieve a high-reliability network for nuclear reactor.

Parallel Redundancy Protocol (PRP), Nuclear reactor, Experimental Physics and Industrial Control System (EPICS), Network redundancy, Reliability

TL362+.5

10.11889/j.0253-3219.2015.hjs.38.040401

中国科学院战略性先导科技专项(No.XDA02010300)资助

刘少海,男,1988年出生,2012年毕业于三峡大学,现为硕士研究生,核技术及应用专业

陈永忠,E-mail: chenyongzhong@sinap.ac.cn

2015-01-19,

2015-03-02

猜你喜欢

应用层局域网报文
基于J1939 协议多包报文的时序研究及应用
CTCS-2级报文数据管理需求分析和实现
轨道交通车-地通信无线局域网技术应用
基于VPN的机房局域网远程控制系统
浅析反驳类报文要点
基于802.1Q协议的虚拟局域网技术研究与实现
局域网性能的优化
基于分级保护的OA系统应用层访问控制研究
ATS与列车通信报文分析
新一代双向互动电力线通信技术的应用层协议研究