摘 要: 針對高速公路結冰檢測系統,設計和開發了實現數據采集和處理的上位機軟件。上位機軟件集成了多傳感器節點的邏輯判斷和數據融合機制,實現了整個系統的通信、數據采集、曲線顯示、數據庫存儲等功能。實際應用結果表明:該上位機軟件具有操作簡單、功能完善、穩定性高和實時性強等優點,能實時準確地實現對高速公路路面結冰狀態的實時檢測和預警。
關鍵詞: 路面結冰;結冰傳感器;上位機;實時監控技術
0 引言
高速公路交通氣象觀測主要包括能見度觀測、路面氣象條件觀測、氣象環境觀測、視頻實景觀測4個主要方面。路面氣象條件觀測內容主要包括路溫、路面狀況、冰點溫度以及融雪劑濃度等方面。路面狀況泛指路面處于干燥、(潮)濕、積水、積雪(霜)、結冰等狀態,也包括水層、雪層、冰層的厚度情況。
結冰造成路面抗滑能力顯著降低,增加了汽車制動距離,容易使車輛發生打滑和側翻。據統計,在所有的交通安全事故中,路面結冰時的事故是干燥路面的10倍[1]。因此,路面結冰自動監測和及時預警對于保障行車安全、減少交通事故具有重要意義。
從20世紀50年代開始,歐美一些發達國家開始進行結冰傳感器的研究。目前,國外結冰探測的方法以及相應的結冰傳感器已發展到十幾種,包括壓差式、障礙式、振動式、潛熱式等[2-4]。國內方面對結冰檢測技術的研究起步比較晚,資料顯示只有少數的高校與研究機構在研究相關的結冰檢測技術,如華中科技大學的光纖式結冰傳感器[5-6]。
為適應高速公路氣象觀測系統自動化、智能化和網絡化的發展趨勢,作者所在的團隊設計和開發了基于多傳感器數據融合的高速公路結冰檢測預警系統。
結冰檢測系統總體結構示意圖如圖1所示。該系統主要由傳感器網絡、數據采集傳輸模塊、光纖通信鏈路和軟件組成,實現了區域路面結冰狀態的檢測和預警。
圖1所示為常見的雙向四車道高速公路中單側車道。圖中虛線箭頭所指示方向即為相應車道的行車方向。為了不影響正常的行車,減小行車中產生的灰塵等因素對傳感器產生的不利影響,同時又能夠獲得相對準確的結冰信息,傳感器安裝在行車較少的硬路肩與無行車的路緣帶交界處。
傳感機箱在獲取攝像機視頻信號的同時,獲取各點傳感器的信號值,并采用TCP/IP網絡傳輸協議將經過處理的編碼信號發送至高速公路監控中心,由專用的上位機軟件完成解析處理和實時顯示。
為了實現對傳感器的工作狀態進行實時監測、傳感器數據的采集、組織和處理,以及路面結冰狀態的檢測和預警,在Windows操作系統下Microsoft Visual Studio 2010編程環境中設計和開發了高速公路結冰檢測系統的上位機軟件。
1 上位機軟件的架構和功能
上位機和下位機通信,進行系統的參數設置、數據采集、顯示、存儲、查詢以及視頻監控等功能。上位機軟件初始界面如圖2所示。
2 上位機軟件功能的實現
從架構上講,上位機軟件主要由圖形用戶界面、數據分析與處理、數據庫和后臺軟件4部分組成。
從功能上講,上位機軟件主要包含5個功能模塊,分別為參數設置模塊、數據通信模塊、數據管理模塊、視頻監控模塊和控制輸出模塊,如圖3所示。
2.1 通信處理模塊
通信建立上下位機之間的連接,連接成功后,上位機方可進行實時檢測、數據傳輸和視頻監控等操作。高速公路結冰檢測系統中采用網絡通信的方式,實現遠距離的數據傳輸。
套接字(Socket)是為了方便網絡編程開發的程序接口,Socket是在應用層和傳輸層之間的一個抽象層,將TCP/IP層復雜的操作抽象為幾個簡單的接口供應用層調用以實現進程在網絡中通信[7]。
上下位機的以太網通信是基于異步非阻塞Socket封裝類中的函數實現的。上位機以客戶端的身份向服務端(下位機)發送數據請求,當服務器確認數據請求后返回數據,客戶端讀取下位機返回的數據,具體流程如圖4所示。
2.2 數據管理模塊
數據管理模塊主要實現上位機收到數據的解析,邏輯判斷,實時的數值顯示和曲線繪制,數據庫存儲和歷史數據查詢等功能。
上位機軟件將收到的數據按照指定的規則解析為傳感器的實時數據,即電流、電壓、溫度等,然后通過傳感器的冰厚模型計算當前傳感器的冰厚。上位機界面上將顯示實時的冰厚值并繪制冰厚曲線,同時將數據存儲在數據庫中。
2.2.1 曲線繪制
上位機軟件中采用TeeChart控件實現實時冰厚、電壓、溫度曲線的顯示功能。TeeChart Pro是一款圖表圖形組件,支持Windows和Linux系統平臺,使用方便,有利于產品集成。
Teechart控件的操作流程包括:注冊控件、添加控件、初始化控件和刷新數據。初始化控件時,主要使用AddSeries()函數添加曲線系列,設置坐標軸的范圍、曲線的樣式、顏色等。在定時器中刷新數據,根據實際需求選擇刷新數據的時間間隔,本上位機中采用500 ms。將實時數據存儲在CList中,在繪制曲線時,使用AddXY()函數刷新數據。
TeeChart控件除了完成基本的圖形曲線繪制外,用戶可根據需要開發注釋、多Y軸多量程、Y軸量程實時自適應等功能。
2.2.2 數據存儲
上位機軟件將傳感器原始數據和處理后的數據存儲在Access數據庫中,為后期數據維護、查詢和分析以及故障分析等提供真實可靠的數據。VC++通過ADO(ActiveX數據對象)的方式來訪問Access數據庫,實現對數據的存儲和查詢等操作。在VC中,使用ADO之前必須在工程stdafx.h里添加對ADO的支持代碼,使用#import指令引入ADO動態鏈接庫文件,編譯器才能正確編譯。
ADO訪問數據庫,首先要創建數據庫(Connection)對象建立與數據源的連接,然后創建記錄集(Recordest)對象,實現對數據庫的訪問。向數據庫中的數據表寫入數據的代碼如下:
_RecordsetPtr m_pRecordset;//記錄
String strSQL;
m_pRecordset->Open("SELECT*FROM數據",m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
strSQL.Format(_T("INSERT INTO數據(日期,時間,冰厚,溫度1,溫度2,溫度3))VALUES(′%s′,′%s′,′%.2f′,′%.2f′,′%.2f′,′%.2f′)"),strDay,strTime,IceThick,dTemp1,dTemp2,dTemp3);//創建數據表
m_pConnection->Execute((_bstr_t)strSQL,&value,adCmdText);//寫入數據庫
m_pRecordset->Close();
2.2.3 歷史數據查詢
歷史數據查詢的結果以曲線和列表兩種形式顯示。曲線顯示通過TeeChart控件實現,直觀抽象,如圖5所示。列表顯示通過List Control控件實現,具體詳細。二者都是通過ADO方式對數據庫進行操作,查詢符合條件的目標數據,獲取數據結果在界面上呈現。
2.3 視頻監控模塊
系統中為了實時監測傳感器工作的路面狀態,在應用現場安裝海康威視網絡攝像機。上位機軟件中對海康威視SDK進行二次開發,集成了網絡攝像機圖像的實時預覽、錄像存儲、錄像回放和云臺控制等功能。
利用海康威視SDK實現視頻監控模塊的功能調用順序如圖6所示,視頻預覽和錄像功能調用的具體流程如圖7所示。
在上位機界面上添加一個靜態文本框作為視頻預覽窗口,此靜態文本框的句柄作為視頻預覽接口NET_DVR_RealPlay中預覽參數的播放窗口句柄。
在預覽成功的前提下,調用錄像存儲模塊實現網絡攝像機實時數據流的存儲。開發過程中主要涉及錄像存儲路徑、錄像文件的命名格式、錄像文件的時長、循環錄像等,可根據需求自由選擇。
調用海康威視SDK中的接口錄制的視頻文件,必須使用海康威視的解碼器解碼后才能播放。本文利用系統控件和海康威視播放庫SDK中的播放函數,開發了一個視頻播放器實現錄像的回放。
云臺控制模塊實現云臺轉動、調焦、調整光圈等基本操作。用戶可以在監控中心操作云臺來遠程控制攝像機來觀察傳感器的工作狀態和路面的結冰狀態。
3 結論
本文介紹了高速公路結冰檢測系統上位機軟件的開發。上位機軟件在高速公路監管部門監控中心長時間不間斷運行,界面友好,操作簡便,數據傳輸穩定;實現了傳感器數據和監控圖像的采集、顯示、存儲和查詢功能,能準確地判斷路面是否結冰,若結冰能及時預警。本方法對其他實時測控系統的上位機軟件編寫具有一定的借鑒意義。
參考文獻
[1] 張愛英,丁德平,李迅,等.相似離度在北京市道面結冰預報中的初步應用[J].氣象科技進展,2012,2(1):36-38.
[2] 馮金龍.高度公路路面結冰檢測系統的研究[D].南京:南京信息工程大學,2011.
[3] 歐彥.路面結冰監測技術研究進展[J].公路,2013(4):191-195.
[4] 孟遂珍.國外高速公路的管理和氣象信息[J].氣象科技,2000(4):60-62.
[5] 鄒建紅,葉林,葛俊鋒,等.一種用于氣象觀測的的光纖結冰探測儀的研制[J].儀表技術與傳感器,2012(4):15-18.
[6] 禹迅,葉林.機場地面結冰檢測系統的上位機軟件實現[J].計算機與數字工程,2013,41(6):993-995.
[7] 孫海民.精通Windows Sockets網絡開發:基于Visual C++實現[M].北京:人民郵電出版社,2008.