朱敬華
(國華徐州發(fā)電有限公司,江蘇徐州221166)
隨著我國環(huán)保形勢日趨嚴峻,環(huán)境保護要求也日益提高,作為主要環(huán)境污染因子的SO2、NOx、煙塵等指標成為重點關(guān)注對象,而火力發(fā)電企業(yè)作為這幾項指標的排放大戶,也面臨著污染物排放考核的各方壓力。伴隨著2011版《大氣污染物排放標準》的頒布和實施,江蘇省迎來了一輪又一輪的環(huán)保設(shè)施改造高峰期,相關(guān)考核政策和措施也相繼出臺,對于發(fā)電企業(yè)來說,壓力和動力并存。因此,如何保障環(huán)保數(shù)據(jù)傳輸系統(tǒng)的穩(wěn)定可靠運行成為當前實踐研究的熱點。鑒于此,本文提出了一種基于滑動窗口控制數(shù)據(jù)處理的雙機冗余機制,其能為數(shù)據(jù)傳輸提供保障,并在生產(chǎn)系統(tǒng)中實現(xiàn)了部署應(yīng)用。
現(xiàn)有的環(huán)保數(shù)據(jù)傳輸系統(tǒng)采用的是單通道傳輸機制,這種機制在系統(tǒng)發(fā)生故障時,只有通過人工干預(yù),才能對系統(tǒng)進行修復(fù),這既影響了環(huán)保數(shù)據(jù)的正常傳輸,又對系統(tǒng)的運維人員造成很大的壓力。雙機冗余機制可以很好地解決系統(tǒng)運行時的單點故障問題,但是如何實現(xiàn)故障的實時感知,如何進行故障的無感切換,在故障恢復(fù)時如何進行傳輸通道的還原,都是在實現(xiàn)雙機冗余機制時面臨的挑戰(zhàn)難點。本文對上述幾個問題進行了深入的分析研究,提出了一種有效的解決方案,并在生產(chǎn)系統(tǒng)中進行了應(yīng)用。
雙機冗余機制的硬件架構(gòu)如圖1所示,主數(shù)據(jù)采集單元與冗余數(shù)據(jù)采集單元同時從SIS服務(wù)器中采集環(huán)保數(shù)據(jù),并且兩個采集單元之間形成采集通道的冗余,把采集到的數(shù)據(jù)經(jīng)調(diào)度網(wǎng)絡(luò)交換機傳輸至電力調(diào)度網(wǎng)絡(luò)。
主數(shù)據(jù)采集單元,包含SIS側(cè)采集服務(wù)器1、隔離裝置1、調(diào)度側(cè)采集服務(wù)器1,是數(shù)據(jù)采集傳輸?shù)闹饕ǖ馈?/p>
冗余數(shù)據(jù)采集單元,包含SIS側(cè)采集服務(wù)器2、隔離裝置2、調(diào)度側(cè)采集服務(wù)器2,是數(shù)據(jù)采集傳輸?shù)膫溆猛ǖ馈?/p>
冗余機制的軟件平臺如圖2所示,主要包含心跳偵測模塊、參數(shù)配置模塊、數(shù)據(jù)處理模塊、冗余控制模塊、自動報警模塊、監(jiān)控模塊共6個模塊。
圖1 雙機冗余機制的硬件架構(gòu)
(1)心跳偵測模塊。該模塊是整個冗余機制的基礎(chǔ),主要完成熱備雙機之間的心跳偵測和?;钆袛?,為了保證雙機心跳的實時性,設(shè)計該功能作為最高優(yōu)先級任務(wù)運行,避免被其他任務(wù)搶占。
(2)參數(shù)配置模塊。該模塊實現(xiàn)雙機冗余機制的軟件平臺的運行參數(shù)配置,包括故障切換的敏捷性、自動報警模塊的告警接受人等。
(3)數(shù)據(jù)處理模塊。該模塊實現(xiàn)對雙通道采集的冗余數(shù)據(jù)進行消冗余處理,使得最終傳送至省調(diào)側(cè)的數(shù)據(jù)只是一份,不影響考核。
(4)冗余控制模塊。該模塊實現(xiàn)雙機主從運行模式的自動判斷和故障狀態(tài)下主從模式的自動切換功能。
(5)自動報警模塊。該模塊把通道運行的情況以報警的方式告知用戶,保證在主通道發(fā)生故障時,用戶可以及時知道并進行處理,以防止二次故障發(fā)生導(dǎo)致的數(shù)據(jù)傳輸中斷。
(6)監(jiān)控模塊。該模塊實現(xiàn)對通道的監(jiān)控以及對環(huán)保數(shù)據(jù)傳輸情況的監(jiān)控。
圖2 冗余機制的軟件平臺
滑動窗口(Sliding window)是一種流量控制技術(shù)。早期的網(wǎng)絡(luò)通信中,通信雙方往往不會考慮網(wǎng)絡(luò)的擁擠情況,都是直接發(fā)送數(shù)據(jù)。由于大家不知道網(wǎng)絡(luò)擁塞狀況,同時發(fā)送數(shù)據(jù),造成中間節(jié)點阻塞掉包,誰也發(fā)不了數(shù)據(jù),所以就有了滑動窗口機制來解決此問題。本文借鑒滑動窗口的思路,設(shè)置實時傳輸?shù)沫h(huán)保數(shù)據(jù)測點的緩沖時間段,對在滑動時間窗口內(nèi)的數(shù)據(jù)進行消重處理,以此來保證數(shù)據(jù)既不會丟失,又不會重復(fù)發(fā)送。
基于滑動窗口控制的數(shù)據(jù)處理算法是針對數(shù)據(jù)傳輸?shù)碾p機冗余業(yè)務(wù)設(shè)計的,通過監(jiān)控兩個通道的數(shù)據(jù),并對其進行消重以實現(xiàn)數(shù)據(jù)的高可靠傳輸。消重監(jiān)控程序的核心是設(shè)計了基于滑動時間窗口的算法,該算法不僅實現(xiàn)了數(shù)據(jù)的消重,同時也保證了數(shù)據(jù)的實時傳輸,其實現(xiàn)原理如圖3所示。
圖3 基于滑動窗口控制的數(shù)據(jù)處理算法實現(xiàn)原理
(1)當接收到通道發(fā)送過來的測點時,在緩沖池中搜索該測點的標志,如果緩沖池中沒有,就把測點及相應(yīng)時間戳發(fā)往省調(diào)網(wǎng)絡(luò),并存入緩沖池;如果緩沖池中有該測點,則把測點及相應(yīng)時間戳發(fā)往省調(diào)網(wǎng)絡(luò),并更新緩沖池中該測點的時間戳。
(2)滑動時間窗口,檢查緩沖池中已有測點與最新時間戳的差值,如果大于時間窗大小t,向前滑動時間窗口,把該測點從緩沖池中刪除;如果小于時間窗大小t,則保持時間窗口位置不變。
基于滑動窗口控制的數(shù)據(jù)處理算法具體實現(xiàn)思路如下:
(1)在隊列Q中使用雙指針的左右指針技巧,初始化left=right=0,把索引的閉合區(qū)間[left,right]稱為一個“窗口”,其中隊列中的元素就是按順序排列的環(huán)保數(shù)據(jù)上傳的每個測點。
(2)不斷增加right指針的值,擴大窗口[left,right],直到窗口中的總體冗余測點數(shù)量滿足預(yù)設(shè)的比例r。
(3)符合要求后,停止增加right,轉(zhuǎn)而增加left指針來縮小窗口[left,right],直到窗口中的測點數(shù)據(jù)不再滿足時間刷新的要求。注意,每次增加left,都要更新一輪結(jié)果。
(4)重復(fù)第2步和第3步,直到right到達隊列Q的盡頭或者滿足一次完整上傳的測點全部上傳完成。
目前,本文提出的基于滑動窗口控制數(shù)據(jù)處理的雙機冗余機制已經(jīng)在國華徐州發(fā)電有限公司進行部署應(yīng)用,實際應(yīng)用表明,本文提出的機制可以有效保證環(huán)保數(shù)據(jù)傳輸?shù)姆€(wěn)定性,提高通道故障時的響應(yīng)處理速度,針對冗余通道設(shè)計的數(shù)據(jù)處理算法可以有效保證實時數(shù)據(jù)的唯一性,保障環(huán)保數(shù)據(jù)雙通道傳輸系統(tǒng)的正常運行。