葉偉,丁桂林,顏毅斌,胡凱凱
(南車株洲電力機車研究所有限公司,湖南 株洲 412001)
風能作為一種清潔的可再生能源,受到了世界各國的重視。中國風能儲量大、分布面廣,僅陸上風能儲量就有約253GW。2012年中國新增風電裝機容量12960MW,累計風電裝機容量為75324.2MW,雙居全球第一位[1]。發展風電,不僅可以節約常規能源,而且有利于改善能源結構,減少環境污染。風電機組的控制系統根據風速、風向對風電機組的各單元加以控制,穩定輸出電壓和頻率,并實現最大風能利用。
近年來,性能優越的以太網應用越來越廣泛。本文基于以太網,提出了一種采用UDP協議的風電機組通信方案。采用ABB公司的可編程邏輯控制器(PLC)作為核心控制器,PLC預留了1400多 Bytes的RAM作為數據發送和接收緩沖區,能夠滿足系統需求。PLC與上位機通過以太網組成分布式計算機網絡通信系統,如圖1所示。
TCP/IP協議是目前網絡協議中的實際工業標準,采用TCP/IP協議會帶來諸多好處,網絡設備可以連接到Internet,實現風電機組真正意義上的遠程監控。TCP/IP是一個4層協議系統,可以分為鏈路層、網絡層、傳輸層和應用層[2]。每一層都呼叫它的下一層所提供的網絡來完成自己的需求。TCP/IP協議族的4個層次如圖2所示。

圖1 風電機組分布式計算機網絡通信系統

圖2 TCP/IP協議族的4個層次

圖3 PLC與上位機通信示意圖

圖4 UDP報文結構
鏈路層完成以太網設備的驅動、物理接口的處理等任務。網絡層由多種協議組成,IP協議是其中最重要的一個,主要完成網絡互連和路由選擇。應用層則負責處理特定的應用服務。TCP/IP傳輸層有兩個并列的協議:TCP(傳輸控制協議)和UDP(用戶數據報協議)。二者的共同點是均提供了進程通信的能力,主要差別在于:TCP面向連接,需要建立“握手信息”,提供可靠通信保證;而UDP是一種無連接的服務。TCP較UDP占用較多系統資源。通信速度上,UDP比TCP快。UDP能夠達到較高的通信速率[3]。
PLC給上位機傳輸的數據主要有:報文信息;總發電量、總耗電量等全局統計量;日發電量等日統計量;機組登錄信息;風機狀態機信息;10分鐘記錄值;功率曲線;故障信息等;風電場的專用以太網帶寬可以保證通信質量,故選用UDP協議,加快通信速度,減輕控制器的負擔。
上位機向PLC發送UDP請求報文,該報文中的數據“告訴”PLC需要什么信息。PLC收到UDP請求報文后,給上位機發送UDP響應報文,該報文中含有對應的信息。其通信結構如圖3。
每一個UDP報文分為UDP首部和UDP數據區兩部分。UDP協議規定UDP首部由4個字段組成,且長度固定為8個字節,每個字段占2個字節。分別為源端口號,目的端口號,UDP長度以及校驗和[4]。UDP數據區由開發人員定義。UDP報文結構如圖4所示。
上位機向PLC發送UDP請求報文,源端口號為1026(該端口號可以根據實際情況確定,通常建議使用較大的端口號,避免與其他應用沖突),目的端口號為32768。PLC給上位機發送UDP響應報文,源端口號與目的端口號都為32768。UDP長度是指每1條UDP報文的長度。UDP校驗和提供差錯檢測。由于PLC需要給上位機發送的數據量較大,我們將數據分為99個UDP響應報文發送;因而上位機也需要給PLC發送99個UDP請求報文,UDP請求報文和UDP響應報文一一對應。UDP請求報文長度統一為37個字節,對應UDP數據區長度為29個字節,UDP響應報文長度(共99個)各不一樣。UDP請求報文數據區格式與值如表1所示(16進制表示,每格代表1個字節)。
表1前7個字節為UDP協議底層自動增加的部分,其余字節預留給上位機做標志位使用。第1個字節為PLC的標識值,值為0x 5A;第6(LL)與第7(HL)字節內的數據為UDP請求報文數據區從第8字節開始到尾部的字節數,第6字節為低位,第7字節為高位,值為0x0016。第8(高8位)和第9字節(低8位),為PLC響應并返回數據的條件(可自由定義,這里定義為0x0008,)。IF1,IF2和IF3(14~16字節)是UDP請求報文的用戶標識符,可自由定義。26、27、28和29這四個字節規定了具體的UDP請求報文類型及索引。其中FCH(高8位)和FCL(低8位)為UDP請求報文類型;CIH(高8位)和CIL(低8位)為UDP請求報文類型對應的索引。一般情況下,FCH和CIH總為0,FCL和CIL的意義如表2所示,由類型值和其對應的索引值,可以得到UDP請求報文為99個,分別是1個報文信息、1個全局統計量報文、20個日統計量報文、2個登錄信息報文、2個風電機組狀態機報文、18個10分鐘記錄值報文、3個功率曲線報文和52個故障信息報文。請求報文中未說明的字節可為任意值,應用中未作處理,直接丟棄。
由表2中FCL和CIL的值,可知UDP響應報文的數量為99個。UDP響應報文數據區長度不一,前25個字節為標識值,第26字節到報文尾部為機組具體數據。UDP響應報文數據區前25個字節格式如表3所示(每格代表一個字節)。
第1~7字節為PLC系統底層自動添加。第一個字節為PLC規定的標識值,與請求報文相對應,值為5A;ID(第2~5字節)為PLC生成的標識值;LL(低8位)和HL(高8位)表明了UDP響應報文數據區從第8字節到尾部的字節數。FCL(低8位)和FCH(高8位)是指UDP報文類型,CIL(低8位)和CIH(高8位)是指UDP報文類型對應的索引,與UDP請求報文相對應。NOH(高8位)和NOL(低8位)表示由FCL所確定的某一類型響應報文的總數量;IF1,IF2和IF3是指UDP請求報文的用戶標識符,PLC不做處理將其返回給上位機。DT4,DT3,DT2,DT1是指PLC系統響應時刻的時間值;AFNH(高8位)和AFNL(低8位)是PLC標識值;FNH(高8位)和FNL(低8位)標識了該UDP響應報文幀數;第25字節的值總是00,預留備用。

表1 UDP請求報文數據區格式與值

表3 UDP響應報文數據區前25個字節格式
PLC和上位機所采用的操作系統都能為以太網提供良好的支持。當上位機啟動應用程序時,調用UDP發送進程,把相關數據封裝成一個UDP報文,并進一步組裝成一個IP報文。當PLC接收到上位機發送的IP報文,它會將報文中的IP首部取出,判斷IP地址是否正確,若正確則判斷端口號以及UDP首部的校驗和。如果上述條件都滿足,說明此報文是有效的,接下來的工作就是將有效信息從報文中提取出來,按照規約進行解析即可。然后PLC會給上位機發送UDP響應報文,上位機接收后,對報文進行判斷和解析[5]。圖5為UDP發送-接收流程圖。

圖5 UDP發送-接收流程圖
UDP的配置主要包括硬件組態和端口設置,如圖6和圖7。圖6是在以太網接口上添加UDP協議。圖7是UDP參數設置以及端口的設置,除了端口設置之外,其他參數可以使用缺省參數。
核心代碼段包括UDP接收指令和發送指令、以及UDP請求報文解析語句。




圖6 UDP硬件組態一

圖7 UDP硬件組態二

圖8 UDP報文截圖

圖9 UDP請求報文

在風電機組分布式計算機網絡通信系統中,上位機通過UDP協議從機組得到相關數據。圖8是上位機與風電場某一臺機組之間的UDP報文截圖。PLC的IP是192.168.1.130,上位機的IP是192.168.1.138。
從圖8中提取一個UDP請求報文,如圖9所示。其源端口號為1026,目的端口號為32768,UDP報文長度為37個字節,其中UDP數據區為29個字節(圖9灰色部分)。FCH和FCL的值分別為0x00和0x02,即請求報文的類型為0x0002;CIH和CIL的值分別是0x00和0x01,即請求報文類型的索引為0x0001。表明上位機向PLC請求全局統計量的數據。
圖9對應的UDP響應報文如圖10所示,其源端口號為32768,目的端口號為32768,UDP報文長度為257個字節,其中UDP數據區為249個字節(圖10灰色部分)。上位機根據規約解析數據,便可得到全局統計量,包括總發電量、總耗電量、并網次數、變漿次數、偏航次數、故障次數、制動次數等。

圖10 UDP響應報文

UDP協議由于其簡潔、高效性而被廣泛應用。本文提出了一種基于以太網的風電機組通信系統方案。詳細闡述了UDP協議的實現過程,并分析了截取的實際UDP報文。從風電場實際運行情況看,該方案高效可靠,充分發揮了以太網的優點,能夠滿足要求。
[1] 中國可再生能源學會風能專業委員會.2012年中國風電裝機容量統計[R].2013(3):44-55.
[2] W.Richard Stevens.TCP/IP Illustrated Volume 1:The Protocol[M].北京:機械工業出版社,2000.
[3]李淑君,陳新,季寶杰.UDP協議在現場實時通信中的應[J].總線與網絡,2002(4):35-38.
[4] 竇曉波,吳在鈞,胡敏強,鄭健勇.UDP協議在變電站自動化通信系統中的實現[J].電力自動化設備,2003(12):39-42.
[5] 王海軍,劉彩霞,程東年.一種基于UDP的可靠傳輸協議分析與研究[J].計算機應用研究, 2005,(11):181-183.