李朝霞
(山西省交通科學(xué)研究院,山西 太原 030006)
高速公路隧道監(jiān)控系統(tǒng)在整個高速公路的運營管理以及緊急預(yù)案處理中發(fā)揮著極其重要的作用。隧道監(jiān)控系統(tǒng)主要完成對監(jiān)控區(qū)段內(nèi)所有隧道的全面監(jiān)視和控制,能實時監(jiān)測交通狀況、現(xiàn)場機(jī)電設(shè)備的工作狀態(tài)和環(huán)境參數(shù)等信息;能通過先進(jìn)的監(jiān)控手段對交通進(jìn)行宏觀控制,以確保整個路段達(dá)到最佳運行狀態(tài);能及時發(fā)現(xiàn)事故并協(xié)助處理,建立智能的交通決策系統(tǒng),實現(xiàn)各個子系統(tǒng)的聯(lián)動控制,防止二次事故的發(fā)生;能預(yù)告交通擁擠和阻塞路段,及時疏散擁擠阻塞的交通流,減少交通延誤和損失,提高高速公路路網(wǎng)服務(wù)水平。
數(shù)據(jù)采集、實時控制、實時數(shù)據(jù)庫、通信及聯(lián)網(wǎng)、對I/O設(shè)備的支持等是隧道監(jiān)控系統(tǒng)設(shè)計需要考慮的主要內(nèi)容。隧道監(jiān)控系統(tǒng)需要監(jiān)控的現(xiàn)場設(shè)備復(fù)雜多樣,數(shù)據(jù)交互方式千差萬別,而且隨著大數(shù)據(jù)時代的來臨,各省都建立了省級隧道監(jiān)控數(shù)據(jù)中心,要求各隧道監(jiān)控數(shù)據(jù)實時存儲并上傳,這就需要有一個實時數(shù)據(jù)庫作為隧道監(jiān)控系統(tǒng)數(shù)據(jù)管理的核心。
目前,許多應(yīng)用中的隧道監(jiān)控系統(tǒng)從嚴(yán)格意義上講并沒有真正的實時數(shù)據(jù)庫,只是在系統(tǒng)設(shè)計時開發(fā)了簡單的數(shù)據(jù)管理功能。若將系統(tǒng)產(chǎn)生的數(shù)據(jù)直接存儲,一方面會占用大量的系統(tǒng)存儲空間,另一方面還會直接影響數(shù)據(jù)的傳輸速度,降低數(shù)據(jù)讀取的實時性,極易出現(xiàn)系統(tǒng)卡死的現(xiàn)象。有一些較先進(jìn)的隧道監(jiān)控組態(tài)軟件具備獨立的實時數(shù)據(jù)庫組件,但其核心技術(shù)是保密的。除此之外,目前隧道監(jiān)控系統(tǒng)都要求具備歷史數(shù)據(jù)長期存儲功能,要保存的歷史數(shù)據(jù)非常多,這就涉及到如何合理規(guī)劃存儲方式的問題。
針對以上問題,部分隧道監(jiān)控系統(tǒng)另外配置了先進(jìn)的實時數(shù)據(jù)庫系統(tǒng)(如PI數(shù)據(jù)庫、Info2Plus.21產(chǎn)品等),有的使用組態(tài)工業(yè)實時數(shù)據(jù)庫,配合組態(tài)軟件一起使用,有的則結(jié)合實時數(shù)據(jù)庫技術(shù)和關(guān)系數(shù)據(jù)庫設(shè)計了監(jiān)控系統(tǒng)的實時數(shù)據(jù)庫系統(tǒng)。本文就實時數(shù)據(jù)庫技術(shù)在隧道監(jiān)控系統(tǒng)中的應(yīng)用展開研究。
實時數(shù)據(jù)庫(RTDB-Real Time Database)是數(shù)據(jù)庫系統(tǒng)發(fā)展的一個分支,是數(shù)據(jù)庫技術(shù)結(jié)合實時處理技術(shù)產(chǎn)生的。實時數(shù)據(jù)庫并不是數(shù)據(jù)庫技術(shù)和實時系統(tǒng)兩者的簡單結(jié)合,而需要對實時數(shù)據(jù)庫一系列的概念、理論、技術(shù)、方法和機(jī)制進(jìn)行逐一研究和開發(fā)。
實時數(shù)據(jù)庫應(yīng)具有永久的數(shù)據(jù)管理、有效的數(shù)據(jù)存取、任務(wù)的調(diào)度與并發(fā)控制、存取控制和安全性檢查、數(shù)據(jù)庫恢復(fù)機(jī)制等基本功能,同時還要滿足事務(wù)的實時性和高效性。目前市場上流行的實時數(shù)據(jù)庫產(chǎn)品,國外主要有美國OSI公司推出的PI數(shù)據(jù)庫(適用于電力、石油、化工行業(yè))、美國ASPEN公司的Info2Plus.21產(chǎn)品(主要應(yīng)用于石油、化工領(lǐng)域)、英國Wonderware公司的Industrial SQL Sever產(chǎn)品(主要適用于工廠生產(chǎn)層管理等),國內(nèi)主要有力控、SuperInfo等。
以下文獻(xiàn)介紹了實時數(shù)據(jù)庫在各個行業(yè)中監(jiān)控系統(tǒng)中的應(yīng)用:文獻(xiàn)[1-2]介紹了實時數(shù)據(jù)庫在化工企業(yè)的工業(yè)監(jiān)控系統(tǒng)中的應(yīng)用,分析了石化企業(yè)大型實時數(shù)據(jù)庫的應(yīng)用環(huán)境和功能需求,并介紹了應(yīng)用后的效果;文獻(xiàn)[3-5]針對電力行業(yè)監(jiān)控系統(tǒng)對實時數(shù)據(jù)庫對數(shù)據(jù)平臺、數(shù)據(jù)存儲效率、接口技術(shù)和系統(tǒng)訪問結(jié)構(gòu)等方面的要求,做出了相應(yīng)的設(shè)計;文獻(xiàn)[6-8]介紹了PI實時數(shù)據(jù)庫在電廠SIS系統(tǒng)、石油化工和風(fēng)力發(fā)電監(jiān)控系統(tǒng)中的應(yīng)用;文獻(xiàn)[9]介紹了國產(chǎn)數(shù)據(jù)庫三維力控在勝利油田中的應(yīng)用;文獻(xiàn)[10]對某石化企業(yè)聚乙烯生產(chǎn)過程監(jiān)控系統(tǒng)的實時數(shù)據(jù)庫進(jìn)行了應(yīng)用設(shè)計,開發(fā)了接口程序并將PI實時數(shù)據(jù)庫應(yīng)用于現(xiàn)場;文獻(xiàn) [11]以封裝嵌入式數(shù)據(jù)庫Berkeley DB作為內(nèi)存數(shù)據(jù)庫,結(jié)合實時任務(wù)調(diào)度系統(tǒng),設(shè)計了適合監(jiān)控組態(tài)軟件的高性能實時數(shù)據(jù)庫。
通過上述文獻(xiàn)的綜述可知:監(jiān)控領(lǐng)域中實時數(shù)據(jù)庫的應(yīng)用越來越廣泛,研究也越來越深入,無論是應(yīng)用國外先進(jìn)的實時數(shù)據(jù)庫還是自主開發(fā)組件配合實時數(shù)據(jù)庫的應(yīng)用,或是自主開發(fā)監(jiān)控系統(tǒng)數(shù)據(jù)庫等,都可以實現(xiàn)相應(yīng)功能。實時數(shù)據(jù)庫關(guān)系到監(jiān)控系統(tǒng)的實時性、可靠性和穩(wěn)定性,合理的設(shè)計有助于監(jiān)控系統(tǒng)性能的更好發(fā)揮。而且在許多領(lǐng)域中,實時數(shù)據(jù)庫還可為先進(jìn)的控制算法、模型辨識、在線優(yōu)化、預(yù)測控制等提供必不可少的數(shù)據(jù)支持。
隧道監(jiān)控系統(tǒng)在隧道監(jiān)控信息化環(huán)境中起到承上啟下的作用,它向下與底層的現(xiàn)場設(shè)備互聯(lián),向上與信息管理層互通。隧道監(jiān)控系統(tǒng)的體系結(jié)構(gòu)如圖1所示,可分為I/O驅(qū)動系統(tǒng)、實時數(shù)據(jù)庫系統(tǒng)和圖形界面系統(tǒng)3層。
從圖中可以看出,隧道現(xiàn)場設(shè)備與I/O驅(qū)動系統(tǒng)相連,通過它與監(jiān)控系統(tǒng)進(jìn)行通訊,相互交換數(shù)據(jù);中間層的實時數(shù)據(jù)庫系統(tǒng)作為數(shù)據(jù)管理的中心,負(fù)責(zé)數(shù)據(jù)處理、存儲、報警監(jiān)測、數(shù)據(jù)計算與控制;最上層的圖形界面系統(tǒng)直接面向用戶,顯示隧道實時運行狀態(tài)并下發(fā)用戶的各類控制指令。由此可見,實時數(shù)據(jù)庫系統(tǒng)在隧道監(jiān)控系統(tǒng)中扮演著“黑匣子”的角色。
圖1 隧道監(jiān)控系統(tǒng)體系結(jié)構(gòu)
隧道監(jiān)控系統(tǒng)需要交互的數(shù)據(jù)源多,并且多為動態(tài)數(shù)據(jù),大致有以下特征。
3.1.1 數(shù)據(jù)源多
隧道監(jiān)控系統(tǒng)監(jiān)控的設(shè)備眾多,數(shù)據(jù)源一般涉及:車流量、車速、車道占有率、CO濃度、能見度、風(fēng)速風(fēng)向、洞內(nèi)外光強(qiáng)、火災(zāi)手報信息、光纖傳感器監(jiān)測數(shù)據(jù)、情報板數(shù)據(jù)、風(fēng)機(jī)狀態(tài)、照明狀態(tài)、車道指示器狀態(tài)、電話廣播狀態(tài)、視頻信息及對各類設(shè)備的控制參數(shù)等。
3.1.2 實時動態(tài)性
由于隧道內(nèi)監(jiān)控數(shù)據(jù)是時刻更新的,新的數(shù)據(jù)源源不斷產(chǎn)生,因此獲取數(shù)據(jù)時必須同步時間戳并快速更新,保證應(yīng)用層能及時獲取準(zhǔn)確的實時數(shù)據(jù)。
因此隧道監(jiān)控數(shù)據(jù)系統(tǒng)的實時數(shù)據(jù)庫除具備一般數(shù)據(jù)庫功能外,還應(yīng)具備以下功能:
a)提供與多個數(shù)據(jù)源的接口,通過各類通用或?qū)S媒涌谂cPLC、智能儀表等現(xiàn)場設(shè)備進(jìn)行通訊,讀寫通訊模塊中輸入/輸出的實時數(shù)據(jù),具備時間約束和高讀寫性能。
b)對輸入/輸出數(shù)據(jù)進(jìn)行處理,如數(shù)據(jù)進(jìn)入數(shù)據(jù)庫前對數(shù)據(jù)進(jìn)行上下限判斷、量程轉(zhuǎn)換、運算等,對發(fā)往現(xiàn)場的數(shù)據(jù)進(jìn)行輸出上下限檢測及完成輸出記錄等。
c)保存歷史數(shù)據(jù),新的數(shù)據(jù)產(chǎn)生后,舊的數(shù)據(jù)作為歷史數(shù)據(jù)存儲,支持對數(shù)據(jù)的邏輯壓縮和物理壓縮。
d)提供多種觸發(fā)機(jī)制和定時機(jī)制,保證數(shù)據(jù)的實時性、一致性和有效性。
e)提供腳本支持功能,支持多種運算操作、控制語句及函數(shù)等,以實現(xiàn)靈活的數(shù)字計算功能和高級的控制算法。
根據(jù)具體隧道監(jiān)控工程項目需求的不同,數(shù)據(jù)庫設(shè)計的內(nèi)容和側(cè)重點也會有所區(qū)別。總的來說,大致包括以下內(nèi)容:
a)將I/O變量表裝入實時數(shù)據(jù)庫中,用數(shù)組的形式存儲變量表中的內(nèi)容。
b)根據(jù)實時數(shù)據(jù)庫中的變量名稱,通過數(shù)據(jù)接口采集變量名對應(yīng)的現(xiàn)場數(shù)據(jù),并存入實時數(shù)據(jù)庫中。
c)根據(jù)不同的數(shù)據(jù)對象分別設(shè)計不同的實時數(shù)據(jù)表,用于存放實時數(shù)據(jù)的多種變量屬性。將采集的現(xiàn)場數(shù)據(jù)經(jīng)過相應(yīng)的數(shù)據(jù)處理后得到過程值。
d)將實時數(shù)據(jù)庫存儲到關(guān)系數(shù)據(jù)庫中,以便系統(tǒng)的再次調(diào)用。
e)對數(shù)據(jù)進(jìn)行分析,如判斷報警條件、報警類型、報警級別等,并存儲報警信息和歷史數(shù)據(jù)信息到關(guān)系數(shù)據(jù)庫中。
f)定義用戶程序接口函數(shù),以便用戶、其他程序能夠通過API函數(shù)訪問實時數(shù)據(jù)庫中的數(shù)據(jù)。
隧道監(jiān)控系統(tǒng)的實時數(shù)據(jù)庫需要高效采集不同數(shù)據(jù)接口采集到的現(xiàn)場數(shù)據(jù),能夠?qū)?shù)據(jù)進(jìn)行分析處理并存入關(guān)系數(shù)據(jù)庫中,同時需提供接口與其他應(yīng)用程序進(jìn)行對接。根據(jù)隧道監(jiān)控系統(tǒng)實時數(shù)據(jù)庫的需求特點,設(shè)計其結(jié)構(gòu)如圖2所示。
圖2 隧道監(jiān)控系統(tǒng)實時數(shù)據(jù)庫結(jié)構(gòu)設(shè)計
隧道監(jiān)控系統(tǒng)需要實時數(shù)據(jù)庫提供快速、準(zhǔn)確的實時信息,這就要求實時數(shù)據(jù)庫在系統(tǒng)運行過程中應(yīng)常駐內(nèi)存,占用空間盡可能小,以保證數(shù)據(jù)讀取和存儲的速度,可采用如下存儲策略[12]:
a)對于實時性要求高的動態(tài)數(shù)據(jù),為保證其響應(yīng)速度,將其存放于內(nèi)存;
b)對于需長期保存的歷史數(shù)據(jù),將其存于外部關(guān)系數(shù)據(jù)庫中;
c)對于系統(tǒng)內(nèi)部數(shù)據(jù),可存放于文件管理系統(tǒng)中。
實時數(shù)據(jù)庫以動態(tài)鏈接庫(DLL)的形式實現(xiàn),對外提供開放式的接口,用戶通過應(yīng)用編程接口(API)訪問數(shù)據(jù)庫。
隧道監(jiān)控系統(tǒng)的數(shù)據(jù)來源主要有由“組態(tài)軟件+PLC”建立的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、關(guān)系數(shù)據(jù)庫系統(tǒng)(如 Microsoft Access、SQL Server、Oracle)、直接連接硬件設(shè)備和通過人機(jī)界面人工錄入的數(shù)據(jù)。
根據(jù)采集的方式方法,其數(shù)據(jù)接口需考慮以下幾種:
a)通過調(diào)用I/O接口函數(shù)進(jìn)行數(shù)據(jù)采集和控制數(shù)據(jù)的回送。
b)通過OPC、DDE等標(biāo)準(zhǔn)接口規(guī)范與設(shè)備廠商或第三方提供的OPC/DDE服務(wù)器進(jìn)行數(shù)據(jù)通訊。
c)通過開放的標(biāo)準(zhǔn)數(shù)據(jù)庫接口(如ODBC、DAO、ADO等)與其他數(shù)據(jù)庫連接。
d)開發(fā)一組基于工業(yè)標(biāo)準(zhǔn)協(xié)議的驅(qū)動程序,如MODBUS等,并提供一套用戶編寫新驅(qū)動程序的方法和接口。驅(qū)動程序以DLL的形式連接到服務(wù)器,再通過COM技術(shù)完成與數(shù)據(jù)總線的通信,最終傳到實時數(shù)據(jù)庫中。
先進(jìn)的隧道監(jiān)控系統(tǒng)離不開實時數(shù)據(jù)庫系統(tǒng),它的性能關(guān)系到整個監(jiān)控系統(tǒng)運行的實時性和穩(wěn)定性。實時數(shù)據(jù)庫系統(tǒng)如何設(shè)計是隧道監(jiān)控系統(tǒng)開發(fā)的關(guān)鍵所在,合理的實時數(shù)據(jù)庫設(shè)計有助于隧道監(jiān)控系統(tǒng)性能的更好發(fā)揮,也可為整個高速公路的運營提供非常有價值的數(shù)據(jù)支撐。