薛 昊,馬榮貴,楊榮好,駱 磊
(1.長(zhǎng)安大學(xué) 信息工程學(xué)院,陜西 西安 710000;2.長(zhǎng)安大學(xué) 公路學(xué)院,陜西 西安 710000)
中國(guó)目前已成為世界上名符其實(shí)的橋梁結(jié)構(gòu)建設(shè)大國(guó),中國(guó)橋梁的設(shè)計(jì)和建設(shè)水平取得了令世界橋梁強(qiáng)國(guó)都為之驚嘆的技術(shù)進(jìn)步,目前中國(guó)正處于一個(gè)橋梁設(shè)計(jì)、建造技術(shù)的創(chuàng)新、驗(yàn)證、積累、再沉淀的歷史時(shí)期[1]。但相對(duì)大橋的設(shè)計(jì)、建設(shè)而言,國(guó)內(nèi)大型橋梁信息化、數(shù)字化監(jiān)測(cè)技術(shù)剛處于一種起步發(fā)展?fàn)顟B(tài),監(jiān)測(cè)結(jié)果不盡如人意。橋梁健康監(jiān)測(cè)的基本概念是通過各類傳感器的鋪設(shè)對(duì)橋梁結(jié)構(gòu)狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)控與評(píng)估,為大橋在特殊氣候、交通條件下或橋梁運(yùn)營(yíng)狀況嚴(yán)重異常時(shí)觸發(fā)預(yù)警信號(hào),為橋梁維護(hù)、維修與管理決策提供依據(jù)和指導(dǎo)[2]。為橋梁監(jiān)測(cè)的建設(shè)中,需要布置多種終端設(shè)備,例如溫度傳感器、位移傳感器、加速度傳感器、應(yīng)變傳感器等等。但是現(xiàn)有的各類傳感器系統(tǒng),一般都是由多個(gè)廠商部署的,其數(shù)據(jù)傳輸標(biāo)準(zhǔn)、接口和數(shù)據(jù)格式不一[3]。信息系統(tǒng)解決了應(yīng)用數(shù)據(jù)級(jí)別的整合,但是,很難實(shí)現(xiàn)傳感數(shù)據(jù)級(jí)別的整合,從而形成了一個(gè)個(gè)傳感數(shù)據(jù)信息孤島。其直接的后果是系統(tǒng)的使用和管理較為繁瑣、布設(shè)新的傳感器困難,更重要的是由于數(shù)據(jù)相對(duì)孤立,難以實(shí)現(xiàn)多傳感器數(shù)據(jù)融合,為深層次的決策做支持[4]。
對(duì)此文中將傳統(tǒng)橋梁健康監(jiān)測(cè)與物聯(lián)網(wǎng)技術(shù)相結(jié)合,實(shí)現(xiàn)不同接口、不同格式傳感器的數(shù)據(jù)融合,實(shí)現(xiàn)橋梁健康監(jiān)測(cè)與保存查詢一體化,并且以網(wǎng)頁形式進(jìn)行查看,支持用戶遠(yuǎn)程訪問,方便日后維修,檢查中在橋梁現(xiàn)場(chǎng)也能實(shí)時(shí)查看遠(yuǎn)程控制中心獲取的數(shù)據(jù),以及能夠隨時(shí)隨地對(duì)橋梁監(jiān)測(cè)數(shù)據(jù)進(jìn)行查看監(jiān)督,增強(qiáng)了橋梁監(jiān)測(cè)系統(tǒng)的移動(dòng)性[5]。同時(shí)對(duì)傳感器數(shù)據(jù)進(jìn)行分析評(píng)估,對(duì)處于危險(xiǎn)狀態(tài)的橋梁給出維修,加固的建議。與此同時(shí),后期二次開發(fā)過程中,支持傳感器的添加注冊(cè),使整個(gè)系統(tǒng)的功能更加豐富。
基于Web的橋梁健康監(jiān)測(cè)系統(tǒng)(見圖1)由四部分組成,分別為Web服務(wù)器、上位機(jī)、下位機(jī)以及眾多傳感器部分[6]。Web服務(wù)器采用B/S架構(gòu),服務(wù)器端采用J2EE+ORACLE數(shù)據(jù)庫的強(qiáng)大組合,前端采用jquery UI架構(gòu)[7],采用echarts插件更立體地顯示橋梁監(jiān)測(cè)數(shù)據(jù)的變化,Web服務(wù)器主要實(shí)現(xiàn)用戶以及管理員的注冊(cè),登陸,權(quán)限管理等[8]。用戶能夠查看實(shí)時(shí)橋梁監(jiān)測(cè)數(shù)據(jù)以及變化等。管理員能夠查看以及更改橋梁監(jiān)測(cè)數(shù)據(jù)閾值,并且能夠?qū)π聜鞲衅鬟M(jìn)行注冊(cè)添加等。上位機(jī)由ARM Cortex- A9組成[9],移植Linux 3.14內(nèi)核和文件系統(tǒng),主要負(fù)責(zé)將數(shù)據(jù)采集系統(tǒng)采集到的數(shù)據(jù)通過協(xié)議轉(zhuǎn)換(RS232->TCP/IP)[10],通過光纖傳輸給遠(yuǎn)程控制中心的Web服務(wù)器,方便處理分析[11]。下位機(jī)由多個(gè)不同種類的信號(hào)采集模塊構(gòu)成,數(shù)量根據(jù)橋梁的大小以及布設(shè)傳感器的密集程度決定。目前市場(chǎng)上傳感器多由不同廠家生產(chǎn)部署,因此其信號(hào)類型不一,例如在應(yīng)變以及位移等傳感器方面多采用光纖光柵傳感器,而在濕度、加速度等方面多采用模擬信號(hào)傳輸?shù)膫鞲衅鱗12]。因此采用STM32的A/D采集模塊以及SM125光纖光柵解調(diào)儀分別將模擬信號(hào)以及光纖光柵信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)[13],并將該數(shù)據(jù)以RS232傳輸?shù)缴衔粰C(jī),實(shí)現(xiàn)不同信號(hào)的融合。系統(tǒng)最底端部分由各種傳感器構(gòu)成,包括應(yīng)變、溫濕度、加速度傳感器等,實(shí)現(xiàn)監(jiān)測(cè)數(shù)據(jù)實(shí)時(shí)傳輸。
圖1 系統(tǒng)總體設(shè)計(jì)
基于Web的橋梁健康監(jiān)測(cè)系統(tǒng)(見表1)硬件部分由四部分組成,分別為Web服務(wù)器、上位機(jī)、下位機(jī)以及眾多傳感器部分。Web服務(wù)器采用華為2288HV5,上位機(jī)包含ARM Cortex-A9處理器,移植Linux3.14內(nèi)核和文件系統(tǒng),下位機(jī)則是采用STM3的A/D采集模塊以及SM125光纖光柵解調(diào)儀將不同信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),并將該數(shù)據(jù)以RS232傳輸?shù)缴衔粰C(jī),實(shí)現(xiàn)不同信號(hào)的融合。系統(tǒng)最底端部分由各種傳感器構(gòu)成,包括應(yīng)變、溫濕度、加速度傳感器等,實(shí)現(xiàn)監(jiān)測(cè)數(shù)據(jù)實(shí)時(shí)傳輸。
表1 主要硬件
應(yīng)變傳感器采用的是PI-FBG-E3000光纖光柵表面式應(yīng)變計(jì),具有高穩(wěn)定性以及高分辨率等特點(diǎn)。適合在橋梁等惡劣條件下安裝,不易損壞。其工作原理如圖2所示。
圖2 光纖光柵工作原理
溫濕度傳感器采用的型號(hào)為DS18B20,具有體積小,開銷小,精度高等特點(diǎn)。其電路簡(jiǎn)單,測(cè)量范圍較大。具體連接電路如圖3所示。
圖3 溫濕度傳感器電路圖
軟件設(shè)計(jì)分為3部分:(1)由Web服務(wù)器構(gòu)建的Web頁面。Web服務(wù)器采用B/S架構(gòu),服務(wù)器端采用J2EE+ORACLE的強(qiáng)大組合,前端采用jquery UI架構(gòu),采用echarts插件更立體地顯示橋梁監(jiān)測(cè)數(shù)據(jù)的變化。(2)上位機(jī)軟件?;贚inux內(nèi)核和文件系統(tǒng),采用C語言編寫,經(jīng)交叉編譯器編譯后,在ARM Cortex-A9運(yùn)行。(3)下位機(jī)軟件。下位機(jī)軟件主要包括模擬信號(hào)數(shù)據(jù)采集軟件以及光纖光柵信號(hào)采集軟件。采用C++語言編寫,QT編寫圖形界面GUI。
Web的頁面設(shè)計(jì)需要滿足以下幾個(gè)需求:
(1)實(shí)現(xiàn)用戶與管理員的登陸,注冊(cè),權(quán)限管理,信息修改等。用戶登陸后,能夠查看到實(shí)時(shí)橋梁健康監(jiān)測(cè)數(shù)據(jù)以及歷史信息。管理員登陸后,能夠查看到各傳感器設(shè)置的警戒閾值并進(jìn)行修改,能夠?qū)π屡f傳感器進(jìn)行添加刪除修改等,如圖4所示。
圖4 管理員傳感器管理界面
(2)從上位機(jī)傳送進(jìn)來的橋梁健康監(jiān)測(cè)數(shù)據(jù)完成實(shí)時(shí)展示,能夠直觀展示出數(shù)據(jù)的變化(采用折線圖),以及對(duì)高于危險(xiǎn)閾值的數(shù)據(jù)發(fā)出警報(bào),給出維修,加固的建議。同時(shí)保存到Oracle數(shù)據(jù)庫,并且能夠查詢到最近3個(gè)月的歷史數(shù)據(jù),如圖5所示。
3.1.1 Oracle數(shù)據(jù)庫
Oracle是甲骨文公司的一款關(guān)系數(shù)據(jù)庫管理系統(tǒng)。其在數(shù)據(jù)庫領(lǐng)域一直處于領(lǐng)先地位。
Oracle數(shù)據(jù)庫支持多用戶并發(fā)處理,用戶之間的操作不會(huì)互相破壞,Oracle數(shù)據(jù)庫能在滿足串行化的前提下,將并發(fā)行提升最大。
圖5 傳感器數(shù)據(jù)折線圖
Java中提供JDBC的jar包,通過Connection創(chuàng)建Statement對(duì)象,可以完成與Oracle數(shù)據(jù)庫的連接。通過statement.executeUpdate(sql)語句能夠?qū)崿F(xiàn)數(shù)據(jù)的增刪查改,以及數(shù)據(jù)庫的添加更改。
3.1.2 Socket通信
在網(wǎng)絡(luò)通信方面,Java提供了強(qiáng)力的支持,針對(duì)TCP和UDP傳輸均提供了不同的類。通過比對(duì),選擇基于TCP的網(wǎng)絡(luò)通信。它是一種面向連接的、可靠的、基于字節(jié)流的傳輸層數(shù)據(jù)通信協(xié)議,特別適合數(shù)據(jù)的連續(xù)傳輸。在Java中Socket通信實(shí)現(xiàn)步驟如下 :
(1)建立ServerSocket對(duì)象,通過Socket accept()建立監(jiān)聽,直至有客戶端發(fā)送來連接請(qǐng)求;
(2)建立Socket對(duì)象,通過socket(host,port)連接指定的服務(wù)器和端口,向服務(wù)器發(fā)出連接請(qǐng)求;
(3)服務(wù)器通過accept()接收客戶端的連接請(qǐng)求并且實(shí)現(xiàn)服務(wù)器與客戶端的連接;
(4)打開輸入輸出流OutputStream,InputStream,按照一定的協(xié)議進(jìn)行讀寫操作;
(5)服務(wù)器處理數(shù)據(jù)后返回的結(jié)果;
(6)客戶端接收服務(wù)器返回的結(jié)果;
(7)重復(fù)步驟4~6;
(8)結(jié)束連接,完成通信。
上位機(jī)采用ARM Cortex-A9處理器,在Ubuntu環(huán)境下完成Linux內(nèi)核的配置和編譯。搭建交叉編譯環(huán)境以及文件系統(tǒng)以及串口的配置后,編譯上位機(jī)軟件。
為了滿足橋梁健康監(jiān)測(cè)的實(shí)時(shí)性,程序采用多線程編程,具體流程如下所示:
(1)初始化串口,確定波特率、奇偶校驗(yàn)等,啟動(dòng)串口。
(2)A信號(hào)量開始接收,并判斷是否達(dá)到接收最大值,如果沒有,則繼續(xù)接收,直至達(dá)到A信號(hào)量接收最大值,創(chuàng)建子線程pthread creat()。
(3)主線程:B信號(hào)量開始接收,并判斷是否達(dá)到接收最大值,如果沒有,則繼續(xù)接收,直至達(dá)到B信號(hào)量接收最大值,重復(fù)步驟2。
子線程:?jiǎn)?dòng)TCP/UDP通信,根據(jù)穩(wěn)定性特點(diǎn)采用TCP面向連接通信,并釋放A或者B信號(hào)量。
流程如圖6所示。
圖6 多線程流程
下位機(jī)采用STM32單片機(jī)以及SM125解調(diào)儀,連接至各傳感器,根據(jù)不同傳感器的不同量程,經(jīng)A/D轉(zhuǎn)換以及調(diào)制解調(diào)后,將模擬信號(hào)以及光纖光柵信號(hào)轉(zhuǎn)換至數(shù)字信號(hào),通過RS232傳送給上位機(jī),如圖7所示。
圖7 解調(diào)儀配置界面
根據(jù)傳統(tǒng)橋梁健康監(jiān)測(cè)存在的問題,設(shè)計(jì)了一種橋梁健康監(jiān)測(cè)系統(tǒng),對(duì)比傳統(tǒng)橋梁健康監(jiān)測(cè)系統(tǒng)[14],解決了其數(shù)據(jù)相對(duì)孤立,布設(shè)新的傳感器困難,難以實(shí)現(xiàn)多傳感器數(shù)據(jù)融合,為深層次的決策做支持等問題。該系統(tǒng)具有可靠,高移動(dòng)性,遠(yuǎn)程訪問網(wǎng)頁,便于維護(hù)以及隨時(shí)隨地查看監(jiān)督等特點(diǎn),實(shí)現(xiàn)了數(shù)據(jù)融合。通過測(cè)試,網(wǎng)站運(yùn)行流暢,支持在多個(gè)系統(tǒng)運(yùn)行。
該系統(tǒng)能夠完成用戶以及管理員的注冊(cè)與使用,按照等級(jí)進(jìn)行權(quán)限管理,用戶能夠?qū)崟r(shí)查看傳感器數(shù)據(jù)以及橋梁健康情況,管理員能夠?qū)溟撝狄约坝脩粜畔⑦M(jìn)行更改,并根據(jù)當(dāng)前傳感器數(shù)據(jù)進(jìn)行數(shù)據(jù)分析,給出合理的維修保養(yǎng)建議。
系統(tǒng)分為橋梁現(xiàn)場(chǎng)部分和遠(yuǎn)程控制中心部分。其中間通過光纖進(jìn)行傳輸[15],保證了其可靠性和準(zhǔn)確性,具有較高的可移植性,支持傳感器的添加注冊(cè)以及二次開發(fā)。