近年來,隨著橋梁安全事故的不斷增多,橋梁健康監(jiān)測技術逐漸成為學術界、工程界的一個研究熱點,與此同時,也開發(fā)出了許多用于橋梁健康監(jiān)測的系統(tǒng)軟件。目前橋梁健康監(jiān)測系統(tǒng)軟件開發(fā)主要有兩種方式,一種是利用高級語言編程工具,主要有VB,VC,Delphi;另一種是利用專業(yè)化的圖形化編程語言Lab-VIEW。利用高級語言編程,不受開發(fā)工具的限制,可以根據開發(fā)者自身的設計開發(fā)出比較友好美觀的界面程序,但是對軟件人員的要求較高;利用LabVIEW進行二次開發(fā),雖然能夠在短時間內開發(fā)出比較實用的軟件,但是軟件開發(fā)容易受限于開發(fā)工具。這兩種開發(fā)方式各有利弊,應根據實際情況選擇使用。本文軟件編程采用的是面向對象的可視化編程語言VC++6.0,充分利用VC++自帶的MFC類庫,開發(fā)出了界面友好美觀的橋梁健康監(jiān)測系統(tǒng)軟件。
1、基于以太網的橋梁健康監(jiān)測系統(tǒng)概述
橋梁健康監(jiān)測技術是在橋梁體的關鍵部位安裝一些傳感器件,實時在線監(jiān)測這些監(jiān)測點所采集的結構參數在橋梁運營過程中的變化,通過對這些結構參數的分析和處理,綜合評定橋梁的安全服役狀況。因此,橋梁健康監(jiān)測系統(tǒng)基本應該包含以下功能:
(1)各種傳感器信號的采集和處理;
(2)將采集到的數據變送至上位機控制單元;
(3)上位機實時信號的監(jiān)控、分析和處理;
(4)歷史數據的保存和查閱。
隨著通信技術的發(fā)展,網絡技術也正逐步應用在國內外許多大型橋梁監(jiān)測系統(tǒng)中。將監(jiān)測儀通過以太網連接到中央控制機,可以實現采集數據的遠程傳輸和共享,從而在監(jiān)控中心就可以對橋梁各項結構參數的實時在線監(jiān)測。
基于以太網的橋梁健康監(jiān)測系統(tǒng)的框架結構如圖1所示。其中,監(jiān)測儀主要完成數據的采集和變送,由于橋梁監(jiān)測系統(tǒng)采集和處理的數據量非常大,實時性要求非常高,以單片機實現的嵌入式系統(tǒng)難以滿足要求,本次設計的監(jiān)測儀主板的設計充分利用了DSP的強大數據處理能力和FPGA的時序邏輯功能,因此,可以滿足大數據量、實時監(jiān)測的系統(tǒng)需求。
中央控制機實時顯示當前監(jiān)測的各項性能指標,同時能夠自行分析橋梁是否處在安全服役狀態(tài),當出現突發(fā)情況下橋梁的損傷、安全性能下降的情況下能提示安全警報,避免發(fā)生重大的惡習安全事故。
2、基于以太網的橋梁健康監(jiān)測系統(tǒng)的軟件設計
2.1 軟件設計需求分析
現場監(jiān)測儀將采集到的信號通過以太網傳送到上位機PC,在PC機上實時顯示、保存、分析采集數據信息,既能夠充分利用了DSP在現場高速采集處理數據的能力,又能夠充分利用了上位PC機在繪制圖像和保存數據方面的優(yōu)勢。因此,一個完整的橋梁健康監(jiān)測系統(tǒng)在中央監(jiān)控部分應該完成以下幾個功能:
(1)每臺監(jiān)測儀IP地址、MAC地址、Port端口等網絡地址信息、運行模式以及系統(tǒng)采樣時間的設定;
(2)監(jiān)測儀8個通道的采樣頻率、放大倍數、采樣保存時間的設定以及每個通道對應傳感器類型的選擇;
(3)動態(tài)實時顯示數據曲線。數據的顯示可以以原始數據和FFT兩種格式,并且可以調整采樣時間設定一幀采集的數據量的大?。?br />
(4)八個通道數據采集數據的長度、采集的時間能夠同步實時顯示在中央控制機上;
(5)越限報警。當采集到的數據出現異常,超出正常的數據范圍的時候,能夠向中央控制單元報警,便于工作人員及時查找出現的故障和損傷;
(6)能夠對采集到的數據進行實時分析。
2.2 軟件系統(tǒng)整體設計和流程
軟件設計核心部分主要有兩個,一個是中央控制單元向監(jiān)測儀發(fā)送命令參數,另一個是中央控制單元接收監(jiān)測儀發(fā)送回來的采集數據信息。PC機接收到采集的數據信息后,還需要根據系統(tǒng)要求繪制出數據曲線圖,便于對采集到的數據進行分析,同時為了歷史數據信息的查閱,還必須將采集到的數據保存到Excel文件,其流程圖如圖2所示。根據軟件設計的整體設計和流程,采用了四個線程:
線程1:UINTSendCMDToDSP(LPVOID IParam),完成向DSP發(fā)送在主程序設定的命令參數;
線程2:UINT、RecieveData(LPVOID IParam),完成接收采集的數據信息;
線程3:UINTDrawCurve(LPVOID IParam),將采集到的數據繪制成曲線圖像;
線程4:UINT StoreToExcel(LPVOID IParam),將采集到的數據保存到Excel文件,便于查閱分析歷史數據。
其中,由于PC是被動接收監(jiān)測儀采集的數據,為了保證在接收數據時沒有數據丟失,要把RecieveData線程的優(yōu)先級設為最高。
Windows本身采用的是消息驅動機制,當一個線程發(fā)出一條消息時,操作系統(tǒng)首先接收到該消息,然后把該消息轉發(fā)給目標線程。所以可以自定義消息,然后通過操作系統(tǒng)來實現一個線程向另一個線程發(fā)送消息。
首先SendCMDToDSP線程發(fā)送參數命令給監(jiān)測儀主板核心器件DSP,DSP收到參數命令后,按參數命令的要求向PC發(fā)送數據,RecieveData線程監(jiān)聽到DSP開始發(fā)送采集數據后,開始接收數據。由于Recie-veData線程優(yōu)先級別高于SendCMDToDSP線程,所以當接收數據時發(fā)送命令參數,SendCMDToDSP線程則需要等待RecieveData線程接收完數據才能開始發(fā)送命令參數,這樣就不會造成命令參數的覆蓋。在PC機內存區(qū)域開辟一塊緩沖區(qū)用于接收數據,RecieveData開始接收數據,當內存緩沖區(qū)滿的時候,RecieveData線程PostThreadMessage一個消息給DrawCurve線程,將緩沖區(qū)指針和大小作為消息參數傳遞過去,然后釋放緩沖區(qū),再等待接收數據;DrawCurve線程接收到消息后,分配另一塊內存保存數據,繪完采集數據的曲線圖像后,DrawCurve線程PostThreadMessage一個消息給StoreToExcel線程,將新的內存指針和大小作為消息參數傳遞過去,然后把數據緩沖區(qū)釋放,再繼續(xù)等待消息;StoreToExcel線程獲取消息后,同樣分配另一塊內存保存數據,將采集的數據保存到Excel文件,然后把緩沖區(qū)釋放,再繼續(xù)等待消息。
2.3 以太網通信模塊設計
PC與DSP的數據通信采用的是以太網通信,上位PC機向DSP發(fā)送設定好的命令參數,DSP則按照接收到的命令參數采集數據,然后向PC機發(fā)送采集到的數據。以太網通信部分采用的是套接口Socket編程,套接口Socket提供了許多函數,利用這些函數,程序員就可以實現DSP和上位PC機的以太網通信。
2.3.1 發(fā)送命令模塊
當上位PC機向監(jiān)測儀發(fā)送IP地址、MAC地址等命令參數時,監(jiān)測儀作為服務器端,PC機作為客戶端。在服務器端和客戶端分別創(chuàng)建一個套接口Socket,然后在系統(tǒng)上電后,監(jiān)測儀就處于監(jiān)聽狀態(tài),當監(jiān)聽到PC有連接請求時,監(jiān)測儀服務端又創(chuàng)建一個新的套接口stcpctive來與PC建立連接,當監(jiān)測儀與PC建立連接以后,PC就可以向監(jiān)測儀發(fā)送命令參數了。在此過程中,PC每次向監(jiān)測儀發(fā)送100 B的命令參數,其中,第一個字節(jié)是區(qū)分不同命令參數的標志,監(jiān)測儀接收到命令參數后,利用這個標志來設置的各項參數,通過這種方式,依次設定監(jiān)測儀各個通道的采樣頻率、保存時間、PGA、采樣閾值、FFT使能以及監(jiān)測儀本身的IP地址、MAC地址、運行時模式以及監(jiān)測儀系統(tǒng)時間的設置,其流程如圖3所示。
2.3.2 接收數據模塊
當監(jiān)測儀將采集到的數據通過以太網發(fā)送到上位PC機時,PC機作為服務器端,監(jiān)測儀作為客戶端。同樣,也是在PC機服務器端和監(jiān)測儀客戶端各創(chuàng)建一個套接口Socket,當PC機上的應用程序開始運行后,PC機就處于監(jiān)聽狀態(tài),當監(jiān)聽到有監(jiān)測儀端有連接請求的時候,就創(chuàng)建一個新的套接口stcpctive與監(jiān)測儀建立連接。當PC機與監(jiān)測儀建立連接以后,監(jiān)測儀依次向PC機發(fā)送采樣時間、通道號、數據長度、采樣數據。采樣時間即表示該發(fā)送的數據對象是哪個時刻的采樣結果。為了接收監(jiān)測儀發(fā)送過來的數據信息,需要在內存緩沖區(qū)開辟一個容量為16 384×4的buffer,每臺監(jiān)測儀8個通道,因此開辟8個buffer,用來存放8個通道接收到的數據,其流程如圖4所示。
3 模擬測試
橋梁健康監(jiān)測技術的發(fā)展還有很多處于實驗室研究階段,因此,數據的采集測試是在實驗室環(huán)境下采用波形發(fā)生器產生的三角波信號來模擬實際現場傳感器信號。設定好通道號、采樣時間、采樣頻率和放大倍數等命令參數,運行程序,可以看到如圖5所示的三角波波形。其中,橫坐標表示在設定的采樣時間內采集數據的個數,即為1 s時間內采集512個數據??v坐標表示采集信號的幅值,由于從傳感器出來的信號電壓是-2.5~2.5 V,ADC采樣分辨率為24 b,去掉第24位,取中間值即222,為0 V,如圖5所示。采集數據無漏點,波形完整,因此符合橋梁健康監(jiān)測系統(tǒng)的采集數據的基本需要。
4、結 語
本文完成了基于以太網的橋梁健康監(jiān)測系統(tǒng)的軟件設計,實現了橋梁健康監(jiān)測系統(tǒng)中各種傳感器信號的采集,同時將采集到的數據信號通過以太網傳輸到PC上,實時顯示各采集信號的輸出波形,并將采集到的數據保存至Excel文件,便于歷史查閱和分析。軟件設計界面友好,可完成一般的橋梁健康監(jiān)測任務。