燃氣SCADA系統用于對燃氣管網運行進行實時監控,實現燃氣企業生產過程和調度管理的自動化和現代化,同時為天然氣公司的高層決策系統及管理系統提供數據分析依據,是天然氣公司業務信息系統的重要組成部分,因此保證燃氣SCADA系統的穩定、可靠運行具有非常重要的意義。
燃氣SCADA系統主要由主調度中心、遠程監控站點和通信系統組成。調度中心主要由計算機系統組建,包含SCADA服務器、SCADA工作站和通信處理機等;監控站點設備平臺由RTU/PLC組建,實現對現場儀表參數的實時監控;調度中心與監控站點通過通信系統進行監控參數和指令的信息交換,通信處理機負責監控數據集中和通信管理。
數據采集服務器和數據庫服務器是燃氣SCADA系統中最重要的兩個部分,前者完成整個系統的數據采集、遠程控制等功能,并負責通訊協議的解析、實時數據的顯示、實時數據的入庫等;后者是整個SCADA系統的數據存儲中心,為燃氣SCADA系統的數據分析、報表、數據查詢、數據統計等功能提供數據源。一旦數據采集服務器和數據庫服務器發生故障或應用停機,將導致整個燃氣SCADA系統無法正常運行,給燃氣的安全生產、安全輸送帶來巨大的安全隱患,因此為了保證燃氣SCADA系統穩定、可靠運行,目前國內大型的燃氣SCADA系統在這兩個部分一般都采用雙機熱備設計。
數據庫服務器一般安裝0racle、SQL Server等關系型數據庫,操作系統一般采用微軟的Windows Server,微軟的Windows server一般帶有集群管理軟件,可以完成操作系統的集群管理,而關系型數據庫也都有完善的冗余熱備組件,只要合理配置即可實現數據庫服務器的雙機熱備。數據采集服務器則不同,在數據采集服務器上一般安裝組態軟件服務器版和微軟的Windows Server操作系統,操作系統可以通過集群組件實現雙機熱備,而組態軟件一般沒有專門的熱備組件(如Intouch、WinCC)或者帶有的熱備組件無法與操作系統實現同步熱備(如iFix),因此真正實現數據采集服務器的雙機熱備是當前燃氣SCADA系統設計中的一個技術難點。

1 問題的分析
雙機熱備的數據采集服務器正常情況下由主服務器完成所有的數據采集、數據入庫等工作,備用服務器實時監測主服務器的工作狀態。當主服務器發生故障時,由備服務器接替主服務器完成以上工作,并且所有的切換工作均南系統自動完成。因此數據采集服務器要實現真正的雙機熱備,必須要綜合考慮網絡狀態、磁盤狀態、操作系統運行狀態、組態軟件運行狀態等4方面的要素,因為以上任何一個狀態發生故障,均會導致數據采集服務器無法正常工作。
目前燃氣SCADA系統常見的解決方案是在兩臺熱備的數據采集服務器上建立集群管理,對外虛擬出一個唯一的IP地址,通過集群管理器監測兩臺服務器的網絡狀態、磁盤狀態和操作系統運行狀態,當主服務器的以上3個狀態中任意1個出現故障,備用服務器接管主服務器的工作,而此時的主備服務器切換只完成了對網絡、磁盤和操作系統的切換,無法完成組態軟件(數據采集服務器運行的最關鍵的軟件)的切換,此時大多數的燃氣SCADA系統的應對方案是在主備服務器上分別安裝獨立的組態軟件,并且主備服務器上的組態軟件都處于運行狀態,即同一時刻,不管主備服務器哪一臺處于運行狀態,主備服務器上的組態軟件都在采集實時數據并向數據庫服務器存儲實時數據,這樣做會帶來兩個問題,其一是同一時刻總是有兩臺服務器在采集各個終端站的數據,耗費了寶貴的通訊帶寬,特別是對于GPRS無線通訊鏈路,在40K左右的有效帶寬上,要同時保證主備兩套通訊鏈路的實時數據交換幾乎是不可能的,其通訊的有效性和實時性反倒不如未做雙機熱備情況下單臺的數據采集服務器效率高,這樣的結果顯然違背了我們的設計初衷;其二是兩臺數據采集服務器同時向數據庫服務器存儲數據,由于通訊效率低下,導致兩臺數據采集服務器在同一時刻獲得的現場設備狀態不一致,如主服務器在0點0分0秒監測到現場某個閥門狀態為關閉,而備用服務器由于通訊效率問題,數據顯示延遲,在0點0分0秒讀到的是此閥門在12點59分55秒的數據,而此時閥門還處于開啟狀態,這樣就導致SCADA系統中數據出現二義性,操作員工作站上會因此出現設備狀態的誤報警,由此產生的分析數據和統計數據也會出現重大問題,而最關鍵的是系統本身無法識別這兩個數據哪一個是準確的。由此可見,采用以上解決方案無法實現真正的數據采集服務器雙機熱備,反而使系統的穩定性和數據的有效性降低。
要體現SCADA系統數據采集服務器雙機熱備的真正作用,就必須尋找一條技術路徑,將組態軟件的主備熱切換和集群管理器結合在一起,同時確保同一時刻只有一臺數據采集服務器上的組態軟件在工作。
2 解決方案
針對前面的問題分析,可以看出,問題的關鍵是保證組態軟件的主備切換和集群管理器的主備切換保持一致。仔細研究微軟的集群管理器組件的工作原理,不難發現,集群管理實際上是依托操作系統中的服務來完成管理工作的,而且每個服務之間都存在繼承關系,即優先級。優先級最高的是操作系統軟件(集群管理軟件),優先級次之的是磁盤管理服務,然后是網絡服務,網絡服務下面綁定了數據庫訪問的服務,即數據庫訪問要依存于網絡服務,網絡服務依存于磁盤管理服務,磁盤管理服務依存于操作系統,當任何一個服務發生故障時,都會觸發主備服務器的切換,而且切換時服務的關閉順序是首先關閉數據庫訪問服務,其次是網絡服務,然后是磁盤服務,最后是集群管理軟件。因此,要實現組態軟件的主備切換和集群管理器的主備切換保持一致,最簡單的方法就是在組態軟件與數據庫訪問服務之間建立一個依存關系,即當數據庫訪問服務關閉時,同時關閉組態軟件;當數據庫訪問服務開啟時,同時開啟組態軟件。
解決思路出來后,在具體實施過程中又發現了一個小問題,即目前國內和國外的組態軟件都是多任務的,無法找出一個主服務,通過對它的啟停來控制組態軟件的啟停。若將組態軟件所有的任務進程都與數據庫訪問服務建立依存關系,卻經常會出現某個進程關閉錯誤而導致整個雙機切換出現故障。經過反復試驗,發現關閉組態軟件主窗口可以實現組態軟件的無故障啟停,由于主窗口無法通過服務或進程管理來關閉和啟動,因此需要編程來建立組態軟件主窗口與數據庫訪問接口之間的依存關系。
實現方式是以集群管理組件作為系統的切換平臺,管理雙機熱備系統的集群管理器、網絡、磁盤及Oracle服務的切換,通過自己開發的中間件(以下簡稱HotSwitch)建立iFix軟件與Oracle訪問服務的繼承關系,把iFix軟件作為0racle主服務的一個子服務,當Oracle發生故障時,集群管理組件會自動將服務從當前運行的服務器上切換到備用服務器上,而此時iFix軟件會捕捉到此動作,通過HotSwitch軟件同步完成iFix軟件的切換,iFix軟件的關閉和啟動通過編程操作iFix軟件的主窗口來實現。
整個系統的切換由集群管理軟件和HotSwitch軟件管理,其關系如圖3。
整個系統切換步驟如圖4所示。
3 試驗驗證結果
本雙機熱備解決方案已經在實驗室平臺和多個國內大型燃氣SCADA系統中得到驗證,SCADA系統配置雙機熱備系統后,系統的穩定性和可靠性大幅提高,平均無故障時間由3 000h提高到30000h,系統的可用性和可靠性達到99.9%。系統平均故障切換時間小于30s,這一指標已經達到國內的先進水平,能夠真正實現基于數據庫軟件、操作系統、監控軟件三位一體的雙機熱備。
4 總結
本文主要介紹了SCADA系統中數據采集服務器雙機熱備的必要性,同時給出了完善的解決方案,從分析、解決方案的制定、遇到的問題、程序源方面都做了詳細的描述,此解決方案已經成功北京燃氣、大連煤氣、江蘇省天然氣、西寧燃通過雙機熱備配置,使燃氣SCADA系統的穩可靠性得到了大幅的提升,最大程度地避免了系統的宕機故障和應用停機,保證了系統數據實時性和連續性。同時,本解決方案完全基于Windows平臺,相對于Unix平臺而言具有不可比擬的靈活性和擴展性,系統配置簡單、維護方便,用戶再也不必為傳統意義的小型機熱備系統投入大量設備資金和維護資金。
本方案以天然氣公司的現狀和實際需求為依據,也可將此應用擴展到如水、電、熱力等其他公用行業中。
(本文作者:劉濤1 張國棟1 宋來弟2 1.北京航天拓撲高科技有限責任公司 100176;2.北京市燃氣集團有限責任公司 100035)
贊 賞 分享
您可以選擇一種方式贊助本站
支付寶轉賬贊助
微信轉賬贊助