章 奇, 安博文, 陳元林
(上海海事大學 信息工程學院, 上海 201306)
海底電纜綜合在線監測系統主要包括海纜溫度監測系統、海纜應變監測系統、海纜振動(擾動)監測系統、船舶自動識別(AIS)系統以及海纜載流量分析系統等, 遠端數據的獲取和發布是該系統中尤為重要的一環. IEC60870-5-104規約是IEC(國際電工委員會)制定的一套通用的數據傳輸規則, 文獻[1]定義了該規約的數據格式和結構模型. 文獻[2]介紹了基于該規約的基本應用功能和通信過程. 文獻[3,4]介紹了用于文件傳輸的ASDU定義和結構.
基于IEC60870-5-104規約的數據通信因具有開放、安全、實時等諸多良好特性長久以來一直是人們研究的熱點, 廣泛應用于各種電力系統中. 文獻[5]分析了規約在電力系統中的實現方法. 文獻[6]介紹了規約在SCADA(數據采集與監視監控)系統中的應用, 給出了調度自動化軟件的設計思路, 并針對基于TCP/IP的網絡編程作了相應的闡述. 文獻[7]設計了一種基于IEC60870-5-104規約的硬件通信模塊平臺, 實現了規約在工業通信領域的應用. 文獻[8–10]分別介紹了規約在光伏電站、變電站輔助系統以及水電廠中的應用.
目前, 基于IEC60870-5-104規約的通信技術的研究漸漸趨于成熟, 然而隨著工業標準規范的提高, 不同場合中的實際需求給系統軟件的開發和升級不斷地提出了難題. 綜上研究發現, 在系統軟件的設計過程中對于系統動態配置技術和海量數據傳輸技術仍然缺乏深入的探討. 考慮到在實際應用中控制站和被控站會根據不同情況進行擴展和變動, 系統動態配置技術的研究能夠很好地解決這個問題, 增加了系統的兼容性和開放性. 此外, 文件傳輸技術能夠解決大部分遠動系統中存在的海量數據信息的發布問題, 適應了多種場合中數據信息繁雜的情況.
圖1顯示了海底電纜綜合在線監測系統的一般結構, 被控站(服務器端)的監測設備將采集到的數據存儲在數據庫服務器中, 等待控制站(客戶端)的數據召喚.

圖1 海底電纜綜合在線監測系統
應用于該系統的數據按其類型和數量的大小大致可以根據表1所示進行劃分. 其中單一類型、數量小的數據可以通過IEC60870-5-104規約中的類型標識TypeID=9(歸一化遙測值), 11(標度化遙測值), 13(短浮點遙測值)等APDU數據報文進行傳輸. 報警和AIS這類數據類型比較復雜, 包含整型、字符型、浮點型等多種數據類型. 針對這種類型復雜的數據信息,本文考慮將不同類型的數據信息組合成字符串, 再根據配置好的信息對象地址用文件進行傳輸.

表1 需要傳輸的數據類型
對于溫度、應變、擾動這些單一類型但是數量比較大的數據, 利用IEC60870-5-104規約定義的APDU進行數據傳輸有一定的局限性, 據此本文也考慮采用文件形式進行傳輸.
IEC60870-5-104規約采用標準傳輸協議子集的IEC60870-5-101網絡訪問, 用于網絡通信中的數據傳輸. 它規定將IEC60870-5-104的應用層與TCP/IP提供的傳輸功能相結合, 采用平衡方式通信, 即通信雙方都可以發起信息傳輸, 一旦鏈路建立成功, 變化信息除了響應召喚應答還可以主動發送而無需等待查詢. 同時規約詳細定義了應用規約控制信息(APCI)以及三種格式報文(I、S、U)的用途和使用方法, 并且規定了TCP連接的端口號等重要參數.
圖2所示是IEC60870-5-104規約對于APDU的定義, 它包括APCI和ASDU兩個部分, APCI(應用規約控制信息)定義了數據流的起點、APDU的長度和控制域. 控制域定義了保護報文不致丟失和重復傳送的控制信息、報文傳輸的啟動/停止,以及傳輸連接的監視等信息. IEC60870-5-104規約在延續了IEC60870-5-101規約中ASDU(應用服務數據單元)內容的基礎上, 擴展了相應的部分, 定義了數據傳輸過程中信息的類型、傳送原因、公共地址和信息對象地址等信息.
IEC60870-5-104規約定義了兩個方向上用于傳輸不同報文的信息類型標識, 分別是監視方向(被控站到控制站)的過程信息和系統信息, 以及控制方向(控制站到被控站)的過程信息和系統信息. 基于IEC60870-5-104規約的主要通信過程有:TCP的連接建立和站初始化、首次握手啟動連接、總召喚、對時、累計量(電度)總召喚以及遙控/遙調過程.

圖2 遠動配套標準的APDU定義
圖3所示為基于IEC60870-5-104規約的數據發布系統的層次結構, 主要分為伺服應用、協議處理和數據媒介三個層次.

圖3 基于IEC60870-5-104規約的數據發布系統的層次結構
(1) 伺服應用層:作為被控站的最高層, 在啟動連接后伺服應用層一直處于等待監聽的狀態, 當接收到來自控制站數據請求的報文后開始向控制站發送由數據媒介層提取出來的數據.
(2) 協議處理層:系統的中間層, 主要完成基于IEC60870-5-104規約的底層動態配置和數據處理功能,針對伺服應用層發來的數據請求報文進行解析, 同時進行相關的數據庫操作.
(3) 數據媒介層:該層存儲監測設備采集的數據信息. 每個監測平臺都有相應的數據庫, 監測系統將采集到的數據信息不斷地刷新填入到每個數據庫每張表相應的字段中. 當收到召喚開始傳輸數據時, 被控站將數據庫中的數據提取出來填入到APDU中并賦予其相應的地址進行傳輸, 考慮到存儲容量和實時性的問題, 每個數據庫也會作定期地刷新刪除.
啟動連接后系統開始讀取配置, 此時被控站處于監聽并等待召喚狀態, 若在規定的時間范圍內沒有收到控制站發來的召喚報文命令則判定為等待超時, 須重新連接. 當被控站收到了控制站發來的召喚報文命令后便開始對其進行解析并組織數據類型及地址, 從而從數據庫中提取相應的數據并按一定頻率發送至控制站, 待所有數據發送完之后被控站將發送結束召喚的報文命令終止數據傳輸.

圖4 系統運行流程
圖5所示為系統的主要線程設計, 數據庫連接線程主要實現數據庫的連接及相關操作, 數據發送和接收顯示線程主要實現控制站和被控站的數據交互. 通信雙方在啟動連接后開始讀取配置, 隨后進入等待監聽狀態, 當通信一方接收到數據庫中讀取的數據后開始對其進行打包整理, 最后發送至另一方解析并顯示.
控制站和被控站的動態配置是遠端發布系統中非常重要的環節, 它解決了控制站和被控站對于每個物理量、數據類型及其地址分配的約束問題, 使得通信雙方的數據傳輸有章可循.
(1) 單一類型數據的動態配置
類型單一且數量比較小的數據信息對象可以通過IEC60870-5-104規約定義的APDU進行數據傳輸, 為此需要設計信息對象、地址以及在數據庫中的存儲位置之間的映射關系. 設計的映射方案如表2所示, 信息量的個數取決于信息數量的大小, 在數據庫SeaCableMonitor(存儲位置:D:MySQLSeaCableMonitor)中建有三張表Current、ProtectiveLayer和State, 分別用于存儲電能、護層監測和設備狀態三種數據信息, 每張表分別包含若干記錄(行)和字段(列), 記錄顯示每條通道的電纜數據信息, 字段存儲某一時刻下的電纜編號、位置、時間以及信息量等數據信息, 監測設備將某一時刻采集到的數據存于每張表相應的字段下. 當被控站收到數據請求時, 從相應表的字段中取出并賦予信息對象地址, 從而打包發送至控制站.

圖5 系統主要線程設計

表2 信息對象地址分配
(2) 文件傳輸的動態配置
文件傳輸的動態配置需要解決的問題是生成數據文件的存儲位置以及建立文件的節名和信息對象之間的映射關系, 文件存儲在D:SeaCableMonitorFiles目錄下, 表3顯示了文件節名信息對象的映射關系.

表3 文件名與信息對象映射關系
綜合考慮可擴展、互操作、可視化等多種特性,本文選取XML(擴展標記語言)實現以上動態配置.XML是一種簡單的數據存儲語言, 當控制站或者被控站需要擴展或者改變時, 只要修改配置文件而不需要處理繁雜的源代碼. 下面的代碼顯示了信息對象及其地址的配置過程:

IEC60870-5-104規約中定義的信息體地址的范圍是 1~65 534, 即最大能容納 65 534個數據, 而ASDU的最大長度是249(APDU最大值=255減去啟動和長度八位位組), 這樣信息體的字節數就很可能會超過ASDU的最大長度, 顯然無法進行海量數據傳輸.此外, 報警和AIS這類數據信息包含了整型、字符型、浮點型等多種數據類型, 導致了數據傳輸過程中信息體的字節數不固定, 無法進行地址分配. 鑒于以上兩種情況, 本文考慮采用文件傳輸的方案.
文件傳輸用于遠動系統中信息體的字節數超過ASDU規定的最大長度的情況, 以分段的形式將數據信息傳送到目的地. 兩個方向上傳輸的文件結構相同,通常一個文件包含若干個節, 一個節包含若干個段, 兩個方向按照段的順序進行傳輸. 在遠動系統中, 文件可以雙向傳輸, 表4所示為IEC60870-5-104規約定義的用于文件傳輸的類型標識.

表4 文件傳輸的類型標識
監視方向(被控站到控制站)的文件傳輸主要用于通知控制站已發生事件并已登錄大量數據. 在開始進行文件傳輸之前, 被控站須向控制站發送一個文件目錄DIRECTORY PDU F_DR, 將文件數量、登錄時間和事件類型等信息以PDU的形式告知控制站. 收到目錄PDU后, 控制站發送一個SELECT_FILE PDU F_SC通知被控站開始選擇文件. 此時被控站返回FILE_READY PDU F_FR表示文件已準備好, 可以進行文件召喚. 接下來被控站根據文件結構將文件逐節逐段地上傳至控制站. 待所有文件傳輸結束后, 被控站將已成功傳輸文件的數據記錄刪除, 為新文件騰出空間. 控制方向(控制站到被控站)的文件傳輸主要用于下載參數表或程序, 控制站安排傳輸數據文件的類型、數量和規模, 不需要傳輸目錄. 表5和表6所示為IEC60870-5-104規約定義的文件傳輸的目錄ASDU(TypeID=F_DR_TA_1)和段ASDU(TypeID=F_SG_NA_1)的定義.

表5 文件傳輸的目錄ASDU定義(類型標識:F_DR_TA_1)

表6 文件傳輸的段ASDU定義(類型標識:F_SG_NA_1)
本文以某海上風電場在線監測系統工程項目為應用實例, 傳輸海纜某一時刻采集到的電能數據以及溫度數據.
以單個電能數據的傳輸為例, 設置配置參數信息如表7所示.

表7 單個電能數據傳輸配置信息
系統啟動讀取配置完成之后等待數據召喚, 利用Wireshark軟件對通信過程進行網絡抓包分析得到控制站收到的報文如表8所示.
從表8中可以看到傳輸的歸一化遙測值的編碼是10a1(16進制), 如果要得到具體的傳輸值則需要通過給定的參數進行進一步計算, 例如假設滿碼值為5000 A,則傳輸值為:

得到的電能數據為649.6 A.
以系統某一次溫度數據文件的傳輸為例, 表9為其參數配置信息, 從中可以知道, 文件的長度為750 KB,節的長度為7680 B, 段的長度為120 B, 則節和段的數量分別為:


表8 控制站接收類型標識TypeID=9的歸一化遙測報文

表9 溫度數據文件傳輸配置信息
同樣用Wireshark軟件對該溫度數據文件傳輸過程進行網絡抓包分析, 可以得到報文如下(僅顯示傳輸的第一節第一段的報文):
表10顯示了文件傳輸中控制站接收到類型標識TypeID=7 d的段報文, 根據配置信息可以解析出控制站收到了文件名為1, 節名為1(溫度)以及段內容為1的文件數據信息.
本文深入分析了IEC60870-5-104規約的結構模型和通信過程, 設計并實現了基于該規約的海底電纜綜合在線監測系統數據遠端發布系統, 針對其中存在的系統動態配置和海量數據傳輸關鍵技術作了分析與研究, 最后通過實驗用例驗證了該系統的可行性. 本文的研究結果適用于更寬泛的電力系統場合以及更豐富的數據類型傳輸, 具有可觀的應用價值.

表10 文件傳輸中控制站接收類型標識TypeID=7d的段報文