常夏勤,徐 丹,劉德賀
(南京南瑞繼保電氣有限公司,江蘇 南京 210000)
隨著大型水電站建設(shè)的快速發(fā)展,站內(nèi)設(shè)備巡視與維護(hù)任務(wù)急劇加大。水電數(shù)據(jù)中心系統(tǒng)通過接入各類業(yè)務(wù)系統(tǒng)設(shè)備的實(shí)時(shí)運(yùn)行數(shù)據(jù),構(gòu)建統(tǒng)一的狀態(tài)實(shí)時(shí)監(jiān)視中心,盤活數(shù)據(jù)價(jià)值,為設(shè)備狀態(tài)診斷及檢修提供高效可靠的數(shù)據(jù)支撐。系統(tǒng)關(guān)鍵信息通過移動(dòng)APP、短信、郵件等多種方式推送到各級(jí)管理部門,對(duì)運(yùn)維人員提高維護(hù)效率、降低運(yùn)維成本,保障水電站運(yùn)行穩(wěn)定性和可靠性有重大意義。
水電數(shù)據(jù)中心系統(tǒng)能夠?qū)C(jī)組等設(shè)備的實(shí)時(shí)運(yùn)行狀態(tài)進(jìn)行在線監(jiān)視,但是對(duì)設(shè)備各項(xiàng)歷史運(yùn)行指標(biāo)提取,進(jìn)行事故反演,開展設(shè)備綜合運(yùn)行分析同樣重要[1-3]?;诜囱萁Y(jié)果的設(shè)備狀態(tài)評(píng)估、風(fēng)險(xiǎn)預(yù)警等結(jié)論進(jìn)行人工干預(yù),以校正系統(tǒng)自動(dòng)判斷結(jié)果,提高系統(tǒng)決策的準(zhǔn)確性與可信性。
大多數(shù)水電數(shù)據(jù)中心系統(tǒng)不具備事故反演功能或是功能薄弱,一般僅能記錄事故時(shí)刻前后一段時(shí)間內(nèi)特定類型的實(shí)時(shí)穩(wěn)態(tài)信息,這種方法在事故追溯的時(shí)間選擇上缺乏連續(xù)性,信息匱乏,缺少真實(shí)操作場景模擬;水電站升級(jí)改造或者二次建設(shè)會(huì)導(dǎo)致網(wǎng)絡(luò)結(jié)構(gòu)改變,反演如果采用最新的水電站模型及圖形,無法與事故發(fā)生時(shí)刻的斷面數(shù)據(jù)與模型相匹配;運(yùn)維人員希望不對(duì)設(shè)備實(shí)際操作,通過事故反演來提供一個(gè)模擬仿真的場景進(jìn)行培訓(xùn)學(xué)習(xí)[4,5]。本文提出了一種基于時(shí)間序列數(shù)據(jù)庫的多態(tài)事故反演方法,時(shí)間序列數(shù)據(jù)庫滿足了采集數(shù)據(jù)的高速連續(xù)存儲(chǔ),多態(tài)滿足了不同場景下的用戶事故反演需求。
系統(tǒng)采用自主研發(fā)的PCS-9000 時(shí)間序列數(shù)據(jù)庫用于過程數(shù)據(jù)的采集和分析,能夠長期存儲(chǔ)水電站的監(jiān)控?cái)?shù)據(jù),滿足用戶快速、高效地進(jìn)行數(shù)據(jù)采集、存儲(chǔ)和查詢的需求,架構(gòu)如圖1 所示。
圖1 時(shí)序數(shù)據(jù)庫架構(gòu)
時(shí)間序列數(shù)據(jù)庫包括客戶端服務(wù)、網(wǎng)絡(luò)中間件、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層等模塊。網(wǎng)絡(luò)中間件采用了Router/Dealer 模式,為客戶端和服務(wù)端之間的報(bào)文轉(zhuǎn)發(fā)、確認(rèn)、重連、心跳等提供了統(tǒng)一機(jī)制。業(yè)務(wù)邏輯層包括數(shù)據(jù)查詢服務(wù)、數(shù)據(jù)存儲(chǔ)服務(wù)、統(tǒng)計(jì)計(jì)算服務(wù)以及相應(yīng)緩存模塊。數(shù)據(jù)訪問層負(fù)責(zé)數(shù)據(jù)的壓縮存儲(chǔ)、數(shù)據(jù)塊定位和解壓、磁盤文件及句柄管理。
時(shí)間序列數(shù)據(jù)庫最基本的概念是點(diǎn),任何可測量的設(shè)備屬性都可以被定義為點(diǎn)。每個(gè)點(diǎn)的每條數(shù)據(jù)記錄由編碼(ptID)、時(shí)標(biāo)(timestamp)、值(value)和質(zhì)量碼(flag)等四部分組成,如圖2 所示。編碼由4字節(jié)無符號(hào)整數(shù)表示;時(shí)標(biāo)由8 字節(jié)整數(shù)表示,根據(jù)不同數(shù)據(jù)精度要求可以精確到s 或者ms;數(shù)據(jù)值由單精度浮點(diǎn)數(shù)或者有符號(hào)整數(shù)的聯(lián)合結(jié)構(gòu)體(4 字節(jié))表示;質(zhì)量碼由4 字節(jié)有符號(hào)整數(shù)表示。
圖2 時(shí)間序列數(shù)據(jù)庫數(shù)據(jù)記錄構(gòu)成
歷史應(yīng)用的實(shí)時(shí)庫負(fù)責(zé)發(fā)起時(shí)序點(diǎn)的驗(yàn)證和存儲(chǔ),步驟如下:
(1)遍歷時(shí)序服務(wù)器已存儲(chǔ)的所有時(shí)序點(diǎn),查找是否存在同名量測,如果hyscada 的實(shí)時(shí)量測路徑不完全相同,則插入新量測對(duì)象,量測狀態(tài)設(shè)置為啟用,時(shí)間為當(dāng)前時(shí)間。
(2)假設(shè)存在同名量測的時(shí)序點(diǎn),如果量測之前是無效狀態(tài),則更新該量測狀態(tài)為啟用,刷新狀態(tài)時(shí)間,若量測關(guān)聯(lián)的服務(wù)器信息、ptID 或者h(yuǎn)yscada 映射對(duì)象oid 不一致,需要同步更新相關(guān)信息。
(3)遍歷所有量測,對(duì)于不再需要存儲(chǔ)的量測,置其狀態(tài)為無效,并更新狀態(tài)時(shí)間為當(dāng)前時(shí)間。
生成時(shí)序點(diǎn)的量測會(huì)自動(dòng)加入歷史采樣存儲(chǔ)服務(wù),歷史應(yīng)用采用多進(jìn)程高并發(fā)來處理實(shí)時(shí)數(shù)據(jù)的存儲(chǔ),根據(jù)量測的特征分進(jìn)程存儲(chǔ),提高存儲(chǔ)效率,存儲(chǔ)流程如圖3 所示。
圖3 數(shù)據(jù)提交
1)連接時(shí)序數(shù)據(jù)庫服務(wù)集群。
2)每秒遍歷進(jìn)程負(fù)責(zé)范圍內(nèi)量測的值,如果hyscada 庫中實(shí)時(shí)值對(duì)比上一秒發(fā)生變化則構(gòu)建數(shù)據(jù)記錄,加入緩存區(qū),形成待提交數(shù)據(jù)。
3)如果緩沖區(qū)中達(dá)到設(shè)定的單次數(shù)據(jù)提交規(guī)模,則將待提交數(shù)據(jù)發(fā)送給時(shí)序數(shù)據(jù)服務(wù)集群,然后清空緩沖區(qū)的待提交數(shù)據(jù)。
為節(jié)約存儲(chǔ)空間和提高查詢效率,對(duì)于變化頻率高的測點(diǎn)設(shè)置死區(qū)值deadzone 和死區(qū)時(shí)間deadsecs 進(jìn)行壓縮,將變化不顯著的值剔除實(shí)現(xiàn)壓縮。設(shè)當(dāng)前確定存儲(chǔ)的事件為snap,如果其后面到來的事件next 的時(shí)間戳與snap 的時(shí)間戳之差小于設(shè)定的死區(qū)時(shí)間deadsecs,且next 的值與snap 的值相比的變化率小于設(shè)定的死區(qū)值百分比deadzone,則丟棄該事件,否則將該事件設(shè)為當(dāng)前確定存儲(chǔ)的事件snap,與其前一個(gè)事件prev 一起進(jìn)行存儲(chǔ)。
在水電數(shù)據(jù)中心系統(tǒng)中,事故反演可以分為實(shí)時(shí)態(tài)、歷史態(tài)、研究態(tài)等,它是在不同應(yīng)用階段及狀態(tài)下建立的多形態(tài)水電站模型。
(1)實(shí)時(shí)態(tài):水電數(shù)據(jù)中心系統(tǒng)當(dāng)前實(shí)際運(yùn)行的形態(tài),具有唯一性。
(2)歷史態(tài):根據(jù)實(shí)際情況,在某個(gè)歷史時(shí)刻創(chuàng)建的水電數(shù)據(jù)中心系統(tǒng)的運(yùn)行形態(tài),每個(gè)歷史態(tài)的起止時(shí)間不相同,是不唯一的。
(3)研究態(tài):出于用戶專門的研究或者培訓(xùn)需要,水電數(shù)據(jù)中心系統(tǒng)可以隨時(shí)創(chuàng)建的形態(tài)。與歷史態(tài)一樣,系統(tǒng)支持有很多個(gè)這樣的態(tài)。
一般是基于當(dāng)前實(shí)時(shí)態(tài)做一個(gè)基礎(chǔ)鏡像來創(chuàng)建其他形態(tài),主要內(nèi)容包括模型、圖形、系統(tǒng)參數(shù)及采集數(shù)據(jù)等。創(chuàng)建好的形態(tài)數(shù)據(jù)是私有的,各個(gè)態(tài)下的應(yīng)用程序獨(dú)立運(yùn)行,相互之間不受影響。
事故反演包括觸發(fā)源、事故數(shù)據(jù)搜集存儲(chǔ)服務(wù)及事故反演服務(wù)三大模塊,如圖4 所示。
圖4 事故反演框架
事故反演基于時(shí)間序列數(shù)據(jù)庫存儲(chǔ),具備全部采集數(shù)據(jù)的事故反演能力,可全方位記錄水電站設(shè)備的事故狀態(tài),并能夠真實(shí)、完整地反演事故過程。通過觸發(fā)源觸發(fā)事故數(shù)據(jù)搜集存儲(chǔ),事故前后反演時(shí)間段可以自由設(shè)置。
觸發(fā)源有以下四種:
(1)任意事件或者是多個(gè)事件的邏輯運(yùn)算結(jié)果。
(2)運(yùn)維人員在畫面上手動(dòng)啟動(dòng)。
(3)應(yīng)用模塊發(fā)布相應(yīng)的事故反演事件。
(4)多重觸發(fā),當(dāng)前一個(gè)事故反演觸發(fā)后,在設(shè)置時(shí)間內(nèi)又再次發(fā)生事故反演,應(yīng)該合并成同一次事故反演,存儲(chǔ)記錄時(shí)間相應(yīng)延長。
事故數(shù)據(jù)搜集存儲(chǔ)服務(wù)收到觸發(fā)源事件時(shí),根據(jù)指定的事故前后的反演時(shí)間段,會(huì)搜集hyscada模型、畫面case、告警事件及事故前后時(shí)段內(nèi)的歷史采樣時(shí)序數(shù)據(jù),并通過文件服務(wù)器保存到文件存儲(chǔ)上。在多態(tài)的情況下,所有數(shù)據(jù)最終會(huì)轉(zhuǎn)存到相應(yīng)形態(tài)的歷史數(shù)據(jù)文件。
事故反演過程包括反演環(huán)境建立、反演操作工具、反演畫面設(shè)計(jì)。
(1)反演環(huán)境建立
事故反演可以在系統(tǒng)內(nèi)任意工作站進(jìn)行,當(dāng)用戶選定反演起始時(shí)間和結(jié)束時(shí)間后,需要獲得匹配起始時(shí)間的以下內(nèi)容:
1)hyscada 數(shù)據(jù)庫,包括模擬量、開關(guān)量、溫度量、控制量等;
2)hyscada 量測oid 與時(shí)序數(shù)據(jù)庫的ptID 的對(duì)應(yīng)關(guān)系;
3)事故變位、soe 變位、遙測越限、人工啟動(dòng)等告警事件;
4)水電數(shù)據(jù)中心系統(tǒng)對(duì)應(yīng)的歷史模型、畫面圖形的歷史版本。
事故反演應(yīng)用檢查在起始時(shí)間和結(jié)束時(shí)間范圍內(nèi)hyscada 數(shù)據(jù)庫模型是否發(fā)生改變,如有需修改結(jié)束時(shí)間至改變前,后面作為一個(gè)新的反演過程。當(dāng)發(fā)現(xiàn)用戶選擇的事故不屬于當(dāng)前形態(tài)時(shí),反演應(yīng)用會(huì)發(fā)出告警,確保用戶在正確的形態(tài)下反演其涵蓋的事故,保證事故數(shù)據(jù)與當(dāng)時(shí)的水電站的模型和圖形一致,真實(shí)地再現(xiàn)事故前后一段時(shí)間的水電站機(jī)組等設(shè)備運(yùn)行狀態(tài)。
(2)反演操作工具
1)反演包括單步和連續(xù)兩種模式
單步模式:反演單步步長指示的秒數(shù)后暫停,等待按下開始鍵后再繼續(xù)走一個(gè)單步步長;
連續(xù)模式:反演過程連續(xù)進(jìn)行,直至人工干預(yù)。
在單步模式下反演的控制單位為步長,一個(gè)步長的時(shí)間單位為s。
2)人工置數(shù)改變反演速度
速度正值越大,則反演就越快,反之負(fù)值越大則速度越慢,最大和最小值存在上下限的限制。譬如用戶設(shè)定單步步長為10 s,同時(shí)選擇速度值為5,則一個(gè)單步步長實(shí)際所用時(shí)間為2 s;對(duì)于連續(xù)方式亦是如此。
3)反演控制鍵
開始按鈕(?):開始反演;
暫停按鈕(■):暫停反演(停在當(dāng)前時(shí)間點(diǎn));
停止按鈕(■):停止本次反演;
快進(jìn)按鈕(■):點(diǎn)一次,前進(jìn)單步步長所指示的秒數(shù);
快退按鈕(■):點(diǎn)一次,后退單步步長所指示的秒數(shù);
拖動(dòng)條:可以任意拖動(dòng),前進(jìn)或后退拖動(dòng)條所顯示比例的時(shí)間值,滑動(dòng)控制條的起始位置和結(jié)束位置分別對(duì)應(yīng)了用戶設(shè)置的反演開始時(shí)間和結(jié)束時(shí)間,拖動(dòng)滑動(dòng)條時(shí)其分辨的精度為1 s 級(jí)。
4)反演切換
在反演過程中可以任意變換模式為單步或連續(xù),由單步變?yōu)檫B續(xù)時(shí),如是在暫停過程中,按開始鍵則反演繼續(xù)。
(3)反演畫面設(shè)計(jì)
演示可以通過反演信息顯示列表中的廠站圖或曲線等多種方式進(jìn)行,反演過程中可進(jìn)行動(dòng)態(tài)網(wǎng)絡(luò)拓?fù)渲?,在一次接線圖上動(dòng)態(tài)顯示網(wǎng)絡(luò)結(jié)構(gòu)的變化過程;反演過程中的某個(gè)斷面,可以進(jìn)行水電站運(yùn)行狀態(tài)綜合運(yùn)行分析及培訓(xùn)仿真研究。
時(shí)間序列數(shù)據(jù)庫滿足了采集數(shù)據(jù)的高速連續(xù)存儲(chǔ),使得反演粒度方面達(dá)到秒級(jí)的全過程數(shù)據(jù)展現(xiàn)。多態(tài)則滿足了不同場景下的用戶事故反演需求,圓滿解決了傳統(tǒng)事故反演功能存在的弊端。該方法的事故反演和分析工具已經(jīng)運(yùn)用在多個(gè)水電數(shù)據(jù)中心系統(tǒng)中,為水電站的事故診斷與狀態(tài)評(píng)價(jià)提供了全面的數(shù)據(jù)支撐和工具支持。通過工具逼真地再現(xiàn)事故發(fā)生時(shí)刻的工作場景,成功分析了多次事故,縮短故障處理時(shí)間,提升了運(yùn)維的自動(dòng)化水平和實(shí)用化程度。