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