首頁 > 檢測加固 > 正文
基于以太網(wǎng)的橋梁健康監(jiān)測系統(tǒng)設計
2011-10-19 來源:中國百科網(wǎng)
近年來,隨著橋梁安全事故的不斷增多,橋梁健康監(jiān)測技術逐漸成為學術界、工程界的一個研究熱點,與此同時,也開發(fā)出了許多用于橋梁健康監(jiān)測的系統(tǒng)軟件。目前橋梁健康監(jiān)測系統(tǒng)軟件開發(fā)主要有兩種方式,一種是利用高級語言編程工具,主要有VB,VC,Delphi;另一種是利用專業(yè)化的圖形化編程語言Lab-VIEW。利用高級語言編程,不受開發(fā)工具的限制,可以根據(jù)開發(fā)者自身的設計開發(fā)出比較友好美觀的界面程序,但是對軟件人員的要求較高;利用LabVIEW進行二次開發(fā),雖然能夠在短時間內(nèi)開發(fā)出比較實用的軟件,但是軟件開發(fā)容易受限于開發(fā)工具。這兩種開發(fā)方式各有利弊,應根據(jù)實際情況選擇使用。本文軟件編程采用的是面向?qū)ο蟮目梢暬幊陶Z言VC++6.0,充分利用VC++自帶的MFC類庫,開發(fā)出了界面友好美觀的橋梁健康監(jiān)測系統(tǒng)軟件。

    1、基于以太網(wǎng)的橋梁健康監(jiān)測系統(tǒng)概述

    橋梁健康監(jiān)測技術是在橋梁體的關鍵部位安裝一些傳感器件,實時在線監(jiān)測這些監(jiān)測點所采集的結(jié)構(gòu)參數(shù)在橋梁運營過程中的變化,通過對這些結(jié)構(gòu)參數(shù)的分析和處理,綜合評定橋梁的安全服役狀況。因此,橋梁健康監(jiān)測系統(tǒng)基本應該包含以下功能:

    (1)各種傳感器信號的采集和處理;

    (2)將采集到的數(shù)據(jù)變送至上位機控制單元;

    (3)上位機實時信號的監(jiān)控、分析和處理;

    (4)歷史數(shù)據(jù)的保存和查閱。

    隨著通信技術的發(fā)展,網(wǎng)絡技術也正逐步應用在國內(nèi)外許多大型橋梁監(jiān)測系統(tǒng)中。將監(jiān)測儀通過以太網(wǎng)連接到中央控制機,可以實現(xiàn)采集數(shù)據(jù)的遠程傳輸和共享,從而在監(jiān)控中心就可以對橋梁各項結(jié)構(gòu)參數(shù)的實時在線監(jiān)測。

    基于以太網(wǎng)的橋梁健康監(jiān)測系統(tǒng)的框架結(jié)構(gòu)如圖1所示。其中,監(jiān)測儀主要完成數(shù)據(jù)的采集和變送,由于橋梁監(jiān)測系統(tǒng)采集和處理的數(shù)據(jù)量非常大,實時性要求非常高,以單片機實現(xiàn)的嵌入式系統(tǒng)難以滿足要求,本次設計的監(jiān)測儀主板的設計充分利用了DSP的強大數(shù)據(jù)處理能力和FPGA的時序邏輯功能,因此,可以滿足大數(shù)據(jù)量、實時監(jiān)測的系統(tǒng)需求。
    

    中央控制機實時顯示當前監(jiān)測的各項性能指標,同時能夠自行分析橋梁是否處在安全服役狀態(tài),當出現(xiàn)突發(fā)情況下橋梁的損傷、安全性能下降的情況下能提示安全警報,避免發(fā)生重大的惡習安全事故。

    2、基于以太網(wǎng)的橋梁健康監(jiān)測系統(tǒng)的軟件設計

    2.1 軟件設計需求分析

    現(xiàn)場監(jiān)測儀將采集到的信號通過以太網(wǎng)傳送到上位機PC,在PC機上實時顯示、保存、分析采集數(shù)據(jù)信息,既能夠充分利用了DSP在現(xiàn)場高速采集處理數(shù)據(jù)的能力,又能夠充分利用了上位PC機在繪制圖像和保存數(shù)據(jù)方面的優(yōu)勢。因此,一個完整的橋梁健康監(jiān)測系統(tǒng)在中央監(jiān)控部分應該完成以下幾個功能:

    (1)每臺監(jiān)測儀IP地址、MAC地址、Port端口等網(wǎng)絡地址信息、運行模式以及系統(tǒng)采樣時間的設定;

    (2)監(jiān)測儀8個通道的采樣頻率、放大倍數(shù)、采樣保存時間的設定以及每個通道對應傳感器類型的選擇;

    (3)動態(tài)實時顯示數(shù)據(jù)曲線。數(shù)據(jù)的顯示可以以原始數(shù)據(jù)和FFT兩種格式,并且可以調(diào)整采樣時間設定一幀采集的數(shù)據(jù)量的大小;

    (4)八個通道數(shù)據(jù)采集數(shù)據(jù)的長度、采集的時間能夠同步實時顯示在中央控制機上;

    (5)越限報警。當采集到的數(shù)據(jù)出現(xiàn)異常,超出正常的數(shù)據(jù)范圍的時候,能夠向中央控制單元報警,便于工作人員及時查找出現(xiàn)的故障和損傷;

    (6)能夠?qū)Σ杉降臄?shù)據(jù)進行實時分析。

    2.2 軟件系統(tǒng)整體設計和流程

    軟件設計核心部分主要有兩個,一個是中央控制單元向監(jiān)測儀發(fā)送命令參數(shù),另一個是中央控制單元接收監(jiān)測儀發(fā)送回來的采集數(shù)據(jù)信息。PC機接收到采集的數(shù)據(jù)信息后,還需要根據(jù)系統(tǒng)要求繪制出數(shù)據(jù)曲線圖,便于對采集到的數(shù)據(jù)進行分析,同時為了歷史數(shù)據(jù)信息的查閱,還必須將采集到的數(shù)據(jù)保存到Excel文件,其流程圖如圖2所示。根據(jù)軟件設計的整體設計和流程,采用了四個線程:

    線程1:UINTSendCMDToDSP(LPVOID IParam),完成向DSP發(fā)送在主程序設定的命令參數(shù);

    線程2:UINT、RecieveData(LPVOID IParam),完成接收采集的數(shù)據(jù)信息;

    線程3:UINTDrawCurve(LPVOID IParam),將采集到的數(shù)據(jù)繪制成曲線圖像;

    線程4:UINT StoreToExcel(LPVOID IParam),將采集到的數(shù)據(jù)保存到Excel文件,便于查閱分析歷史數(shù)據(jù)。

    其中,由于PC是被動接收監(jiān)測儀采集的數(shù)據(jù),為了保證在接收數(shù)據(jù)時沒有數(shù)據(jù)丟失,要把RecieveData線程的優(yōu)先級設為最高。

    Windows本身采用的是消息驅(qū)動機制,當一個線程發(fā)出一條消息時,操作系統(tǒng)首先接收到該消息,然后把該消息轉(zhuǎn)發(fā)給目標線程。所以可以自定義消息,然后通過操作系統(tǒng)來實現(xiàn)一個線程向另一個線程發(fā)送消息。
    

    首先SendCMDToDSP線程發(fā)送參數(shù)命令給監(jiān)測儀主板核心器件DSP,DSP收到參數(shù)命令后,按參數(shù)命令的要求向PC發(fā)送數(shù)據(jù),RecieveData線程監(jiān)聽到DSP開始發(fā)送采集數(shù)據(jù)后,開始接收數(shù)據(jù)。由于Recie-veData線程優(yōu)先級別高于SendCMDToDSP線程,所以當接收數(shù)據(jù)時發(fā)送命令參數(shù),SendCMDToDSP線程則需要等待RecieveData線程接收完數(shù)據(jù)才能開始發(fā)送命令參數(shù),這樣就不會造成命令參數(shù)的覆蓋。在PC機內(nèi)存區(qū)域開辟一塊緩沖區(qū)用于接收數(shù)據(jù),RecieveData開始接收數(shù)據(jù),當內(nèi)存緩沖區(qū)滿的時候,RecieveData線程PostThreadMessage一個消息給DrawCurve線程,將緩沖區(qū)指針和大小作為消息參數(shù)傳遞過去,然后釋放緩沖區(qū),再等待接收數(shù)據(jù);DrawCurve線程接收到消息后,分配另一塊內(nèi)存保存數(shù)據(jù),繪完采集數(shù)據(jù)的曲線圖像后,DrawCurve線程PostThreadMessage一個消息給StoreToExcel線程,將新的內(nèi)存指針和大小作為消息參數(shù)傳遞過去,然后把數(shù)據(jù)緩沖區(qū)釋放,再繼續(xù)等待消息;StoreToExcel線程獲取消息后,同樣分配另一塊內(nèi)存保存數(shù)據(jù),將采集的數(shù)據(jù)保存到Excel文件,然后把緩沖區(qū)釋放,再繼續(xù)等待消息。

    2.3 以太網(wǎng)通信模塊設計

    PC與DSP的數(shù)據(jù)通信采用的是以太網(wǎng)通信,上位PC機向DSP發(fā)送設定好的命令參數(shù),DSP則按照接收到的命令參數(shù)采集數(shù)據(jù),然后向PC機發(fā)送采集到的數(shù)據(jù)。以太網(wǎng)通信部分采用的是套接口Socket編程,套接口Socket提供了許多函數(shù),利用這些函數(shù),程序員就可以實現(xiàn)DSP和上位PC機的以太網(wǎng)通信。

    2.3.1 發(fā)送命令模塊

    當上位PC機向監(jiān)測儀發(fā)送IP地址、MAC地址等命令參數(shù)時,監(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ā)送命令參數(shù)了。在此過程中,PC每次向監(jiān)測儀發(fā)送100 B的命令參數(shù),其中,第一個字節(jié)是區(qū)分不同命令參數(shù)的標志,監(jiān)測儀接收到命令參數(shù)后,利用這個標志來設置的各項參數(shù),通過這種方式,依次設定監(jiān)測儀各個通道的采樣頻率、保存時間、PGA、采樣閾值、FFT使能以及監(jiān)測儀本身的IP地址、MAC地址、運行時模式以及監(jiān)測儀系統(tǒng)時間的設置,其流程如圖3所示。
    

    2.3.2 接收數(shù)據(jù)模塊

    當監(jiān)測儀將采集到的數(shù)據(jù)通過以太網(wǎng)發(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ā)送采樣時間、通道號、數(shù)據(jù)長度、采樣數(shù)據(jù)。采樣時間即表示該發(fā)送的數(shù)據(jù)對象是哪個時刻的采樣結(jié)果。為了接收監(jiān)測儀發(fā)送過來的數(shù)據(jù)信息,需要在內(nèi)存緩沖區(qū)開辟一個容量為16 384×4的buffer,每臺監(jiān)測儀8個通道,因此開辟8個buffer,用來存放8個通道接收到的數(shù)據(jù),其流程如圖4所示。
    

    3 模擬測試

    橋梁健康監(jiān)測技術的發(fā)展還有很多處于實驗室研究階段,因此,數(shù)據(jù)的采集測試是在實驗室環(huán)境下采用波形發(fā)生器產(chǎn)生的三角波信號來模擬實際現(xiàn)場傳感器信號。設定好通道號、采樣時間、采樣頻率和放大倍數(shù)等命令參數(shù),運行程序,可以看到如圖5所示的三角波波形。其中,橫坐標表示在設定的采樣時間內(nèi)采集數(shù)據(jù)的個數(shù),即為1 s時間內(nèi)采集512個數(shù)據(jù)。縱坐標表示采集信號的幅值,由于從傳感器出來的信號電壓是-2.5~2.5 V,ADC采樣分辨率為24 b,去掉第24位,取中間值即222,為0 V,如圖5所示。采集數(shù)據(jù)無漏點,波形完整,因此符合橋梁健康監(jiān)測系統(tǒng)的采集數(shù)據(jù)的基本需要。

    4、結(jié) 語

    本文完成了基于以太網(wǎng)的橋梁健康監(jiān)測系統(tǒng)的軟件設計,實現(xiàn)了橋梁健康監(jiān)測系統(tǒng)中各種傳感器信號的采集,同時將采集到的數(shù)據(jù)信號通過以太網(wǎng)傳輸?shù)絇C上,實時顯示各采集信號的輸出波形,并將采集到的數(shù)據(jù)保存至Excel文件,便于歷史查閱和分析。軟件設計界面友好,可完成一般的橋梁健康監(jiān)測任務。
Copyright © 2007-2022 cnbridge.cn All Rights Reserved
服務熱線:010-64708566 法律顧問:北京君致律師所 陳棟強
ICP經(jīng)營許可證100299號 京ICP備10020099號  京公網(wǎng)安備 11010802020311號