李朝霞
(山西省交通科學研究院,山西 太原 030006)
高速公路隧道監控系統在整個高速公路的運營管理以及緊急預案處理中發揮著極其重要的作用。隧道監控系統主要完成對監控區段內所有隧道的全面監視和控制,能實時監測交通狀況、現場機電設備的工作狀態和環境參數等信息;能通過先進的監控手段對交通進行宏觀控制,以確保整個路段達到最佳運行狀態;能及時發現事故并協助處理,建立智能的交通決策系統,實現各個子系統的聯動控制,防止二次事故的發生;能預告交通擁擠和阻塞路段,及時疏散擁擠阻塞的交通流,減少交通延誤和損失,提高高速公路路網服務水平。
數據采集、實時控制、實時數據庫、通信及聯網、對I/O設備的支持等是隧道監控系統設計需要考慮的主要內容。隧道監控系統需要監控的現場設備復雜多樣,數據交互方式千差萬別,而且隨著大數據時代的來臨,各省都建立了省級隧道監控數據中心,要求各隧道監控數據實時存儲并上傳,這就需要有一個實時數據庫作為隧道監控系統數據管理的核心。
目前,許多應用中的隧道監控系統從嚴格意義上講并沒有真正的實時數據庫,只是在系統設計時開發了簡單的數據管理功能。若將系統產生的數據直接存儲,一方面會占用大量的系統存儲空間,另一方面還會直接影響數據的傳輸速度,降低數據讀取的實時性,極易出現系統卡死的現象。有一些較先進的隧道監控組態軟件具備獨立的實時數據庫組件,但其核心技術是保密的。除此之外,目前隧道監控系統都要求具備歷史數據長期存儲功能,要保存的歷史數據非常多,這就涉及到如何合理規劃存儲方式的問題。
針對以上問題,部分隧道監控系統另外配置了先進的實時數據庫系統(如PI數據庫、Info2Plus.21產品等),有的使用組態工業實時數據庫,配合組態軟件一起使用,有的則結合實時數據庫技術和關系數據庫設計了監控系統的實時數據庫系統。本文就實時數據庫技術在隧道監控系統中的應用展開研究。
實時數據庫(RTDB-Real Time Database)是數據庫系統發展的一個分支,是數據庫技術結合實時處理技術產生的。實時數據庫并不是數據庫技術和實時系統兩者的簡單結合,而需要對實時數據庫一系列的概念、理論、技術、方法和機制進行逐一研究和開發。
實時數據庫應具有永久的數據管理、有效的數據存取、任務的調度與并發控制、存取控制和安全性檢查、數據庫恢復機制等基本功能,同時還要滿足事務的實時性和高效性。目前市場上流行的實時數據庫產品,國外主要有美國OSI公司推出的PI數據庫(適用于電力、石油、化工行業)、美國ASPEN公司的Info2Plus.21產品(主要應用于石油、化工領域)、英國Wonderware公司的Industrial SQL Sever產品(主要適用于工廠生產層管理等),國內主要有力控、SuperInfo等。
以下文獻介紹了實時數據庫在各個行業中監控系統中的應用:文獻[1-2]介紹了實時數據庫在化工企業的工業監控系統中的應用,分析了石化企業大型實時數據庫的應用環境和功能需求,并介紹了應用后的效果;文獻[3-5]針對電力行業監控系統對實時數據庫對數據平臺、數據存儲效率、接口技術和系統訪問結構等方面的要求,做出了相應的設計;文獻[6-8]介紹了PI實時數據庫在電廠SIS系統、石油化工和風力發電監控系統中的應用;文獻[9]介紹了國產數據庫三維力控在勝利油田中的應用;文獻[10]對某石化企業聚乙烯生產過程監控系統的實時數據庫進行了應用設計,開發了接口程序并將PI實時數據庫應用于現場;文獻 [11]以封裝嵌入式數據庫Berkeley DB作為內存數據庫,結合實時任務調度系統,設計了適合監控組態軟件的高性能實時數據庫。
通過上述文獻的綜述可知:監控領域中實時數據庫的應用越來越廣泛,研究也越來越深入,無論是應用國外先進的實時數據庫還是自主開發組件配合實時數據庫的應用,或是自主開發監控系統數據庫等,都可以實現相應功能。實時數據庫關系到監控系統的實時性、可靠性和穩定性,合理的設計有助于監控系統性能的更好發揮。而且在許多領域中,實時數據庫還可為先進的控制算法、模型辨識、在線優化、預測控制等提供必不可少的數據支持。
隧道監控系統在隧道監控信息化環境中起到承上啟下的作用,它向下與底層的現場設備互聯,向上與信息管理層互通。隧道監控系統的體系結構如圖1所示,可分為I/O驅動系統、實時數據庫系統和圖形界面系統3層。
從圖中可以看出,隧道現場設備與I/O驅動系統相連,通過它與監控系統進行通訊,相互交換數據;中間層的實時數據庫系統作為數據管理的中心,負責數據處理、存儲、報警監測、數據計算與控制;最上層的圖形界面系統直接面向用戶,顯示隧道實時運行狀態并下發用戶的各類控制指令。由此可見,實時數據庫系統在隧道監控系統中扮演著“黑匣子”的角色。

圖1 隧道監控系統體系結構
隧道監控系統需要交互的數據源多,并且多為動態數據,大致有以下特征。
3.1.1 數據源多
隧道監控系統監控的設備眾多,數據源一般涉及:車流量、車速、車道占有率、CO濃度、能見度、風速風向、洞內外光強、火災手報信息、光纖傳感器監測數據、情報板數據、風機狀態、照明狀態、車道指示器狀態、電話廣播狀態、視頻信息及對各類設備的控制參數等。
3.1.2 實時動態性
由于隧道內監控數據是時刻更新的,新的數據源源不斷產生,因此獲取數據時必須同步時間戳并快速更新,保證應用層能及時獲取準確的實時數據。
因此隧道監控數據系統的實時數據庫除具備一般數據庫功能外,還應具備以下功能:
a)提供與多個數據源的接口,通過各類通用或專用接口與PLC、智能儀表等現場設備進行通訊,讀寫通訊模塊中輸入/輸出的實時數據,具備時間約束和高讀寫性能。
b)對輸入/輸出數據進行處理,如數據進入數據庫前對數據進行上下限判斷、量程轉換、運算等,對發往現場的數據進行輸出上下限檢測及完成輸出記錄等。
c)保存歷史數據,新的數據產生后,舊的數據作為歷史數據存儲,支持對數據的邏輯壓縮和物理壓縮。
d)提供多種觸發機制和定時機制,保證數據的實時性、一致性和有效性。
e)提供腳本支持功能,支持多種運算操作、控制語句及函數等,以實現靈活的數字計算功能和高級的控制算法。
根據具體隧道監控工程項目需求的不同,數據庫設計的內容和側重點也會有所區別。總的來說,大致包括以下內容:
a)將I/O變量表裝入實時數據庫中,用數組的形式存儲變量表中的內容。
b)根據實時數據庫中的變量名稱,通過數據接口采集變量名對應的現場數據,并存入實時數據庫中。
c)根據不同的數據對象分別設計不同的實時數據表,用于存放實時數據的多種變量屬性。將采集的現場數據經過相應的數據處理后得到過程值。
d)將實時數據庫存儲到關系數據庫中,以便系統的再次調用。
e)對數據進行分析,如判斷報警條件、報警類型、報警級別等,并存儲報警信息和歷史數據信息到關系數據庫中。
f)定義用戶程序接口函數,以便用戶、其他程序能夠通過API函數訪問實時數據庫中的數據。
隧道監控系統的實時數據庫需要高效采集不同數據接口采集到的現場數據,能夠對數據進行分析處理并存入關系數據庫中,同時需提供接口與其他應用程序進行對接。根據隧道監控系統實時數據庫的需求特點,設計其結構如圖2所示。

圖2 隧道監控系統實時數據庫結構設計
隧道監控系統需要實時數據庫提供快速、準確的實時信息,這就要求實時數據庫在系統運行過程中應常駐內存,占用空間盡可能小,以保證數據讀取和存儲的速度,可采用如下存儲策略[12]:
a)對于實時性要求高的動態數據,為保證其響應速度,將其存放于內存;
b)對于需長期保存的歷史數據,將其存于外部關系數據庫中;
c)對于系統內部數據,可存放于文件管理系統中。
實時數據庫以動態鏈接庫(DLL)的形式實現,對外提供開放式的接口,用戶通過應用編程接口(API)訪問數據庫。
隧道監控系統的數據來源主要有由“組態軟件+PLC”建立的控制系統、數據采集系統、關系數據庫系統(如 Microsoft Access、SQL Server、Oracle)、直接連接硬件設備和通過人機界面人工錄入的數據。
根據采集的方式方法,其數據接口需考慮以下幾種:
a)通過調用I/O接口函數進行數據采集和控制數據的回送。
b)通過OPC、DDE等標準接口規范與設備廠商或第三方提供的OPC/DDE服務器進行數據通訊。
c)通過開放的標準數據庫接口(如ODBC、DAO、ADO等)與其他數據庫連接。
d)開發一組基于工業標準協議的驅動程序,如MODBUS等,并提供一套用戶編寫新驅動程序的方法和接口。驅動程序以DLL的形式連接到服務器,再通過COM技術完成與數據總線的通信,最終傳到實時數據庫中。
先進的隧道監控系統離不開實時數據庫系統,它的性能關系到整個監控系統運行的實時性和穩定性。實時數據庫系統如何設計是隧道監控系統開發的關鍵所在,合理的實時數據庫設計有助于隧道監控系統性能的更好發揮,也可為整個高速公路的運營提供非常有價值的數據支撐。