郑俊朝,刘 松,金成日
(北京广利核系统工程有限公司,北京 100094)
核电仪控系统内数据下装与校验方法的研究
郑俊朝,刘 松,金成日
(北京广利核系统工程有限公司,北京100094)
在核电仪控系统的维护过程中,需要对控制器进行数据下装来完成工程组态的校验与升级。为了保证数据下装的准确性与完整性,对核电仪控系统内局域网(LAN)通信节点的组成特征进行了研究。对现有的局域网通信方法进行了分析,提出了一种基于IEEE802.3协议的数据下装与校验方法。首先,通过设计功能指令以及预设错误通知,保证系统能够及时获取局域网通信过程中出现的错误;然后,基于MAC帧格式,设计了一种新的数据桢格式,通过封装功能码以及错误通知指令来保证通信节点之间的交互性;最后,采用数据包CRC校验、文件CRC校验以及文件回读比较等一系列方法,保证文件在局域网内传输的正确性。经过测试,该方法具有可靠性高、传输速度快以及配置要求低等优点,可以广泛应用于船舶、火电等嵌入式模块较多的局域网系统。
核电仪控系统; 局域网通信; 数据帧; 数据下装; 通信协议; 嵌入式模块
在核电仪控系统的维护过程中,经常需要将核电控制工程组态内的配置文件、算法文件、参数文件以及冗余数据等下装到控制器内,以完成工程组态的校验与升级。在下装的过程中,可能由于网络的不确定性以及其他原因导致数据传输不完整。因此,需要一种高可靠性的局域网数据传输方法。
基于目前局域网通信方法的研究成果,以及核电仪控系统局域网节点主要由部分主机以及大量嵌入式板卡模块组成的特征,本文采用IEEE802.3协议作为局域网通信的基础,提出了一种基于IEEE802.3协议的局域网通信方法。该方法既充分利用了IEEE802.3协议的优势,又在一定程度上避免了其本身带来的缺陷,可以满足核电仪控通信系统对高可靠性的要求[1-2]。
和睦系统(FirmSys)是我国首个数字化核安全级仪控系统平台,其通信系统基于千兆工业以太网设计研发,网络节点主要由大量嵌入式板卡模块与计算机主机构成。
为了保证主机与板卡模块之间文件数据传输的完整性以及准确性,数据传输系统要求具有通信状态确定、可靠性高、易用性强以及通信速率快等特点。
IEEE802.3是一种以太网协议,主要用来描述物理层和数据链路层的MAC子层的实现方法[3-4]。其中,以太网系统由3个基本单元组成:物理介质,用于传输计算机之间的以太网信号[5];媒体访问控制规则,嵌入在每个以太网接口处,使得计算机可以共享以太网信道;以太帧,由一组标准比特位构成,用于传输数据[6-7]。
以太网没有中心控制器,每个节点都是独立运行的,所有连接到以太网的工作站都接入共享信令系统,即前文提到的物理介质。当需要发送数据时,工作站首先监听信道,如果信道空闲,则能够以以太帧或数据帧格式传输数据。每帧传输完毕之后,各工作站必须公平争取下一帧的传输机会。共享信道的访问,取决于嵌入到每个工作站的以太网接口的媒体访问控制机制。该机制建立在载波监听多路访问/冲突检测(CSMA/CD)的基础上[8-10]。
2.1功能指令设计
首先,将需要发送数据的节点定义为上位机,接收数据的节点定义为下位机。在此,共设计了15个功能指令,用于上、下位机之间的指令交互。其中,上位机负责发送6个指令,下位机负责发送9个指令。功能指令集如表1所示。
表1 功能指令集
2.2异常通知设计
在通信过程中,如果期间出现通信异常而系统没有具体指出,则会影响系统测试与排查。因此,需要提前预估所有可能出现的通信异常。本文共设计了6个异常通知。异常通知设计如表2所示。
表2 异常通知设计
连接失败可能包括的情况有:上、下位机无物理连接,超过规定时间(3s)未收到连接回复指令等。数据帧CRC校验失败是指接收端获取的数据桢内的CRC值与重新计算得到的CRC值不一致。文件CRC校验失败是指上、下位机对整个下装文件计算得到的CRC值不一致。通信超时是指在正常通信过程中,接收端接收到数据帧的时间间隔超过规定时间(3s)。回读文件与下装文件不一致是指回读完成后将上位机内的下装文件与下位机回读上来的下装文件进行字节比对(此处比对作为CRC校验的一个补充验证),若存在不一致即视为文件不一致。错误指令是指接收端收到了和发出指令不匹配的指令。
2.3数据帧格式设计
本文以IEEE802.3协议为基础,结合MAC帧,设计了一种数据帧格式,主要包括源MAC地址、目标MAC地址、开始标志、填充区、数据帧序列号、指令编码、数据长度、数据段、CRC校验码以及结束标志数据段。
本文设计的数据帧格式在MAC帧的基础上增加了数据帧序列号、指令编码和结束标志等字段。增加数据帧序列号主要是因为有时下装文件过大而无法一次下装,此时需要将其分为若干包进行分批下装。数据帧序列号区段则用来保存当前数据帧的序列号,方便检查文件数据帧是否全部传输完成。指令编码区段则是通知接收端当前数据帧的功能。CRC校验码是指使用CRC32查表法,对当前数据帧内从开始标志到结束标志之间的字段区域进行计算后,所得到的数据帧CRC值。
数据帧格式如图1所示。
图1 数据帧格式
2.4通信流程
在进行通信指令集、错误集以及数据帧格式的设计之后,数据下装与校验方法总流程为:首先在设备之间建立网络连接;接着,上位机开始下装文件数据[11-12];在下装完成后,再将下装到下位机的文件回读到上位机,并与之前的下装文件进行文件字节比对,若比对结果为完全一致,则标志文件传输正确[13-14]。
数据下装与校验流程如图2所示。
图2 数据下装与检验流程图
3.1文件下装
上、下位机通过功能指令进行交互,将文件数据传输给下位机。首先,获取上位机网卡的MAC地址,而下位机的MAC地址则在生成下装文件时已经由工程组态确定。只需将要下装的板卡进行拨号即设置MAC地址。接着,由上位机向指定下位机发送连接指令。下位机接收到指令后,对指令进行解析,获取功能指令编码并进行CRC校验[15]。CRC采用的类型为CRC32,使用查表法计算。CRC32的生成多样式如式(1)所示:
CRC32=x32+x26+x23+x22+x16+x12+x11+
x10+x8+x7+x5+x4+x2+x+1
(1)
若CRC校验正确,即返回下装回复指令,否则提示数据帧CRC校验错误。上位机收到下装回复指令后,解析指令是否与发出的指令相匹配,并验证该指令的CRC值是否正确。若指令不匹配或者CRC值不正确,则分别提示错误指令和数据帧CRC校验错误。
上位机下装前需先获取待下装文件的文件类型、文件大小、需要发送的数据帧总数以及文件CRC值,然后将这些信息封装到下装文件信息指令数据帧的数据段内。下位机收到下装文件信息指令后,需要对其进行解析以及CRC校验,验证通过则给上位机发送下装文件信息回复指令。上位机接到回复指令后,需进行指令匹配和CRC验证,然后开始发送下装文件数据帧,其中还包括当前数据帧的序号。当下位机收到文件数据帧后,不但要进行CRC校验,而且还要解析当前数据帧的序列号是否为上一帧的序列号加1,否则视为指令不匹配。如果当前帧序列号等于之前下装文件信息指令内的数据帧总个数,则视为下装完成,下位机发送下装完成指令。
上位机发送完所有数据帧后,会在规定时间内等待下位机的下装完成指令。如果在规定时间内上位机未收到下装完成指令,则会提示通信超时同时向下位机发送断开连接指令;若上位机在规定时间内收到下装完成指令,则会提示下装完成并向下位机发送断开连接指令。
下装流程如图3所示。
图3 下装流程图
在下装过程的指令交互过程中,上位机在发送连接指令后,如果在规定时间内未收到连接回复指令,会提示连接失败并断开连接,本文将此时间设定为3s。若下位机已经收到连接指令,只是因为网络等原因导致上位机未收到连接回复指令,此时上位机也认为连接失败并断开连接。若下位机在规定时间内未收到下一步指令,也会自动断开连接。
在成功建立连接后的通信过程中,不管是上位机还是下位机,在3s内必须发送或者接收一个指令,否则视为通信连接超时。由于发送指令是上、下位机自行决定的,一般不会出现收到指令后超时还未发送指令的情况存在,但不排除此种可能,只是一般认为通信连接超时都是由于未收到指令而导致的。
上、下位机未收到匹配指令是指当前接收的数据帧不符合通信流程设计,例如下位机发送连接回复指令后,下一帧应收到下装指令,但实际收到了一个文件数据帧指令,则下位机会发送错误指令并断开连接。在下装过程中,下位机会将收到的数据帧依次写入一个新的文件内。此文件存储于下位机内。
3.2文件回读
回读的主要功能是将下装到下位机的下装文件回读到上位机内,并与之前的下装文件进行比对,保证下装到下位机内文件的完整性和准确性。
回读流程如图4所示。
图4 回读流程图
下装完成时,上位机收到下装完成指令后就会发送回读指令;而下位机收到回读指令后,则会将刚刚收到的下装文件进行解析,并将该文件长度、需要发送的总包数和经过计算得到的整个文件的CRC值封装到回读回复指令数据段内;上位机收到回读回复指令后,先进行指令本身的CRC校验,然后进行文件CRC比对,若不一致则提示文件CRC校验错误。
下位机在发送回读回复指令之后,会持续发送回读数据帧,而上位机会将收到的回读数据帧写入一个回读文件内。如果当前数据帧的序列号为总包数,下位机会主动发送一个回读完成指令,上位机收到回读完成指令后,会继续进行下一步操作。
3.3文件比对
回读过程完成后,在下装文件目录下会生成一个下装回读文件。根据实际情况,下装文件大小一般都在几KB到几百KB之间。因此,本文选用的是较简单的内存区域比较,按字节进行逐一比对。若文件比对不一致,说明下装到下位机的文件有错误,需要重新下装。该方法有效地保证了下装文件的准确性。
本方法在VisualStudio2012环境下采用C++语言实现。上位机为Intel®CoreTMi7CPU、内存8GB、操作系统Windows7的主机;下位机为本公司相关板卡,连接线使用标准网线,转换接口使用MOXAEDS-205A-M-ST-T以太网交换机。
本文准备了4个下装文件进行下装试验,具体参数如表3所示。
表3 下装文件参数
将4个下装文件分别下装50次,以测试本文方法的有效性。其下装过程中出现的错误次数统计如表4所示。
表4 错误统计
由表4可知,通信超时是唯一出现的错误,且其出现频率并不高。如果出现此错误,表明数据传输失败,可以通过重新下装来保证数据传输的完整性和准确性。其他错误虽然未在试验中出现,表明其出现频率较低,但是仍然有可能出现,因此只有建立完善的通信异常捕捉机制,才能满足数据传输的可靠性要求。
本文基于核电仪控系统的局域网组成特征以及对于局域网数据传输系统的高可靠性要求,研究了目前的局域网通信方法,提出了一种基于IEEE802.3协议的数据下装与校验方法。首先,设计了一组通信指令集用于交互;然后,通过分析可能出现的异常设计了一组错误集合,用来及时反馈问题以及定位问题;最后,通过指令数据帧的对应匹配、数据帧本身的CRC校验、整个文件的CRC校验和下装完成后的回读文件比较,保证了文件传输的准确性和完整性。试验结果表明,本文方法能够有效保证文件在局域网内传输的准确性与完整性,达到核电仪控系统对于数据传输的可靠性要求。目前,该方法已试用于和睦系统。
[1] 韩云禄,束军.基于TCP/IP的局域网通信工具的设计与实现[J].科技信息,2009(21):13.
[2] 高书亮,马玉发,杨东凯.基于多线程和消息的局域网通信程序实现[J].计算机工程与设计,2008,29(2):323-325.
[3] 肖行诠,苟骁毅,肖岚,等.基于UDP协议的局域网WAMS数据低延迟可靠传输方法[J].电力自动化设备,2011,31(10):148-151.
[4] 林正浩.基于802.3以太网MAC协议的研究与实现[D].上海:同济大学,2007:1-7.
[5]GACANINH,ADACHIF.Broadbandanalognetworkcoding[J].IEEETransactionsonWirelessCommunications,2010,9(5):1577-1583.
[6] 张佳薇,陈岩,李明宝.用于无线传感器网络的高能效分帧MAC协议[J].信息与控制,2013,42(1):95-99.
[7] 刘佳.矿井下无线传感器网络路由协议的研究[J].自动化仪表,2016,37(2):65-68.
[8]DAMT,LANGENDOENK.Anadaptiveenergy-efficientMACprotocolforwirelesssensornetworks[C]//Proceedingsof1thInternationalConferenceonEmbeddedNetworkedSensorSystems(SenSys),2003.
[9] 任晓明,付子义,刘芳芳.具有时延的网络控制系统[J].自动化仪表,2015,36(4):6-9.
[10]李清霞.局域网通信安全的评估与技术依托[J].制造业自动化,2010,32(9):199-204.
[11]臧峰,蔡丹,徐卫峰,等.控制器间数据共享方案的设计与实现[J].自动化仪表,2017,38(1):50-52.
[12]赵明峰,周亚建,原泉,等.物理层网络编码研究进展[J].计算机应用,2011,31(8):2015-2020.
[13]张树刚,张遂南,黄士坦.CRC校验码并行计算的FPGA实现[J].计算机技术与发展,2007,17(2):56-62.
[14]CAMPOBELLOG,PATANEG,RUSSOM.ParallelCRCrealization[J].IEEETransactionsonComputers,2003,52(10):1312-1319.
[15]YEW,HEIDEMANNJ,ESTRIND.Mediumaccesscontrolwithcoordinatedadaptivesleepingforwirelesssensornetworks[J].IEEEACMTransactionsonNetworking,2004,12(3):493-506.
ResearchontheDataDownloadingandCheckingMethod
forControlSystemofNuclearPower
ZHENG Junchao,LIU Song,JIN Chengri
(China Techenergy Co.,Ltd.,Beijing100094,China)
In the process of the maintenance of nuclear power control system,it is necessary to download data in controllers to complete the calibration and upgrade of the engineering configuration.In order to guarantee the completeness and accuracy of the data downloaded,the composition characteristics of the local area network (LAN) communication node in nuclear power control system are studied.The existing LAN communication methods are investigated,and the data downloading and checking method based on IEEE802.3protocol is put forward.Firstly,through designing functional instructions and presetting error notification to ensure the errors in communication process can be obtained by the system promptly.Then,a new data frame format based on MAC frame format is designed,through encapsulating the functional codes and error notification instructions to ensure interactivity among communication nodes.Finally,a series of measures are adopted,such as data packet CRC check,file CRC check and file read back comparison,to ensure the correctness of the file transmission in the LAN.After testing,the advantages of this method are revealed,e.g.,higher reliability,fast transmission speed and lower configuration requirement,etc.The method can be widely used in LAN systems consisting more embedded modules,such as ship and thermal power.
Nuclear power control system; Local area network communication; Data frame; Data downloading; Commumication protocol; Embedded module
TH-39;TP273
10.16086/j.cnki.issn1000-0380.201710006
修改稿收到日期:2017-04-10
郑俊朝(1990—),男,硕士,助理工程师,主要从事核安全级软件的验证和确认工作。E-mail784518217@qq.com。