臧 峰, 蔡 丹, 徐衛峰, 吳 波, 牛洪海
(南京南瑞繼保電氣有限公司,江蘇 南京 211102)
控制器間數據共享方案的設計與實現
臧 峰, 蔡 丹, 徐衛峰, 吳 波, 牛洪海
(南京南瑞繼保電氣有限公司,江蘇 南京 211102)
針對當前控制器之間數據共享組態復雜、通信不可靠等問題,設計了一種基于UDP協議的數據共享方案。該方案需要組態工具和控制器固件程序相配合,組態工具負責配置控制器之間數據共享的邏輯,控制器固件程序負責解析組態軟件下發的組態信息,以實現數據共享。源控制器負責采用UDP廣播的方式將共享數據發送到網絡上,接收控制器負責接收、解析數據。該方案具有組態簡單、程序可實時修改的優勢。
控制器; 數據共享; 通信; 可靠性;UDP;OPC;TCP/IP; 組態工具
工業過程控制系統通常由工程師站、操作員站、過程控制器(或PLC)和現場生產設備所組成[1]。隨著工業自動化控制水平的不斷提高,對過程控制器間進行數據交互的需求也越來越大[2]。由于企業擴展生產線或對原有生產線進行升級改造,可能會導致一條生產線上并存西門子、ABB、施耐德和通用等多個廠家的控制系統。這種情況下,通常采用OPC集成技術,實現不同廠家控制器之間的數據共享[3]。一般過程控制器廠家都會提供本品牌控制器間數據共享的解決方案,例如西門子S7-300控制器間采用全局數據包(globaldata,GD)的方式[4]。但是這種方案存在通信速率低、組態繁瑣、限制報文長度、明文傳輸、校驗簡單、不支持冗余傳輸等問題[5]。
源控制器采用“源控制器號+組態頁號+資源號+數據類型+數據品質”的數據格式,使用高效的用戶數據報協議(userdatagramprotocol,UDP)將源數據廣播到網絡上。接收控制器監聽網絡廣播報文,將接收的廣播報文解析,并查看是否有本控制器需要的共享數據。
1.1 總體設計
基于目前控制器之間數據共享存在的問題,本文提出了一種基于UDP協議的數據共享方案,以實現以下目標:①組態簡單,且能實現數據在線解析;②采用較高效率的UDP協議,實現數據的快速傳輸;③保證數據傳輸的可靠性和安全性。為了便于理解,定義源控制器通過UDP廣播發送共享數據為“上網點數據”,定義接收控制器接收網絡廣播報文數據為“下網點數據”。
該方案需要組態工具和固件程序的配合,才能實現數據共享的功能。組態工具在源控制器組態中配置上網點數據,接收控制器配置下網點數據,然后把組態在線下載到控制器中。控制器實時解析配置文本,實現數據共享功能。本設計的方案原理如圖1所示。處理器采用TI公司的C674X系列雙核CPU,ARM運行Linux操作系統,并且提供TCP/IP協議棧,數字信號處理器(digitalsignalprocessor,DSP)負責算法頁面的解析和控制算法的執行。源控制器DSP把上網點數據壓入循環隊列,通過共享內存的方法把數據傳輸到ARM,然后ARM把上網點數據通過UDP廣播到以太網上。接收控制器監聽以太網數據,接收網點數據,并解析是否需要存儲這些數據。如果需要存儲,就把下網點數據壓入ARM數據共享循環隊列,通過共享內存傳輸到DSP。

圖1 方案設計原理圖
1.2 組態軟件設計
組態軟件定義組態規則并生成上網點和下網點的關系。例如:圖1中的源控制器(控制器號=1)設置上網點數據,接收控制器(控制器號=2~n)設置下網點數據。在組態中,控制器既可以作為源控制器為其他控制器提供上網點數據,又可以接收其他控制器廣播的下網點數據。
1.3 固件設計
隨著計算機技術的不斷發展,軟件開發成為一項復雜的系統工程[5]。設計復雜軟件時,使用遞歸分解技術將大業務予以分解,提高了程序可修改性以及可擴展性[6]。本文設計的控制器固件程序是一個包含各個子功能的程序集合。采用模塊化的設計思想對數據共享功能進行模塊化設計與分解,主要包括以下6大模塊。
①接收模塊,負責接收控制器監聽網絡廣播報文,將廣播在以太網上的共享內存數據保存下來,并解析是否為本控制器所需的共享數據。
②發送模塊,負責把上網點數據組包,然后進行網絡廣播。
③冗余模塊,負責把數據通過A/B雙網發送,接收控制器對A/B雙網接收到的冗余數據進行解析,并把重復報文丟棄。
④配置文件解析模塊,負責實時解析組態軟件下發的組態文本。
⑤安全模塊,負責進行數據報文的校驗、加密、糾錯等。
⑥診斷模塊,負責診斷接收到的數據品質,檢測源控制器是否掉線。
固件程序模塊如圖2所示。

圖2 固件程序模塊示意圖
根據共享數據的流向,數據共享功能模塊設計可以分為以下4部分:①源控制器DSP側設計;②源控制器ARM側設計;③接收控制器ARM側設計;④接收控制器DSP側設計。以下對這4部分設計進行介紹。
1.3.1 源控制器DSP側設計
源控制器DSP側周期性地執行算法頁面,在算法頁面開始執行時,設置一個全局變量g_AlgorithmTaskRunFlag為“1”,通知源控制器算法頁面正在執行。當算法頁面執行時,如果有上網點數據配置,就把數據壓入上網點循環隊列;當算法頁面執行完畢后,設置全局變量為“0”。源控制器DSP側上網點算法周期性檢查全局變量是否為“0”,為“0”就把上網點循環隊列中的數據取出,并通過共享內存傳輸給ARM。由于是使用循環隊列的數據結構作為上網點數據的基本結構,因此如算法頁在下一個執行周期增加或刪除了上網點數據,可以立刻通知ARM側上網點數據發生了改變。
1.3.2 源控制器ARM側設計
源控制器ARM側也使用循環隊列作為基本數據結構存儲上網點數據。當DSP側通過共享內存發送上網點數據時,需要把數據壓入循環隊列;而通過UDP廣播上網點時,需要把數據從循環隊列中取出。為了避免數據發送不完整,當通過共享內存接收從DSP側發送的上網點數據時,設置全局變量g_CpuTransOutDataProcessing為“1”,處理完成后設置為“0”。通過UDP廣播線程周期性檢查變量標志,為“0”時檢查上網點循環隊列是否有數據需要發送。如果有,則組包通過A/B網廣播發送。
1.3.3 接收控制器ARM側設計
接收控制器ARM側由于在起始時刻不知道本控制器DSP需要哪些下網點數據,所以考慮通過DSP把本控制器需要的下網點信息在算法頁面執行完畢后,形成一份鏡像數據,通過共享內存傳輸到ARM。ARM監聽到網絡廣播報文后,將網絡廣播數據與DSP傳輸的鏡像數據進行逐個比較判斷。如果是本控制器需要的數據,就保存下來,通過共享內存傳輸到DSP;如果不是,就丟棄。
1.3.4 接收控制器DSP側設計
接收控制器DSP側接收ARM通過共享內存傳輸的下網點數據。如果有接收到數據,就解析這些數據,并把輸出存儲到相應的內存地址。
UDP協議是ISO參考模型中一種無連接的傳輸層協議,提供面向操作的簡單非可靠信息傳輸服務[5]。UDP協議不存在數據分包和組包的管理開銷,能夠實現數據的高效傳輸,而且通信帶寬利用率比TCP協議高[7]。考慮到控制器使用嵌入式操作系統、系統資源有限等限制,所以使用UDP協議進行數據傳輸。但是UDP協議沒有連接過程,傳輸過程不可靠,需要增加額外手段來保證數據傳輸的可靠性和安全性。本文設計的數據共享方案采用了A/B雙網冗余方案,可以大大降低丟包概率;使用CRC32算法進行發送數據校驗,保證數據的完整性和可靠性。通信可靠性方法如表1所示。

表1 通信可靠性方法
表1中,“√”代表具有此功能。
3.1 試驗環境搭建
試驗環境如圖3所示。

圖3 試驗環境示意圖
具體配置由以下5個部分組成。
①真實控制器采用由南京南瑞繼保電氣有限公司研制的PCS-9150過程控制器,此控制器具備上述的數據共享功能。
②采用匹配的虛擬控制器軟件,此軟件運行在PC機上,具有和真實控制器相同的功能。
③組態軟件和HMI站位于同一臺PC機上,組態軟件能夠實時更新控制器中運行的算法頁,HMI站可以監視數據變化。
④所有設備都通過A/B雙網連接到2臺交換機上,實現數據的交互。
⑤組態中上網點和下網點配置如表2所示。

表2 網點配置表
3.2 測試結果分析
通過采用網絡抓包工具MMS發現,無論配置多少個上網點,控制器在廣播上網點時都是通過一幀報文上送,所以控制器配置的上網點數量不會對網絡負荷有太多影響。沒有配置上網點的控制器不會發送網絡廣播報文。主要測試結果如表3所示。

表3 主要測試結果
本文在分析現有控制器數據共享方案優缺點的基礎上,提出了基于UDP網絡廣播報文形式的數據共享方案。利用自主研發的組態工具和控制器固件程序的優勢,解決了目前其他品牌控制器組態復雜、可靠性低的缺點。
本文提出的控制器間共享方案中,控制器下網點數據沒有保存到存儲器中,控制器重啟會導致數據清零。如果組態邏輯中根據下網點開關量的狀態進行邏輯運算,可能會有跳變現象發生。控制器之間數據傳輸沒有加密功能,容易被非法用戶竊取。以上不足可以在后續研發中加以完善。
[1] 郝久清,肖立.PLC控制系統的可靠性設計[J].自動化儀表,2005,26(11):21-24.
[2] 程金良.不同PLC之間的通信技術實例[J].寶鋼技術,2005(S1):40-42.
[3] 曾蓉,馮繼勇,丁亮,等.國產DCS與PLC集成方案的比較及其在電廠的應用[J].自動化儀表,2009,30(12):46-48.
[4] 王長棟,左先波,胥小萍.西門子S7系列PLC的MPI網絡與全局數據通信[J].機械工人(冷加工),2000(11):29-30.
[5] 趙艷領.PLC之間非實時數據共享設計與實現[J].自動化儀表,2016,37(3):9-12.
[6] 王小峰.試論基于架構的軟件設計[J].信息系統工程,2015(3):36.
[7] 趙飛,葉震.UDP協議與TCP協議的對比分析與可靠性改進[J].計算機技術與發展,2006,16(9):219-221.
DesignandImplementationaboutDataSharingamongControllers
ZANGFeng,CAIDan,XUWeifeng,WUBo,NIUHonghai
(Nari-RelaysElectricCo.,Ltd.,Nanjing211102,China)
AdatasharingschemeusingUDPprotocolisdesigned,whichisbasedontheproblemthatthedatasharingconfigurationiscomplexandthecommunicationisnotreliable.Thisschemerequiresthecooperationofconfigurationtoolandcontrollerfirmware.Theconfigurationtoolisresponsiblefordeployingtherelationaboutdatasharinglogic,andthefirmwareprogramisresponsibleforparsingconfigurationsoftwareconfigurationinformationtorealizedatasharing.ThesourcecontrollerisresponsiblefortransmittingtheshareddatatothenetworkbyUDPusingbroadcastmode,andthereceivingcontrollerisresponsibleforreceivingandanalyzingthedata.Theschemehastheadvantagesofsimpleconfiguration,andcanbemodifiedinrealtime.
Controller;Datasharing;Communication;Reliability;UDP;OPC;TCP/IP;Configurationtool
臧峰(1983—),男,碩士,工程師,主要從事電力系統自動化產品的研發工作。E-mail:zangf@nrec.com。
TH7;TP
ADOI: 10686/j.cnki.issn1000-0380.201701012
修改稿收到日期:2016-08-10