鄭俊朝,劉 松,金成日
(北京廣利核系統工程有限公司,北京 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。