王國兵
(上海華建電力設備股份有限公司 上海市 201314)
通訊服務器在整個變配電自動化系統中起著中間橋梁的作用,不僅需要有規約轉換功能、同時具備接口轉換,以滿足不同后臺監控系統的要求。隨著嵌入式技術的發展,由工業PC 機完成的通訊服務器功能均可以移值到嵌入式系統實現,嵌入式系統的CF 卡及固態電子盤及低功耗、RISC 架構CPU 設計,取消了傳統PC 風扇,其可靠性、穩定性及易維護性特點使嵌入式系統的通訊服務器成為市場的優選產品。
本文以德州儀器ARM 1808E ZWT 為中央處理器,主頻456MHz,m,內嵌Linux-2.6.37 操作系統,并配置2 個10/100Mbps網口及18 個RS485 串口作為硬件平臺,實現通訊服務器協議轉換及接口轉換功能。
根據變電站監控系統分層分布式結構特點,將通訊服務器的接口分為上行及下行兩種接口,其中上行接口與SCADA 及DCS 控制系統中上位機通訊,接口形式有網口和RS485 口,下行接口與變電站高、低壓柜內配置的集保護測控功能于一體的智能裝置及其它如UPS、直流屏、電容器、軟起動器、變頻器、電參數綜合測量表通訊,此類保護測控裝置或其它設備均具有RS485 接口,采用的通訊協議有標準MODBUS RTU,還有設備生產廠家自定義規約。系統網絡結構拓撲如圖1所示。
基于Linux 系統的多任務機制,將整個系統的功能分為上行通訊處理模塊、下行通訊處理模塊、主控管理模塊,每個通訊接口被映射為一個線程,控制該接口的收、發任務,多個接口的多個線程在操作系統的統一調度下并發執行,提高整個系統的響應速度。下行通訊處理模塊針對不同的規約將采集的信息按照SCADA 系統的遙信、遙測、遙脈、遙控信息進行分類解析并按照指定序列存放于內存中;上行接口按照接口規約要求在接收到請求讀取輪詢數據命令或定時上傳數據要求后,從內存中將數據上傳至上位機系統;上行接口接收到上位機要求控制或對智能裝置進行參數設置等遙控、遙調命令后,將命令發送至主控管理模塊的轉發命令隊列中,當下行通訊處理模塊在接口完成接受幀后,在總線空閑時及時下發至智能裝置。
主控管理模塊主要包括系統配置文件的讀取,上行接口點表的讀取,初化化轉發命令隊列,根據配置文件建立接口處理線程,定時檢測各串口所連接設備的通訊狀態。
格式如下:


圖1:網絡結構拓撲圖

表格式如下:

定義如下:



圖2:下行通信程序流程圖
由于設備通訊狀態無法通過硬件方式獲取,只能通過軟件方法進行判定,在主從通訊協議模式下,主站發出請求命令后,從站需在規定時限內作出應答,主站接受到從站應答幀則應當判定從站設備通訊正常,否則則應認為通訊中斷;但變電所電器設備數量較多,品種繁雜,電磁環境較為復雜,通信不可避免地受到電磁環境干擾,導致短時通訊故障,在SCADA 系統中,通訊狀態作為一項重要的監視數據,頻繁發出報警或故障信息對整個系統的穩定性造成較大影響,為提高系統的穩定性,采用連續檢測消除電磁干擾,保證通訊狀態判定的可靠。
下行采用RS485 接口,半雙工通訊方式,同一接口串接多個智能設備,以設備地址區分不同設備,即要求同一接口上設備地址不應重復。下行通信發送命令有兩類,一類是正常召喚實時數據命令(包括遙測、遙信等實時數據),這類命令按設備地址順序發送,接受智能設備的響應幀,按照遙測、遙信、遙脈進行解幀,并將解幀結果保存在內存中,達到輪詢數據的目的;另一類的命令是來自上位機的非召喚實時數據命令(如遙控、遙調、設備參數、對時等),這類命令首先進入主控模塊的轉發命令隊列中,等待接口空閑時發出,在收到智能設備應答后反饋給上位機,同時從隊列中刪除;非召喚實時數據命令執行后的輪詢位置從該命令的設備地址開始,有效提高系統的反饋速度,如遙控起動命令執行后,上位機能即時獲取遙控的結果。具體流程如圖2所示。
上行接口采用以太網和RS485 兩種接口,其中以太網采用IEC-60870-5-104 遠動規約,RS485 采用MODBUS RTU 規約。
IEC-60870-5-104 遠動規約使用的參考模型源于開放式系統互聯的ISO-OSI 參考模型,在參考模型中實際處于應用層的位置,其傳輸層使用的是TCP 協議,對應的端口號為2404;IEC-60870-5-104 規定控制站作為客戶端,被控站作為服務端,本文中通訊服務器在SCADA 系統中處于被控站位置,因此主要論述TCP 服務端的實現。
IEC-60870-5-104 通信工作機制:
5.1.1 連接機制
被控站作為從站(Socket 通信服務器端),在建立TCP 連接過程中,應提供指定的端口2404 供控制站主站連接,當TCP 連接建立后,則應持續地監測TCP 的連接狀態,以便TCP 連接被關閉后能重新進入偵聽狀態并初始化一些與TCP 連接狀態有關的程序變量。
5.1.2 數據上傳過程
(1)總召喚,主站向從站定時發送總召喚命令幀,從站向主站發送總召喚命令確認幀,然后從站向主站發送遙信幀和遙測幀,最后向主站發送總召喚命令結束幀。
(2)總召喚電度量,主站發送電度量凍結命令,從站接受后返回電度量凍結確認,然后從站發送電度量數據,最后從站發送電度量召喚結束命令。
(3)從站事件主動上傳,根據IEC60870-5-104 規約定義,當從站發生突發事件,從站根據具體情況主動向主站發送下述報文:遙信變位幀、遙測變化幀、SOE 事情。
在嵌入式Linux 系統提供了Socket 設計及編程接口,Socket的廣泛應用,己成為網絡編程的事實上的標準,發送方將每一個APDU 都作為一個TCP 包發送出去,接收方的Socket 套接字接收一個完整的TCP 包,將其中的APDU 包解析成一個個遙信、遙測量或其它條目量,上位機就可以引用這些量并通過界面系統呈現出來。作為IEC-60870-5-104 從站其通信過程主要包括以下方面:
5.2.1 定義Socket 并初始化

5.2.2 建立Socket 連接
當服務端接收到客戶端connect 命令請求后,加入至listen 的等待隊列中,服務端通過accept 命令接受連接請求并生成一新的套接字,此后用戶即通過此套接字進行收發通信,

5.2.3 IEC-60870-5-104 通信
主站通過connect 命令實現與從站的網絡連接后,通過發送“68 04 07 00 00 00”報文,從站接收到此報文后,應答”68 04 0b 00 00 00”完成主從站鏈路的連接,主從雙方即可通過連接套接字connectsd 實現召喚遙信、遙測、遙脈、遙控功能。
上行MODBUS RTU 規約中,通訊服務器RS485 接口作為MODBUS 從站,采用打包方式將內存中數據按請求應答給主站。本文將需上傳的開關量定義為離散量輸入信號,上位機通過02 功能碼讀取;模擬量定義為輸入寄存器數據,上位機通過04 功能碼讀取。遙控定義為寫線圈數據,上位機通過05 功能碼寫入。
通訊服務器作為SCADA 系統中核心關鍵設備,必須有很高的實時性和可靠性。本設計經過多年的完善,已成功運行于石化企業和地鐵的眾多變電所的監控系統中,取得良好的社會效益和經濟效益。