燃?xì)釹CADA系統(tǒng)中數(shù)據(jù)采集服務(wù)器雙機(jī)熱備的實(shí)現(xiàn)

摘 要

燃?xì)釹CADA系統(tǒng)用于對燃?xì)夤芫W(wǎng)運(yùn)行進(jìn)行實(shí)時監(jiān)控,實(shí)現(xiàn)燃?xì)馄髽I(yè)生產(chǎn)過程和調(diào)度管理的自動化和現(xiàn)代化

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

1 問題的分析
雙機(jī)熱備的數(shù)據(jù)采集服務(wù)器正常情況下由主服務(wù)器完成所有的數(shù)據(jù)采集、數(shù)據(jù)入庫等工作,備用服務(wù)器實(shí)時監(jiān)測主服務(wù)器的工作狀態(tài)。當(dāng)主服務(wù)器發(fā)生故障時,由備服務(wù)器接替主服務(wù)器完成以上工作,并且所有的切換工作均南系統(tǒng)自動完成。因此數(shù)據(jù)采集服務(wù)器要實(shí)現(xiàn)真正的雙機(jī)熱備,必須要綜合考慮網(wǎng)絡(luò)狀態(tài)、磁盤狀態(tài)、操作系統(tǒng)運(yùn)行狀態(tài)、組態(tài)軟件運(yùn)行狀態(tài)等4方面的要素,因?yàn)橐陨先魏我粋€狀態(tài)發(fā)生故障,均會導(dǎo)致數(shù)據(jù)采集服務(wù)器無法正常工作。
    目前燃?xì)釹CADA系統(tǒng)常見的解決方案是在兩臺熱備的數(shù)據(jù)采集服務(wù)器上建立集群管理,對外虛擬出一個唯一的IP地址,通過集群管理器監(jiān)測兩臺服務(wù)器的網(wǎng)絡(luò)狀態(tài)、磁盤狀態(tài)和操作系統(tǒng)運(yùn)行狀態(tài),當(dāng)主服務(wù)器的以上3個狀態(tài)中任意1個出現(xiàn)故障,備用服務(wù)器接管主服務(wù)器的工作,而此時的主備服務(wù)器切換只完成了對網(wǎng)絡(luò)、磁盤和操作系統(tǒng)的切換,無法完成組態(tài)軟件(數(shù)據(jù)采集服務(wù)器運(yùn)行的最關(guān)鍵的軟件)的切換,此時大多數(shù)的燃?xì)釹CADA系統(tǒng)的應(yīng)對方案是在主備服務(wù)器上分別安裝獨(dú)立的組態(tài)軟件,并且主備服務(wù)器上的組態(tài)軟件都處于運(yùn)行狀態(tài),即同一時刻,不管主備服務(wù)器哪一臺處于運(yùn)行狀態(tài),主備服務(wù)器上的組態(tài)軟件都在采集實(shí)時數(shù)據(jù)并向數(shù)據(jù)庫服務(wù)器存儲實(shí)時數(shù)據(jù),這樣做會帶來兩個問題,其一是同一時刻總是有兩臺服務(wù)器在采集各個終端站的數(shù)據(jù),耗費(fèi)了寶貴的通訊帶寬,特別是對于GPRS無線通訊鏈路,在40K左右的有效帶寬上,要同時保證主備兩套通訊鏈路的實(shí)時數(shù)據(jù)交換幾乎是不可能的,其通訊的有效性和實(shí)時性反倒不如未做雙機(jī)熱備情況下單臺的數(shù)據(jù)采集服務(wù)器效率高,這樣的結(jié)果顯然違背了我們的設(shè)計(jì)初衷;其二是兩臺數(shù)據(jù)采集服務(wù)器同時向數(shù)據(jù)庫服務(wù)器存儲數(shù)據(jù),由于通訊效率低下,導(dǎo)致兩臺數(shù)據(jù)采集服務(wù)器在同一時刻獲得的現(xiàn)場設(shè)備狀態(tài)不一致,如主服務(wù)器在0點(diǎn)0分0秒監(jiān)測到現(xiàn)場某個閥門狀態(tài)為關(guān)閉,而備用服務(wù)器由于通訊效率問題,數(shù)據(jù)顯示延遲,在0點(diǎn)0分0秒讀到的是此閥門在12點(diǎn)59分55秒的數(shù)據(jù),而此時閥門還處于開啟狀態(tài),這樣就導(dǎo)致SCADA系統(tǒng)中數(shù)據(jù)出現(xiàn)二義性,操作員工作站上會因此出現(xiàn)設(shè)備狀態(tài)的誤報(bào)警,由此產(chǎn)生的分析數(shù)據(jù)和統(tǒng)計(jì)數(shù)據(jù)也會出現(xiàn)重大問題,而最關(guān)鍵的是系統(tǒng)本身無法識別這兩個數(shù)據(jù)哪一個是準(zhǔn)確的。由此可見,采用以上解決方案無法實(shí)現(xiàn)真正的數(shù)據(jù)采集服務(wù)器雙機(jī)熱備,反而使系統(tǒng)的穩(wěn)定性和數(shù)據(jù)的有效性降低。
   要體現(xiàn)SCADA系統(tǒng)數(shù)據(jù)采集服務(wù)器雙機(jī)熱備的真正作用,就必須尋找一條技術(shù)路徑,將組態(tài)軟件的主備熱切換和集群管理器結(jié)合在一起,同時確保同一時刻只有一臺數(shù)據(jù)采集服務(wù)器上的組態(tài)軟件在工作。
2 解決方案
    針對前面的問題分析,可以看出,問題的關(guān)鍵是保證組態(tài)軟件的主備切換和集群管理器的主備切換保持一致。仔細(xì)研究微軟的集群管理器組件的工作原理,不難發(fā)現(xiàn),集群管理實(shí)際上是依托操作系統(tǒng)中的服務(wù)來完成管理工作的,而且每個服務(wù)之間都存在繼承關(guān)系,即優(yōu)先級。優(yōu)先級最高的是操作系統(tǒng)軟件(集群管理軟件),優(yōu)先級次之的是磁盤管理服務(wù),然后是網(wǎng)絡(luò)服務(wù),網(wǎng)絡(luò)服務(wù)下面綁定了數(shù)據(jù)庫訪問的服務(wù),即數(shù)據(jù)庫訪問要依存于網(wǎng)絡(luò)服務(wù),網(wǎng)絡(luò)服務(wù)依存于磁盤管理服務(wù),磁盤管理服務(wù)依存于操作系統(tǒng),當(dāng)任何一個服務(wù)發(fā)生故障時,都會觸發(fā)主備服務(wù)器的切換,而且切換時服務(wù)的關(guān)閉順序是首先關(guān)閉數(shù)據(jù)庫訪問服務(wù),其次是網(wǎng)絡(luò)服務(wù),然后是磁盤服務(wù),最后是集群管理軟件。因此,要實(shí)現(xiàn)組態(tài)軟件的主備切換和集群管理器的主備切換保持一致,最簡單的方法就是在組態(tài)軟件與數(shù)據(jù)庫訪問服務(wù)之間建立一個依存關(guān)系,即當(dāng)數(shù)據(jù)庫訪問服務(wù)關(guān)閉時,同時關(guān)閉組態(tài)軟件;當(dāng)數(shù)據(jù)庫訪問服務(wù)開啟時,同時開啟組態(tài)軟件。
    解決思路出來后,在具體實(shí)施過程中又發(fā)現(xiàn)了一個小問題,即目前國內(nèi)和國外的組態(tài)軟件都是多任務(wù)的,無法找出一個主服務(wù),通過對它的啟停來控制組態(tài)軟件的啟停。若將組態(tài)軟件所有的任務(wù)進(jìn)程都與數(shù)據(jù)庫訪問服務(wù)建立依存關(guān)系,卻經(jīng)常會出現(xiàn)某個進(jìn)程關(guān)閉錯誤而導(dǎo)致整個雙機(jī)切換出現(xiàn)故障。經(jīng)過反復(fù)試驗(yàn),發(fā)現(xiàn)關(guān)閉組態(tài)軟件主窗口可以實(shí)現(xiàn)組態(tài)軟件的無故障啟停,由于主窗口無法通過服務(wù)或進(jìn)程管理來關(guān)閉和啟動,因此需要編程來建立組態(tài)軟件主窗口與數(shù)據(jù)庫訪問接口之間的依存關(guān)系。
    實(shí)現(xiàn)方式是以集群管理組件作為系統(tǒng)的切換平臺,管理雙機(jī)熱備系統(tǒng)的集群管理器、網(wǎng)絡(luò)、磁盤及Oracle服務(wù)的切換,通過自己開發(fā)的中間件(以下簡稱HotSwitch)建立iFix軟件與Oracle訪問服務(wù)的繼承關(guān)系,把iFix軟件作為0racle主服務(wù)的一個子服務(wù),當(dāng)Oracle發(fā)生故障時,集群管理組件會自動將服務(wù)從當(dāng)前運(yùn)行的服務(wù)器上切換到備用服務(wù)器上,而此時iFix軟件會捕捉到此動作,通過HotSwitch軟件同步完成iFix軟件的切換,iFix軟件的關(guān)閉和啟動通過編程操作iFix軟件的主窗口來實(shí)現(xiàn)。
    整個系統(tǒng)的切換由集群管理軟件和HotSwitch軟件管理,其關(guān)系如圖3。
    整個系統(tǒng)切換步驟如圖4所示。

3 試驗(yàn)驗(yàn)證結(jié)果
    本雙機(jī)熱備解決方案已經(jīng)在實(shí)驗(yàn)室平臺和多個國內(nèi)大型燃?xì)釹CADA系統(tǒng)中得到驗(yàn)證,SCADA系統(tǒng)配置雙機(jī)熱備系統(tǒng)后,系統(tǒng)的穩(wěn)定性和可靠性大幅提高,平均無故障時間由3 000h提高到30000h,系統(tǒng)的可用性和可靠性達(dá)到99.9%。系統(tǒng)平均故障切換時間小于30s,這一指標(biāo)已經(jīng)達(dá)到國內(nèi)的先進(jìn)水平,能夠真正實(shí)現(xiàn)基于數(shù)據(jù)庫軟件、操作系統(tǒng)、監(jiān)控軟件三位一體的雙機(jī)熱備。
4 總結(jié)
    本文主要介紹了SCADA系統(tǒng)中數(shù)據(jù)采集服務(wù)器雙機(jī)熱備的必要性,同時給出了完善的解決方案,從分析、解決方案的制定、遇到的問題、程序源方面都做了詳細(xì)的描述,此解決方案已經(jīng)成功北京燃?xì)狻⒋筮B煤氣、江蘇省天然氣、西寧燃通過雙機(jī)熱備配置,使燃?xì)釹CADA系統(tǒng)的穩(wěn)可靠性得到了大幅的提升,最大程度地避免了系統(tǒng)的宕機(jī)故障和應(yīng)用停機(jī),保證了系統(tǒng)數(shù)據(jù)實(shí)時性和連續(xù)性。同時,本解決方案完全基于Windows平臺,相對于Unix平臺而言具有不可比擬的靈活性和擴(kuò)展性,系統(tǒng)配置簡單、維護(hù)方便,用戶再也不必為傳統(tǒng)意義的小型機(jī)熱備系統(tǒng)投入大量設(shè)備資金和維護(hù)資金。
    本方案以天然氣公司的現(xiàn)狀和實(shí)際需求為依據(jù),也可將此應(yīng)用擴(kuò)展到如水、電、熱力等其他公用行業(yè)中。
 
(本文作者:劉濤1 張國棟1 宋來弟2 1.北京航天拓?fù)涓呖萍加邢挢?zé)任公司 100176;2.北京市燃?xì)饧瘓F(tuán)有限責(zé)任公司 100035)