陳寶軍 湯旻安
摘 要:城市軌道交通綜合監(jiān)控系統(tǒng)是一個高度集成的綜合自動化監(jiān)控系統(tǒng),其目的主要是利用統(tǒng)一的監(jiān)控層硬件平臺和軟件平臺實現(xiàn)對各監(jiān)控對象集中監(jiān)控和管理,系統(tǒng)主要集成電力監(jiān)控系統(tǒng)(PSCADA)、火災(zāi)報警系統(tǒng)(FAS)、機電設(shè)備監(jiān)控系統(tǒng)(BAS)、門禁系統(tǒng)(ACS)等子系統(tǒng),該系統(tǒng)采用兩級管理級三級控制的層次和分布式結(jié)構(gòu),兩級管理是中央和站級,三級控制是中央級、站級、字段級。文章主要針對綜合監(jiān)控系統(tǒng)中數(shù)據(jù)庫軟件的設(shè)計、數(shù)據(jù)流進行了探討與分析。
關(guān)鍵詞:綜合監(jiān)控;數(shù)據(jù)流;設(shè)計
1 綜合監(jiān)控軟件平臺
城市軌道交通綜合監(jiān)控系統(tǒng)軟件平臺主要分為系統(tǒng)平臺層、支撐平臺層和應(yīng)用層。系統(tǒng)平臺層提供不同硬件平臺、不同的操作系統(tǒng)支持;基本服務(wù)和開發(fā)工具支持的平臺提供了一層系統(tǒng),為用戶提供第三方接入應(yīng)用系統(tǒng)支持兩開發(fā)支持;應(yīng)用層包括FAS、BAS和其他應(yīng)用軟件和仿真培訓(xùn)軟件的用戶。數(shù)據(jù)庫軟件作為支撐平臺層,對綜合監(jiān)控系統(tǒng)從現(xiàn)場采集的大量數(shù)據(jù)進行數(shù)據(jù)存儲、數(shù)據(jù)分析、數(shù)據(jù)查詢以及數(shù)據(jù)轉(zhuǎn)發(fā)等。
2 數(shù)據(jù)庫設(shè)計
綜合監(jiān)控系統(tǒng)中數(shù)據(jù)庫模塊發(fā)揮至關(guān)重要的作用,而傳統(tǒng)的關(guān)系數(shù)據(jù)庫在過程控制應(yīng)用中是非常無力的,而國外一些成熟的實時歷史數(shù)據(jù)庫價格昂貴,可處理的點數(shù)少。為了滿足信息實時性、一致性、大容量、大吞吐量要求,必須針對軌道交通的特點,綜合監(jiān)控、設(shè)計和開發(fā)自己的實時、歷史數(shù)據(jù)庫。
2.1 數(shù)據(jù)流設(shè)計
軟件平臺的數(shù)據(jù)流主要有三個環(huán)節(jié):FEP、服務(wù)器、工作站。外部系統(tǒng)數(shù)據(jù)經(jīng)過FEP到服務(wù)器后在工作站上顯示;工作站上的操作經(jīng)過服務(wù)器發(fā)到FEP,然后發(fā)布到外部系統(tǒng)。
2.1.1 數(shù)據(jù)采集流程
數(shù)據(jù)采集是指數(shù)據(jù)從現(xiàn)場設(shè)備至ISCS系統(tǒng)的數(shù)據(jù)流。如:斷路器的狀態(tài)改變將由系統(tǒng)通過數(shù)據(jù)遙測接收。ISCS在控制中心與車站都配有兩臺服務(wù)器,PSCADA、BAS等子系統(tǒng)的數(shù)據(jù)通過FEP同時發(fā)送到2臺服務(wù)器。
2.1.2 命令下發(fā)流程
控制中心操作員有權(quán)對車站設(shè)備進行控制,控制中心操作員的控制命令無視目標設(shè)備位置,可以直接通過控制中心FEP發(fā)送至子系統(tǒng),然后通過子系統(tǒng)下發(fā)給現(xiàn)場執(zhí)行設(shè)備;或通過ISCS網(wǎng)絡(luò)發(fā)送至車站ISCS服務(wù)器,再通過車站FEP發(fā)送至子系統(tǒng),在由子系統(tǒng)將命令下發(fā)給具體執(zhí)行設(shè)備。
2.1.3 數(shù)據(jù)發(fā)布流程
數(shù)據(jù)發(fā)布是指將服務(wù)器處理過的數(shù)據(jù)發(fā)布至工作站的人機界面上,向操作員進行顯示或產(chǎn)生報警等功能的過程。軟件在設(shè)計時,為減少不必要的數(shù)據(jù)傳輸,保證網(wǎng)絡(luò)帶寬的高效利用。一方面,工作站可主動向服務(wù)器“要”數(shù)據(jù)。另一方面,為了保證變化數(shù)據(jù)在人機界面上的快速反應(yīng),服務(wù)器也會對一些變化數(shù)據(jù)采取“推”的方式,主動發(fā)送到工作站。工作站收到這些被“推”來的數(shù)據(jù)后,如果與當(dāng)前顯示的人機界面相關(guān),立即更新人機界面內(nèi)容;如果無關(guān),則直接將這些數(shù)據(jù)丟棄。因此軟件平臺的數(shù)據(jù)發(fā)布是采用“推”、“要”相結(jié)合的方式。數(shù)據(jù)發(fā)布包括發(fā)布到HMI和發(fā)布到應(yīng)用程序,而發(fā)布到HMI又包括實時數(shù)據(jù)發(fā)布到HMI、歷史數(shù)據(jù)發(fā)布到HMI兩個方面。
2.2 數(shù)據(jù)庫功能設(shè)計
實時數(shù)據(jù)庫:
實時數(shù)據(jù)庫是整個系統(tǒng)處理實時數(shù)據(jù)的核心,管理在線運行的數(shù)據(jù)。其目標是保證實時性、一致性、訪問的高性能。實時數(shù)據(jù)庫應(yīng)具有以下功能:
*面向?qū)ο?、具有設(shè)備的概念、支持圖模一體化;
*分布式結(jié)構(gòu),便于實時數(shù)據(jù)庫節(jié)點的增減;
*可跨平臺,支持所有主流的操作系統(tǒng);
重建在線數(shù)據(jù)庫時,現(xiàn)有的數(shù)據(jù)不能丟失;
*確保數(shù)據(jù)庫一致性;
*確保系統(tǒng)的安全;
*支持SQL語言。
歷史數(shù)據(jù)庫
歷史數(shù)據(jù)庫主要用于存儲采樣數(shù)據(jù)、告警、事件日志等數(shù)據(jù),但讀寫頻率較低。數(shù)據(jù)庫的設(shè)計目標是優(yōu)化和擴展數(shù)據(jù)庫應(yīng)用程序開發(fā)人員的能力,提供了簡單、靈活然而功能強大的XQL查詢引擎,產(chǎn)生內(nèi)存內(nèi)的訪問結(jié)構(gòu),實現(xiàn)對所需要信息的快速檢索。歷史數(shù)據(jù)庫應(yīng)具有以下功能:
*可跨平臺,支持多種主流廠商的硬件平臺及操作系統(tǒng)平臺;
*支持各種網(wǎng)絡(luò)通信協(xié)議,如TCP/IP、SPX/IPX、X.25、SNA、NetBIOS、ANSI/ISO SQL-92等協(xié)議、標準;
*數(shù)據(jù)庫系統(tǒng)應(yīng)具有良好的伸縮性;數(shù)據(jù)庫能夠在SMP系統(tǒng)中配置生成多個引擎,能夠綁定CPU給用戶和應(yīng)用程序;
*具有良好的開放性,支持異種數(shù)據(jù)庫的互訪;
*支持分布式事務(wù)及兩階段提交功能;
*在網(wǎng)絡(luò)上的異構(gòu)數(shù)據(jù)庫之間的數(shù)據(jù)冗余復(fù)制;多個復(fù)制模式(如一點對多點、多點對一點、點對點以及雙向復(fù)制),支持基于事務(wù)日志的復(fù)制,保證復(fù)制事務(wù)完整性;
*數(shù)據(jù)庫服務(wù)器系統(tǒng)參數(shù)允許進行動態(tài)設(shè)置,不須重啟系統(tǒng);可對高速緩存進行命名管理并且與數(shù)據(jù)庫對象綁定;
*隨著快速的并發(fā)訪問操作,并發(fā)控制是穩(wěn)定的和可靠的,并支持多進程和多線程;
*具有在聯(lián)機狀態(tài)下對大容量數(shù)據(jù)的并行、壓縮備份功能。
2.3 數(shù)據(jù)庫核心模塊設(shè)計
數(shù)據(jù)庫的核心模塊設(shè)計為三個模塊,即點管理、實時數(shù)據(jù)管理和歷史數(shù)據(jù)管理。
2.3.1 點管理模塊
點(記為point)是一個獨特的表示不同的數(shù)據(jù)流,如電壓和電流值,開關(guān)的狀態(tài),溫度計的數(shù)量等。任何可測量的設(shè)備屬性都可以定義為“點”。點類型主要包括數(shù)字量和模擬量。在軌道交通綜合監(jiān)控系統(tǒng)中,數(shù)字量的變化較低,仿真的頻率較高,因此對歷史數(shù)據(jù)的分析主要是模擬的。
“point”是一個18位字符串,獨特的身份,稱它為標簽。單點信息一般包括點標簽、類型、單位、描述、死時間值、是否保存歷史數(shù)據(jù)、B+樹根節(jié)點等。所有的“點”信息是一組點,所有在內(nèi)存中。
點管理主要是指對點表的維護,包括點的增加、刪除、修改信息的點、點的快速搜索等。點是數(shù)據(jù)管理的基本單位,各種操作的數(shù)據(jù)都是以點進行的。因此,快速的點查詢對提高系統(tǒng)的性能有著重要意義。實時歷史數(shù)據(jù)庫采用哈希表索引方法進行點查詢,可以快速查找指定的信息點。
2.3.2 實時數(shù)據(jù)管理
實時數(shù)據(jù)是最近一段時間的一個點的瞬時值,它是時間相關(guān)的數(shù)據(jù)。每個實時數(shù)據(jù)記錄都有一個時間戳,并記錄實時數(shù)據(jù)的采樣時間。一個實時數(shù)據(jù)記錄包括四個組成部分,如標簽、時間戳、狀態(tài)、值等。
根據(jù)數(shù)據(jù)集成的交通監(jiān)控系統(tǒng)的特點,即數(shù)字、模擬、數(shù)字模擬特性變化緩慢,變化很快,為了更好地實時數(shù)據(jù)轉(zhuǎn)化為歷史數(shù)據(jù),采用雙緩沖方法的設(shè)計,即:
(1)為每一個“point”建立一個比較大的緩存(如100記錄的緩存),記為cache_1。數(shù)據(jù)庫服務(wù)器接收實時數(shù)據(jù),不能直接進入B+樹,但根據(jù)名字直接寫入到相應(yīng)的cache_1點;當(dāng)數(shù)存儲在cache_1最大記錄,統(tǒng)一包裝到B+樹。單元點到海量存儲,大大降低了寫B(tài) +樹的數(shù)量,降低了樹的高度,增加了寫和查詢速度,并得到了一組數(shù)據(jù)點,也可以進行有效的數(shù)據(jù)壓縮。在一些特殊情況下(如50萬點),你可以打開一個一定規(guī)模的max_cache1緩沖區(qū)。當(dāng)緩沖區(qū)滿,然后轉(zhuǎn)移到cache_1新點,對于那些指出,長時間不使用的內(nèi)存使用LRU置換算法。由于數(shù)字量的緩慢變化,模擬量變化快,所以模擬量更頻繁訪問的cache_1。但比例數(shù)字集成流量監(jiān)控系統(tǒng),和一個相對小的數(shù)目的模擬系統(tǒng),允許max_cache1尺寸接近模擬*sizeof的數(shù)量的情況下(cache_1),具有很高的命中率。
(2)根據(jù)內(nèi)存的大小,為每個點設(shè)置一個比較小的緩存,記為cache_2,確保所有點的cache_2可以放入內(nèi)存。實時數(shù)據(jù)來的cache_2緩存對應(yīng)點第一,當(dāng)記錄數(shù)cache_2存儲達到上限,然后寫cache_1。設(shè)置緩存cache_2的目的也是提高速度。由于慢的數(shù)量的變化(一天可能只有幾個數(shù)據(jù)),較小的高速緩存的數(shù)量是足夠的,以應(yīng)付很長一段時間。通過cache_2批量處理,大大減少了訪問cache_1數(shù)量,也降低了節(jié)目的數(shù)量訪問磁盤的寫入速度提高。
雙緩沖技術(shù)是為每一個點建立一個比較大的和小的存儲緩沖區(qū)。一個小的緩沖區(qū)總是在記憶;和緩沖可以轉(zhuǎn)移到內(nèi)部和外部存儲之間轉(zhuǎn)移,使用LRU置換算法。緩存技術(shù)大大提高了數(shù)據(jù)庫處理歷史數(shù)據(jù)的性能,然后可以支持更多的點。
2.3.3 歷史數(shù)據(jù)管理
當(dāng)實時數(shù)據(jù)超出一定的周期時,即存儲在磁盤中的歷史數(shù)據(jù)。歷史數(shù)據(jù)可以優(yōu)化企業(yè)的生產(chǎn),并為失效分析提供了有力的工具。使用B+樹來組織文件數(shù)據(jù)的實時歷史數(shù)據(jù)庫。由于在工作組的順序,B+樹有一個良好的效率,并存儲在數(shù)據(jù)庫中的歷史數(shù)據(jù)所產(chǎn)生的實時數(shù)據(jù),所以數(shù)據(jù)處理是時間序列數(shù)據(jù)。當(dāng)一組實時數(shù)據(jù)過期時,它將它存儲在一個B+樹中。每一個點都有一個時間作為索引的B+樹,B+葉節(jié)點是一組歷史數(shù)據(jù)壓縮包。為了保持長期的歷史數(shù)據(jù),在有限的存儲空間,利用赫夫曼壓縮算法的設(shè)計,分別對數(shù)字時間戳壓縮,從而大大減少了占用的歷史數(shù)據(jù)存儲的磁盤空間。當(dāng)您需要查詢一個點的歷史數(shù)據(jù)時,首先滿足壓縮包的條件,以便讀取時間,以便讀取內(nèi)存,然后在內(nèi)存中提取,恢復(fù)原始數(shù)據(jù),返回給用戶。
參考文獻
[1]魏曉東.城市軌道交通自動化系統(tǒng)與技術(shù)[M].電子工業(yè)出版社,2005.
[2]南京南瑞集團內(nèi)刊.RT21-ISCS軟件應(yīng)用書[Z].
[3]劉佳寶,梁奕,陳天浩.RT21-ISCS綜合監(jiān)控系統(tǒng)中實時歷史數(shù)據(jù)庫的設(shè)計與實現(xiàn)[J].城市軌道交通研究,2012(1).
[4]張寶廣,隋國棟,李海鋒.城市軌道交通工務(wù)管理數(shù)據(jù)庫的設(shè)計[J].城市軌道交通研究,2010(1).
[5]錢笑宇,張彥武.工業(yè)實時數(shù)據(jù)庫的研究與設(shè)計[J].計算機工程,2005(1).