劉 洋
摘 要:高速公路監(jiān)控系統(tǒng)能對高速公路交通流和道路氣候環(huán)境變化情況等信息進行實時檢測、分析和判斷,并對行駛車輛發(fā)出限速、誘導(dǎo)性指令。全文先介紹了高速監(jiān)控系統(tǒng)的重要性以及其組成,隨后從四個方面介紹了高速公路監(jiān)控通信系統(tǒng)的建設(shè)過程:即軟硬件建設(shè);服務(wù)器設(shè)置;通訊模塊涉及;事務(wù)管理模塊設(shè)計
關(guān)鍵詞:高速公路 通信 監(jiān)控
1.高速公路監(jiān)控通信系統(tǒng)建設(shè)的重要性
交通建設(shè)對國民經(jīng)濟的發(fā)展毫無疑問起著非常重要的作用,到2010年,我國高速公路總里程達到5萬千米[1]。相應(yīng)的硬件設(shè)施的配備,管理軟件系統(tǒng)的開發(fā)和應(yīng)用將對于提升我國高速公路的通行能力和管理水平具有非常重要的戰(zhàn)略意義。高速公路交通監(jiān)控系統(tǒng)作為高速公路機電工程的一部分,它配合收費系統(tǒng)、通信系統(tǒng)等技術(shù)內(nèi)容共同完成高速公路資源的合理利用以及提高科學(xué)的管理水平。高速公路交通監(jiān)控系統(tǒng)一般包括實時監(jiān)控子系統(tǒng)、車流量檢測子系統(tǒng)、氣象檢測子系統(tǒng)、還有執(zhí)行交通控制的可變情報板、可變限速標志子系統(tǒng)等。
2.高速公路監(jiān)控通信系統(tǒng)組成
高速公路交通監(jiān)控系統(tǒng)由數(shù)據(jù)通信軟件子系統(tǒng)、交通監(jiān)控子系統(tǒng)、圖形顯示軟件子系統(tǒng)和數(shù)據(jù)庫服務(wù)器子系統(tǒng)構(gòu)成。它們在高速公路交通監(jiān)控系統(tǒng)中承擔(dān)不同的角色,完成不同的任務(wù),其結(jié)構(gòu)如圖1所示:
高速通信系統(tǒng)的四個組成部分的功能如下:(1)數(shù)據(jù)通信軟件子系統(tǒng):主要負責(zé)采集外場設(shè)備(車輛檢測器、氣象檢測器)的實時信息,并下傳控制指令給外場的情報板和信號燈。(2)交通控制軟件子系統(tǒng):負責(zé)將數(shù)據(jù)通信軟件子系統(tǒng)采集的、經(jīng)處理的外場設(shè)備的實時信息顯示出來,并承擔(dān)向外場的情報板和信號燈發(fā)布指令的功能。(3)圖形監(jiān)視子系統(tǒng):顯示整個路段的全部信息以及該路段周邊的一些附屬信息。外場設(shè)備以圖標形式顯示在路段的相應(yīng)位置上,并且可以顯示其工作狀態(tài)和具體的內(nèi)容。(4)數(shù)據(jù)庫服務(wù)器子系統(tǒng):數(shù)據(jù)庫服務(wù)器將數(shù)據(jù)通信軟件子系統(tǒng)采集到的外場設(shè)備的數(shù)據(jù),以及整個監(jiān)控系統(tǒng)所需的參數(shù)數(shù)據(jù)存放在數(shù)據(jù)庫的表中,并還保存了用于對工作人員使用本系統(tǒng)進行安全管理的人員身份表和系統(tǒng)操作記錄表。
3.通信系統(tǒng)建設(shè)
在通信光纜等硬件設(shè)施施工完畢后,通信系統(tǒng)的建設(shè)分還為服務(wù)器建設(shè),通訊模塊的建設(shè)以及事務(wù)管理模塊建設(shè)。
3.1 軟硬件建設(shè)
高速監(jiān)控的數(shù)據(jù)信息量大,因此網(wǎng)絡(luò)結(jié)構(gòu)的傳輸速率應(yīng)不低于100Mb/s,網(wǎng)絡(luò)類型為以太網(wǎng)局域網(wǎng),拓補結(jié)構(gòu)為總線型局域網(wǎng),傳輸協(xié)議采用通用的TCP/IP協(xié)議??蛻魴C的操作系統(tǒng)為有多任務(wù)處理能力的Windows 2000 Professional,系統(tǒng)開發(fā)工具可以選用Delphi,數(shù)據(jù)庫系統(tǒng)采用ORACLE。其他信息采集設(shè)備包括攝像頭,氣象設(shè)備,消防設(shè)備,通風(fēng)設(shè)備,照明設(shè)備等應(yīng)根據(jù)實際需要進行配置。
3.2 服務(wù)器設(shè)置
對高速而言,安全終于泰山,因此高速網(wǎng)絡(luò)監(jiān)控系統(tǒng)必須保證穩(wěn)定,基于此選擇比較流行的雙服務(wù)器配置方案:兩臺服務(wù)器+共享磁盤陣列構(gòu)成高可用系統(tǒng),該系統(tǒng)的服務(wù)監(jiān)測模塊可以互相監(jiān)測對方的心跳,進行故障檢測與恢復(fù)以及時間同步等。故障檢測是實現(xiàn)雙服務(wù)器系統(tǒng)最初的步驟;心跳檢測是指每隔一段時間客戶端就向兩個服務(wù)器發(fā)送的廣播包的狀態(tài),檢測兩個服務(wù)器的存活狀態(tài);故障恢復(fù)是基于雙服務(wù)器系統(tǒng)存儲了前一狀態(tài),當(dāng)系統(tǒng)出現(xiàn)故障時,模擬時間反向的情況,它包括了重試、記錄運行口志、回滾和檢查點等方法;時鐘的同步是分布式系統(tǒng)的重要環(huán)節(jié),本系統(tǒng)采用主仆式及時間服務(wù)器的時間同步化策略:在系統(tǒng)中建立一個或若干個具有高可信度與有效度的時間服務(wù)器,而系統(tǒng)中其他節(jié)點則通過通信網(wǎng)路與服務(wù)器直接地擷取正確的時間來修正各自的時間,進而達到整個系統(tǒng)中各節(jié)點時間上的同步。
3.3 通訊模塊設(shè)計
通訊模塊的設(shè)計分為通訊數(shù)據(jù)包設(shè)計,線程實現(xiàn)等。
(1)通訊數(shù)據(jù)包設(shè)計。網(wǎng)絡(luò)系統(tǒng)中傳遞的包分為兩類,請求包和應(yīng)答包:請求包包括登錄請求包、心跳監(jiān)測請求包、各種查詢請求包、各種控制請求包等。應(yīng)答包包括登錄應(yīng)答包、心跳監(jiān)測應(yīng)答包、各種查詢應(yīng)答包、各種控制應(yīng)答包等。網(wǎng)絡(luò)通訊中設(shè)計的TCP通訊包的前24byte用于存放TCP通訊包的整體信息,以便Socket接收以及數(shù)據(jù)分析模塊區(qū)別TCP通訊包的類型和目的并傳遞到相應(yīng)的圖形模塊,因此系統(tǒng)用于TCP通信的Socket也有4個。由于在通信模塊中每個線程只控制數(shù)據(jù)的發(fā)送或接收,為了控制的方便所有的Socket都為單工,分別是:Send Socket A(客戶端向服務(wù)器A發(fā)送數(shù)據(jù));Rec Socket A(服務(wù)器A向客戶端發(fā)送數(shù)據(jù));Send Socket B(客戶端Ib服務(wù)器B發(fā)送數(shù)據(jù));Rec Socket B(客戶端向服務(wù)器B發(fā)送數(shù)據(jù))。 四個Socket的發(fā)送端端口固定,接受端端口為隨機生成,結(jié)構(gòu)如圖2所示:
系統(tǒng)建立stocket的過程如下:首先建立客戶端向服務(wù)器端發(fā)送數(shù)據(jù)Send Socket的連接,然后建立客戶端接受服務(wù)器端數(shù)據(jù)的Receive Socket連接。當(dāng)這兩個連接都建立以后,才說明客戶端與服務(wù)器端連接建立成功。通訊模塊的主要代碼有:
數(shù)據(jù)發(fā)送時[2]:
int index;
index=WaitHandle.WaitAny(new AutoResetEvent)
{TimeOutEvent,ReconnectEvent,ReceiveANS,HealthCheckInfo,changeserver,ThreadClose};
switch (index)
{case 0:ProcessTimeOut();break;//超時
case 1:ProcessReconnect();break;
case 2:ProcessReceiveACK();break;}
(2) 線程實現(xiàn)。主要有兩個線程:DeviceThread和GetOrderThread,前者用于發(fā)送命令,采集參量,將參量寫回服務(wù)器,后者用于從服務(wù)器讀取監(jiān)控機下發(fā)的命令,并調(diào)度前者。 DeviceThread線程類的實現(xiàn)方式如下:按照面向?qū)ο蟮姆椒ㄟM行分析與設(shè)計,將設(shè)備封裝成對象。外圍通信設(shè)備的通信都在DeviceThread線程類中實現(xiàn)。每一個串口對應(yīng)一個DeviceThread的實例,同時對應(yīng)一個ConunandQueue,在需要從該串口發(fā)送命令時動態(tài)生成,以節(jié)約系統(tǒng)資源。每次發(fā)送一個命令后,清空ConunandQueu中的第一個元素,其余元素依次前移,從而實現(xiàn)命令的排隊發(fā)送。
3.3 事務(wù)管理模塊設(shè)計
事務(wù)處理模塊分為查詢統(tǒng)計模塊、道路、隧道管理模塊、變電站管理模塊:查詢統(tǒng)計模塊用于收集用戶查詢信息,將該信息傳遞給通信模塊;橋梁、隧道、道路等管理模塊用于不同路段不同設(shè)備的狀況顯示,并收集用戶的控制信息將該信息傳遞給通信模塊;變電站管理模塊用于各個變電站不同設(shè)備的狀態(tài)顯示,并收集用戶的控制信息將該信息傳遞給通信模塊。具體實現(xiàn)時,橋梁模塊負責(zé)監(jiān)視橋梁的道路運行情況,隧道模塊負責(zé)監(jiān)視隧道交通情況,道路模塊則堅實非橋梁和隧道的道路情況。
4.結(jié)束語
本監(jiān)控系統(tǒng)軟件在總結(jié)以前高速公路監(jiān)控系統(tǒng)軟件基礎(chǔ)上,從更高的層次進行了系統(tǒng)分析和設(shè)計,建立了一個基于組件開發(fā)的軟件平臺,實現(xiàn)了與不同的高速公路監(jiān)測設(shè)備和信息發(fā)布設(shè)備的集成,從而可迅速部署于不同的高速公路應(yīng)用環(huán)境。
參考文獻:
[1]中華人民共和國交通部網(wǎng)站.國家高速公路網(wǎng)規(guī)劃
http://www.moc.gov.cn/zizhan/siju/
guihuasi/gongluguihua_GL/gongluguihua/
[2]王建軍.高速公路管理設(shè)施系統(tǒng)設(shè)計理論與方法[M].人民交通出版社.2008(6)?