□ 文/孫波
在近些年的橋隧綜合監(jiān)控系統(tǒng)中,集成監(jiān)控軟件負責對底層設(shè)備數(shù)據(jù)進行實時采集、并通過組態(tài)頁面將數(shù)據(jù)通過圖表、動畫等方式展現(xiàn)。在展現(xiàn)數(shù)據(jù)的同時,監(jiān)控軟件將交通流量、COVI環(huán)境參數(shù)、消防報警等重要數(shù)據(jù)通過轉(zhuǎn)儲服務接口存儲至關(guān)系型數(shù)據(jù)庫,如Oracle、SQLSERVER等。第三方軟件如設(shè)備管理系統(tǒng)、大數(shù)據(jù)分析系統(tǒng)等對若干年的隧道運營數(shù)據(jù)進行挖掘、清洗,趨勢分析,則需采用ODBC、JDBC等數(shù)據(jù)庫中間件方式對關(guān)系型數(shù)據(jù)庫訪問,生成報表,納入到專家?guī)熘?。應用場景適用于城市越江隧道、快速路地下通道、城市高架立交橋等單點設(shè)施應用場景,設(shè)備數(shù)量較少,監(jiān)控點數(shù)在1-5萬點。
隨著多隧合一監(jiān)控中心共用、島橋隧等特大型綜合監(jiān)控領(lǐng)域的擴展,從單個設(shè)施到全路段路網(wǎng)管理,監(jiān)控設(shè)備點數(shù)高達數(shù)十萬級,在數(shù)據(jù)存儲計算方面對數(shù)據(jù)庫服務端提出了大容量和高性能的要求,期望分析處理速度達到千萬點/秒,甚至更高的實時歷史數(shù)據(jù)存儲和查詢要求,因此實時庫的存儲技術(shù)優(yōu)勢得以體現(xiàn)。
在新建橋隧項目建設(shè)完成后,無論是實時數(shù)據(jù)庫或者歷時數(shù)據(jù)庫,都伴隨著監(jiān)控系統(tǒng)的建設(shè)一起投入運行,隨著后期設(shè)施內(nèi)新增系統(tǒng)的接入以及設(shè)施長期運營數(shù)據(jù)業(yè)務量的不斷增長,原有數(shù)據(jù)庫服務器的存儲容量顯得捉襟見肘,系統(tǒng)整體性能越來越無法滿足日益增長的業(yè)務系統(tǒng)的需要,而此時則必須對相關(guān)硬件以及軟件進行升級改造。傳統(tǒng)的升級方法是采購更高性能的服務器,對處理器、內(nèi)存、硬盤進行升級擴容,由此提高運算性能,增加存儲空間等。但是這種升級擴容帶來的弊端也是顯而易見的,改造周期長,預算成本高,而且在新老系統(tǒng)切換期間,往往需要額外的技術(shù)支持,備份轉(zhuǎn)移用戶數(shù)據(jù),確定升級失敗后的回退機制等,導致每次升級過程中步驟切換復雜,對用戶的在線業(yè)務系統(tǒng)影響比較大。
在目前橋隧監(jiān)控中使用的是關(guān)系型數(shù)據(jù)庫,面向?qū)ο笫怯脩?,在存儲性能上只能支持每秒千條數(shù)據(jù)的增刪改操作,在實時性方面無法保證實時響應,且與實時庫的定位不同,關(guān)系型數(shù)據(jù)庫一般關(guān)注數(shù)據(jù)的完整性、一致性,而實時數(shù)據(jù)庫更傾向于關(guān)注數(shù)據(jù)的實時性和數(shù)據(jù)質(zhì)量,更適應于在大數(shù)量的情況下對數(shù)據(jù)的實時分析展示。
實時數(shù)據(jù)庫作為一款通用型基礎(chǔ)產(chǎn)品,可針對橋隧監(jiān)控行業(yè)作定制化應用,因此采用了友好的二次開發(fā)平臺,封裝了簡單易用的服務接口,為開發(fā)人員提供了快速定制非標協(xié)議數(shù)據(jù)采集器的功能,同時,集成了功能強大的組態(tài)系統(tǒng),進行輔助設(shè)計工作?;谝陨闲枨?,主流的實時庫架構(gòu)采用典型的C/S模式,結(jié)構(gòu)上劃分為四層:
數(shù)據(jù)采集層:主要負責和外部系統(tǒng)通信,對數(shù)據(jù)接口可進行標準以及非標定義,進行數(shù)據(jù)采集,并將采集的設(shè)備數(shù)據(jù)轉(zhuǎn)儲進庫表中。
數(shù)據(jù)服務層:屬于實時庫的核心層,可進行數(shù)據(jù)管理服務、數(shù)據(jù)源管理服務、網(wǎng)絡(luò)管理服務,在整個系統(tǒng)中起到了關(guān)鍵作用。
系統(tǒng)接口層:主要是對數(shù)據(jù)服務層進行封裝,以接口的方式提供給外部系統(tǒng)或者系統(tǒng)應用層。
系統(tǒng)應用層:提供了四個展示平臺,并以表格、圖形、動畫等多種形式展示系統(tǒng)配置及數(shù)據(jù)。
系統(tǒng)架構(gòu)如下:
在新建系統(tǒng)進行硬件部署時,為了節(jié)約資源,可將配置中心、數(shù)據(jù)節(jié)點、采集客戶端、展示客戶端、配置客戶端等五類組件集中部署在一臺服務器中,若是資源充分的情況下,也可分散部署在單獨的服務器中,可根據(jù)項目情況進行靈活配置。在數(shù)據(jù)節(jié)點上可進行分布式部署,由此凸顯出系統(tǒng)的擴展性。
由于采用了分布式部署機制,用戶在對已有系統(tǒng)改造時,只需要增加一臺數(shù)據(jù)節(jié)點,這臺數(shù)據(jù)節(jié)點即可以分擔原有數(shù)據(jù)庫服務器的負載,此節(jié)點的增加過程對于橋隧監(jiān)控系統(tǒng)透明,即對橋隧監(jiān)控系統(tǒng)的在線運行業(yè)務并無影響,新的數(shù)據(jù)節(jié)點上線后,自動分擔系統(tǒng)負載,同步相關(guān)數(shù)據(jù),從而做到了無縫擴容的過程,
此種分布式可擴展的設(shè)計極大提升了系統(tǒng)的整體性能和可靠性,使得項目后續(xù)的可擴展性和可維護性得到了較大的提升。
實時數(shù)據(jù)庫常見的網(wǎng)絡(luò)方案有分部式冗余架構(gòu)、內(nèi)外網(wǎng)結(jié)構(gòu)、單機結(jié)構(gòu)、雙機冷備、雙機熱備、單機雙網(wǎng)卡冗余等方式,在港珠澳大橋交通工程系統(tǒng)集成監(jiān)控系統(tǒng)項目應用中,采用了雙機熱備模式,在保證硬件冗余的情況下,又在軟件配置上使用了軟冗余模式,確保數(shù)據(jù)的完整性。
首先,針對底層設(shè)備采集的海量數(shù)據(jù)預先確認哪些數(shù)據(jù)需要存儲,比如大橋上的氣象數(shù)據(jù)、能見度數(shù)據(jù)、風速數(shù)據(jù)等,隧道內(nèi)的光強度數(shù)據(jù)、CO/VI/NOx數(shù)據(jù)、溫度數(shù)據(jù)、壓力數(shù)據(jù)、UPS/EPS/蓄電池數(shù)據(jù)、泵房液位計數(shù)據(jù)、風機的溫度/振動/壓力數(shù)據(jù)、變電站的電流電壓功率數(shù)據(jù)、柴油發(fā)電機的油位/輸出電能質(zhì)量數(shù)據(jù)、除濕機的溫濕度數(shù)據(jù)等。
使用實時庫的轉(zhuǎn)儲功能,實現(xiàn)對模擬量、數(shù)字量的轉(zhuǎn)儲??蓪⒋鎯Φ挠涗洈?shù)據(jù)轉(zhuǎn)儲到關(guān)系數(shù)據(jù)庫中(即歷史庫),便于利用關(guān)系數(shù)據(jù)庫的數(shù)據(jù)關(guān)聯(lián)性分析,提供有效的數(shù)據(jù)分析和統(tǒng)計,實現(xiàn)數(shù)據(jù)的有效利用和價值利用。轉(zhuǎn)儲過程中可以對數(shù)據(jù)的頻度和周期進行適度的數(shù)值計算,并且根據(jù)存儲要求進行轉(zhuǎn)移表的數(shù)據(jù)歸檔。
實時數(shù)據(jù)庫與數(shù)據(jù)采集在相同的SCADA節(jié)點上,客戶程序可以通過LRDA或者RDA接口獲取實時過程數(shù)據(jù)或下發(fā)控制指令。實時數(shù)據(jù)庫部署圖所示。
實時數(shù)據(jù)庫的數(shù)據(jù)類型
支持狀態(tài)量Digital、整數(shù)量int(8、16、32、64)、模擬量Float(32、64),字符串String、二進制數(shù)據(jù)Blob。
實時數(shù)據(jù)庫數(shù)據(jù)采集方式
可直接對底層設(shè)備進行數(shù)據(jù)采集,也可與綜合監(jiān)控軟件通過接口互聯(lián)方式進行數(shù)據(jù)采集,也支持從Oracle關(guān)系數(shù)據(jù)庫中獲取數(shù)據(jù)。
支持通過OPC標準協(xié)議從DCS或SCADA等工業(yè)系統(tǒng)設(shè)備中采集數(shù)據(jù)。
實時數(shù)據(jù)庫的重要使用方式為:
趨勢顯示:通過曲線和數(shù)字展示歷時數(shù)據(jù),直觀的顯示模擬量變化趨勢,可以同時顯示多個監(jiān)視量的趨勢,以便比較。操作員可選擇趨勢畫面窗口中任意一條曲線,完成放大、縮小、上移、下移等操作,坐標刻度值隨之改變。
圖表顯示:使用圖表對象顯示歷史趨勢。使用趨勢標簽可定義數(shù)據(jù)來自的節(jié)點(本地或遠程節(jié)點),設(shè)置數(shù)據(jù)的采集速度,設(shè)定采集組。然后啟動歷史采集程序開始采集數(shù)據(jù),并把數(shù)據(jù)保存在文件中,生成歷史庫,最后用圖表顯示歷史趨勢。
采用了三級數(shù)據(jù)壓縮機制,分別部署在服務器內(nèi)核內(nèi)存、服務器內(nèi)核硬盤、客戶端,使用三級數(shù)據(jù)壓縮的優(yōu)勢是集成了無損及有損壓縮算法,可針對不同類型的數(shù)據(jù)分別進行不同的壓縮算法,提高了效率,極大降低了過程數(shù)據(jù)的冗余度,從而節(jié)約了大量存儲過程,提高了海量數(shù)據(jù)的存儲能力。
采用了數(shù)據(jù)的多層存儲架構(gòu),即兩級內(nèi)存Cache緩存和兩級硬盤Cache系統(tǒng)。為了應對海量數(shù)據(jù)的檢索,數(shù)據(jù)庫索引體系的高效性尤為重要,因此在體系中采取了Hash索引算法,可以保證在秒級查詢幾年內(nèi)的歷史數(shù)據(jù)。除了對存儲架構(gòu)、檢索系統(tǒng)優(yōu)化之外,還對磁盤文件進行系統(tǒng)管理,在保證數(shù)據(jù)高速讀寫的情況下,實現(xiàn)數(shù)據(jù)的有序存儲,盡量減少磁盤碎片。
通過使用操作系統(tǒng)的相關(guān)功能,當進程異常停止時,保證數(shù)據(jù)的完整性。在保證數(shù)據(jù)安全性的同時,輔以完善的日志系統(tǒng),當內(nèi)核系統(tǒng)發(fā)生非硬盤故障時,日志系統(tǒng)可以保證內(nèi)核修復后繼續(xù)正常運行,在故障修復后,系統(tǒng)可在秒級時間內(nèi)完成恢復工作,繼續(xù)響應客戶端的業(yè)務請求。
實時數(shù)據(jù)庫可支持多硬盤系統(tǒng),在通過增加硬盤的方式進行系統(tǒng)擴容后,不僅可以增加存儲數(shù)據(jù)容量,同時實時數(shù)據(jù)庫可動態(tài)調(diào)整磁盤間的負載均衡能力,從而提高系統(tǒng)的數(shù)據(jù)處理能力。
系統(tǒng)運行期間可通過某一臺客戶端對數(shù)據(jù)庫進行任意操作,增刪改數(shù)據(jù)源,并將操作結(jié)果同步通知所有應用客戶端。
為了適應不同的應用環(huán)境,實時數(shù)據(jù)庫支持多種操作系統(tǒng),如WINDOWS/LINUX/UNIX等。
橋隧監(jiān)控中設(shè)備種類繁多,設(shè)備接入的數(shù)據(jù)點格式各種各樣,有整數(shù)、浮點數(shù)、字符串、Blob等多種類型,實時數(shù)據(jù)庫都可以支持。
采用分布式架構(gòu),可通過增加數(shù)據(jù)節(jié)點(最大128個),實現(xiàn)系統(tǒng)容量和性能的擴展。
可對每個數(shù)據(jù)節(jié)點進行軟冗余,當一個數(shù)據(jù)節(jié)點發(fā)生故障時,另外一個數(shù)據(jù)節(jié)點通過故障檢測消息機制進行切換,確保系統(tǒng)可以正常工作,從而保證數(shù)據(jù)的完整性。若發(fā)生網(wǎng)絡(luò)中斷情況,可在采集端進行離線緩存技術(shù),在網(wǎng)絡(luò)恢復后,數(shù)據(jù)自動發(fā)送至服務器上,從而保證沒有數(shù)據(jù)丟失。
目前橋隧的綜合監(jiān)控只是達到了智能化和信息化的水平,隨著實時數(shù)據(jù)庫的不斷發(fā)展及應用,橋隧監(jiān)控的智慧化控制將是一個全新的發(fā)展方向。