摘 要:高速公路監(jiān)控系統是一個復雜的系統工程,主要涉及計算機網絡技術、計算機控制技術、分布式數據庫技術、組件技術、通信技術、圖形圖像處理技術等,以“某高速公路監(jiān)控系統”為背景,結合項目需求,簡要分析了硬件模塊劃分、軟件設計、設備控制和數據庫設計,分析、研究與概括了高速公路路段監(jiān)控系統的主要關鍵技術,為類似系統設計提供了思路和借鑒。
關鍵詞:高速公路; 監(jiān)控系統; 組件技術; 數據庫技術; 數據復制
中圖分類號:TN911-34
文獻標識碼:A
文章編號:1004-373X(2012)01-0167-05
Design of highway road monitoring system
ZHOU Ying
(Sichuan Institute of Information Technology, Gangyuan 628017, China)
Abstract:
The highway monitoring system is a complex system engineering, including computer network technology, computer control technology, distributed database technology, component technology, communication technology and image processing technology. Taking some highway monitoring system as background, combining the project requirement, the hardware and software modules, the device control and the database design are analyzed. The main key technology for the highway monitoring system is studied to provide design thinking and practice for similar system.
Keywords: expressway; monitoring system; component technique; database technique; data reproduction
收稿日期:2011-09-20
高速公路監(jiān)控系統是將先進的信息技術、數據傳輸技術、電子控制技術以及計算機處理技術等綜合運用于地面運輸管理體系[1]。建立高速公路監(jiān)控系統的目的是通過信息技術,采集各種交通數據,通過軟件對信息進行處理分析,形成控制策略,及時發(fā)布各種控制命令、交通信息,處理各種交通事故,疏導交通流,及時向有關部門提供各種服務(包括搶救受傷人員、拖走拋錨車輛損壞車輛、修理損壞路面損壞設備等),保證高速公路的安全暢通。
1 路段監(jiān)控系統的設計
1.1 系統設計
根據路段監(jiān)控系統需要完成的實際任務,結合計算機技術,從設計者角度,高速公路路段監(jiān)控中心硬件方案如圖1所示[2]。
1.2 模塊設計
監(jiān)控中心計算機系統負責全路信息的采集處理以及命令的發(fā)布,主要由數據庫服務器、交通監(jiān)控、通信系統、地圖板、圖形處理、緊急電話等主要模塊組成,如圖2所示。
圖1 監(jiān)控中心硬件方案
圖2 路段監(jiān)控系統模塊組成
路段監(jiān)控中心計算機系統采用C/S(即客戶機/服務器)工作模式,服務器負責運算與信息存儲,客戶機負責處理用戶界面。服務器和工作站通過計算機網絡設備連成一個局域網。通過相關的計算機對大屏幕投影儀、視頻切換矩陣、電視墻、地圖板等設備進行控制。
通信模塊是外場信息進入系統的入口,同時也是系統向外場設備發(fā)送指令的出口,在軟件系統中起著信息上傳下達的重要作用。它的功能主要是負責與外場監(jiān)控設備收發(fā)控制及反饋信息以及系統的時鐘校對等。
通信系統接入網為本路段外場監(jiān)控設備(除攝像機外)和監(jiān)控分中心之間的數據交互提供通信通道,外場監(jiān)控設備采集的信息通過專線調制解調器送至就近的通信站,匯總后將數據傳至監(jiān)控分中心,主要功能有:通信協議的制訂,信息采集,信息顯示,指令下發(fā),時鐘校對等[1,4],之間的關系如圖3所示。
圖3 信息處理系統關系
視頻監(jiān)控模塊在路段監(jiān)控系統中,對需要隨時了解全面情況的重要地點利用車輛檢測器等設備往往難以獲得完整的信息,使用視頻監(jiān)控的手段能夠將現場數據傳送到監(jiān)控室,使監(jiān)控人員看到檢測地點的全面情況,對交通事件進行確認。
系統模塊主要負責進行系統初始化參數設置,同時把原始數據分析出來的數據及人工輸入的事件數據以報表和圖形的方式顯示和打印出來,便于查詢整理。主要功能有:管理參數、外場設備的管理、用戶管理、數據處理、事件輸入、數據查詢打印、數據統計打印、數據維護等。
交通控制模塊按監(jiān)控軟件的約定從數據庫服務器中讀取高速公路路段設備(能見度檢測器、車量檢測器、可變情報扳、可變限速標志)的狀態(tài)信息,及對高速公路上車流量、車速等的檢測信息。并對其進行分析處理產生當前的大陸交通狀況及其氣象狀況,下達到外場控制設備,顯示如限速值、告警等相關的信息,提示駕駛員注意行車安全。該模塊的主要功能是對交通和氣象等異常事件進行快速反應,為決策者提供處理方案,實現的主要功能有:交通及氣象檢測數據門限值的設置、交通異常檢測及處理、氣象異常檢測及處理等。
1.3 數據庫設計
外場設備數據不是存儲在廣元監(jiān)控中心一個點上,而是根據就近原則分散存儲在各個節(jié)點上,各分中心負責各自管轄范圍各工作站上傳數據的存儲、交換和維護,這樣分散存儲數據的方式不但減少了網絡流量和單個數據服務器上的負擔,同時,如果某一個服務器失效,用戶可以及時轉向另外的服務器繼續(xù)工作。這些分散的數據邏輯上卻是一個整體,它們被本監(jiān)控系統的所有用戶(全局用戶)共享,整個系統采用客戶/服務器體系結構,使用數據復制技術,實現各節(jié)點數據的同步、實時更新,以保持各分中心及監(jiān)控中心在數據上的高度一致,監(jiān)控系統數據庫服務器拓撲結構如圖4所示。
圖4 數據庫服務器拓撲結構示意圖
1.4 軟件設計
路段監(jiān)控系統應用軟件主要負責實現具體的數據采集、處理和控制功能,支持系統以自動控制和手動控制兩種模式運行,并能實現必要的聯動控制。主要是通過程序處理的方式來完成信息采集、傳輸、處理和發(fā)布等主要任務。根據108線廣元段工程建設指揮部的實際要求,結合高速公路監(jiān)控系統國家標準設計出來的信息處理方案如圖5所示。
圖5 信息處理方案
監(jiān)控系統通過通信模塊按系統設定的周期以輪詢的方式,收集各監(jiān)測站點的車輛和能見度等信息,對原始數據進行簡單的分析,判斷是否要報警和顯示,如果要報警,則按預定的方案進行報警;如要顯示,則按預定的方案進行顯示。并同時把這次采集信息處理的結果寫入數據庫中。寫入數據庫中的信息主要包括車輛檢測器、能見度監(jiān)測器、可變情報板和可變限速標志的狀態(tài)等檢測。
路段監(jiān)控信息處理是按監(jiān)控軟件的約定從數據庫服務器中讀取通信模塊送入的數據,并對其進行分析處理產生當前的大陸交通狀況及其氣象狀況,當交通狀況臨界飽和狀態(tài)和發(fā)生交通阻塞或氣象狀況達到設定的門限值時,系統將產生報警并自動提出相應的控制策略(經操作員確認)產生相應的指令代碼送入中心數據庫,經通信模塊取出后,下達到外場控制設備,顯示如限速值、告警等相關的信息,提示駕駛員注意行車安全。該模塊的主要功能是對交通和氣象等異常事件進行快速反應,為決策者提供處理方案,信息處理軟件實現流程如圖6所示。
圖6 信息處理軟件流程
2 組件技術在路段監(jiān)控系統的應用
組件技術就是利用某種編程手段,將不便于讓最終用戶去直接操作的細節(jié)進行封裝,用于處理用戶的內部操作細節(jié),封裝體就稱作組件。組件可以用任何支持組件編寫的工具來完成,而最終完成的組件是與語言本身已經沒有了任何的關系,甚至可以實現跨平臺。
2.1 Delphi組件的層次結構
一般情況下,VCL的組件可以從TComponent開始。其最明顯的特征就是它的屬性可以在設計時通過對象查看器來操縱,另外,它還能擁有其他組件。
從TComponent下,分出非可視組件和可視組件。
非可視組件如TOPenDialog,TTimer,TTable等,這些組件因為繼承自TComponent,所以也就繼承了在設計時可以被操縱的特性??梢暬M件始自TControl,是它引入了可視化屬性和方法,使繼承自它的類都有了這些可視化特性。
TControl又分出兩類組件類型:從TWinControl(窗口控件)自下的控件和從TGraphicControl(圖形控件)自下的控件。繼承自TWinControl的控件將Windows控件進行封裝,所以擁有Windows控件的很多特性。繼承自TGraphicControl的控件,也是可見的,但沒有句柄,可以稱之為圖形控件。
組件是Delphi的核心,DelPhi提供了大量的標準組件。Delphi的組件實際上是某個類的對象,TComponent是每一個組件的共同祖先,它提供了Delphi組件正常工作的最基本的屬性、方法和事件。Delphi主要組件示意圖如圖7所示[5]。
圖7 Delphi組件示意圖
2.2 外場設備組件的設計
組件技術能夠方便地實現代碼復用,同時便于程序員很輕松地進行可視化編程。因此,將組件引入到道路監(jiān)控系統軟件的開發(fā)中,是非常必要的。在系統所設計的組件中,主要是一些設備類組件,另外還包括一些諸如用戶管理、數據庫操作等通用的功能的組件。主要包括:車輛檢測器組件(VD);可變情報板組件(CMS);可變限速標志組件(CSLS);能見度檢測器組件(WD)。
2.2.1 利用Frame創(chuàng)建外場設備組件
利用Frame創(chuàng)建組件,把框架放入組件包中,將該框架注冊成一個組件。采用Frame創(chuàng)建組件的優(yōu)點是可以對組件進行可視化開發(fā)。由于設備組件中包含有較多的子組件,采用可視化的開發(fā)要比傳統的方法更直觀和方便。要創(chuàng)建子組件,只需要將組件放入窗體中,再調用SetSubComponent方法就可以將窗體擁有的子組件變成實際的子組件。部分程序代碼如下:
TDevice=class(TFrame)
Image1:TImage;//聲明圖形變量
Image2:TImage;//聲明圖形變量
……
Procedure Register;
Begin
registerComponents(′Road′;[TDevice]);
end
……
Constructor TDevice Create(AOwner:TComponent);
Begin
Inherited;
……
Image1 SetSubComponent(true);
Image2 SetSubComponent(true);
WndHandle:=AllocateHWnd(SetFlash);
End
2.2.2 設備組件的屬性和方法
(1) 屬性
路段監(jiān)控系統設備的屬性一般包括以下幾種:
模式:自動/手動。當自動時,該設備不能進行操作,當為手動時該設備才能進行手動控制。
開啟:開啟/關閉。反映該設備現在是否工作。
工作狀態(tài):反映該設備的工作狀態(tài)。如可變限速標志,工作狀態(tài)是顯示內容。
故障:反映該設備是否故障。
其他屬性,如:名稱、編號等,可以加上用于顯示。
上述設備屬性的定義如下:
Property Modal:Boolean read Fmodal write SetModal;
Property Fault:Boolean read Ffault write SetFault;
Property Work:Boolean read F Work write SetWork;
Property Status:TStatus read FStatus write Set Status;
(2) 方法
根據設備的屬性,設備組件的方法主要有:
SetModal;
SetFault;
SetWork;
SetStatust;
SetFlash。
由于設備故障時,設備組件將不停閃爍,用于提醒用戶。在這里利用SetFlash方法來實現。當設備發(fā)生故障時,在SetFault()中調用SetTimer()方法打開一個定時器,同時在構造器中將定時器的處理方法指定為SetFlash,這樣就能在SetFlash中調用ChangePicture方法來轉換圖片,以達到動畫的效果。具體實現程序如下:
Procedure TDevice SetFault(value: Boolean);
Begin
FFault=value;// value參數為狀態(tài)變量,確定定時器的開/關狀態(tài)
If FFault then
Begin
Kill Timer(WndHandle,1);
SetTimer(WndHandle,1500,nil);//打開定時器
End
Else
Kill Timer(WndHandle,1);//關閉定時器
Invalidate
End
End
Procedure TDevice SetFlash(var Msg:Tmessage);
Begin
With Msg do //由msg參數決定是否產生動畫效果
Begin
If Msg=WM_TIMER then
try
ChangePicture;//用于轉換圖片以達到動畫效果
except
Application HandleException(self);
End
Else
DefWindowProc(WndHandle,Msg,waparam,Iparam);
End
End
2.2.3 組件的裝配
根據路段所監(jiān)控的設備,應將每類設備都做成組件。其中包括:車輛檢測器組件、可變情報板組件、可變限速標志組件、能見度檢測儀組件。安裝這些組件的步驟是:在Delphi環(huán)境下新建一個包,將所有組件的單元文件(*.pas)加入到這個包中,然后安裝該包,這樣所有的組件均被加到IDE的組件板上了。在路段監(jiān)控系統的開發(fā)過程中,程序員就可以直接使用這些設備組件了。
2.3 組件優(yōu)化
在實際調試工作中,發(fā)現安裝外場設備組件包以后,組件顯示在Delphi組件頁中的圖標并不能清楚地說明組件的功能。這里需要一個有自己特色的目標,在實際中采用如下方法完成:
打開Delphi自帶的Image Editor(ToolsaImage Editor),新建一個組件資源(.dcr),在彈出的窗口中右鍵單擊new新建一個bitmap位圖資源調整好位圖的大?。ㄟ@里用24×24)和色深后確定,雙擊建立好的位圖名字,完成后需要為位圖文件另取一個名字(右鍵點擊bitmap),因為Delphi強制要求這個位圖的名字要和組件的名字一樣,并且要全部大寫,這里就取為:TC108LOCK。最后保存這個資源文件到組件包(.dpk文件)目錄,命名為ClockDcr.dcr。最后在Clock的代碼中的interface部分加入一個編譯器開關:{MYMR ClockDcr.dcr},然后重新編譯更新組件,這時的組件圖標已經變成剛才做的位圖了。
為了讓組件的一些和時鐘有關的屬性注冊成一個新的類別把它們和label的屬性分開開來,讓組件用戶能夠更容易的發(fā)現組件的新特性,繼承了屬性類別的基類TpropertyCategory并覆蓋它的兩個類的方法,在Register過程中用RegisterPropertyInCategory方法注冊屬性類別。把以下的部分代碼補充到開發(fā)的組件的原代碼中:
Uses
DesignIntf;
procedure Register;
begin
RegisterComponents(′ClockAndTime′,[TC108LOCK]);
RegisterPropertyInCategory(′ClockPro′,TC108LOCK,′State′);
RegisterPropertyInCategory(′ClockPro′,TC108LOCK,′Active′);
RegisterPropertyInCategory(′ClockPro′,TC108LOCK,′BeginTime′);
RegisterPropertyInCategory(′ClockPro′,TC108LOCK,′WakeTime′);
RegisterPropertyInCategory(′ClockPro′,TC108LOCK,′AllowWake′);
RegisterPropertyInCategory(′ClockPro′,TC108LOCK,′OnWakeUp′);
RegisterPropertyInCategory(′ClockPro′,TC108LOCK,′OnTimeUp′);
end;
重新編譯后,做一個測試程序,這時只要組件使用者右鍵單擊Object Inspector選擇ArrangeaBy Category就可以看到屬性已經被清楚地分類了。
3 結 語
高速公路監(jiān)控系統是一個復雜的系統,它涉及到計算機網絡技術、計算機控制技術、分布式數據庫技術、組件技術、通信技術、圖形圖像處理技術等多個方面。
本文從大力發(fā)展高速公路監(jiān)控系統的現實要求出發(fā),以“某高速公路監(jiān)控系統”為背景,結合項目需求,簡要分析了硬件模塊劃分、軟件設計、設備控制和數據庫設計等,對類似的監(jiān)控系統的研發(fā)提出一點方法和實際應用中的借鑒和幫助。本文所做的工作對今后開發(fā)類似的高速公路路段監(jiān)控系統有一定幫助,對于開發(fā)面向其他領域應用的分布式數據庫系統和數據存儲系統也有一定的借鑒。
參 考 文 獻
[1]趙祥模.高速公路道路監(jiān)控系統理論與應用[M].北京:電子工業(yè)出版社,2003.
[2]母中旭.高速公路路段監(jiān)控系統的設計與實現[D].西安:西安交通大學,2006.
[3]王小華,劉美林.高速公路監(jiān)控系統設計與實現[J].工業(yè)控制計算機,2002,5(10):6-8.
[4]袁亮.高速公路監(jiān)控系統通信管理模塊的設計與實現[D].成都:西南交通大學,2003.
[5]王玨.組件技術在軟件開發(fā)中的應用研究[D].哈爾濱:哈爾濱工程大學,2005.
[6]鄒建.SQL Server 2000開發(fā)與管理應用實例(中文版)[M].北京:人民郵電出版社,2005.
作者簡介:
周 英 女,1973年出生,工程碩士,講師,工程師。主要從事電子技術和通信技術專業(yè)教學與研究工作。
母中旭 男,1970年出生,碩士研究生,副教授,工程師。主要從事電子技術和計算機技術專業(yè)教學與研究工作。