符洪生 梁柱
摘 要:河?xùn)|特大橋是G35濟(jì)廣高速安徽段的一座重要橋梁,橋梁跨度大,結(jié)構(gòu)復(fù)雜,為大橋建立一個長期健康監(jiān)測系統(tǒng),對掌握橋梁的安全使用狀況,確保大橋的安全運(yùn)營和服務(wù)管養(yǎng)有非常重要的意義。本文介紹了河?xùn)|特大橋健康監(jiān)測軟件系統(tǒng)的設(shè)計(jì)過程,提出了一種基于DTU的通用數(shù)據(jù)采集程序,提升了系統(tǒng)的通用性和可擴(kuò)展性。
關(guān)鍵詞:橋梁;監(jiān)測;大數(shù)據(jù);數(shù)據(jù)傳輸單元
1 概述
河?xùn)|特大橋位于安徽省岳西縣響腸鎮(zhèn)無愁村外畈組,距岳西收費(fèi)站11公里,全長1 010 m。橋梁起點(diǎn)樁號為K794+814 m,終點(diǎn)樁號為K795+824 m,由左右兩幅橋組成。地面標(biāo)高150.16 m~251.48 m,主橋墩高約為61 m~84 m,于2009年12月建成通車。為大橋建立一個長期健康監(jiān)測系統(tǒng),對掌握橋梁的安全使用狀況,確保大橋的安全運(yùn)營和服務(wù)管養(yǎng)有非常重要的意義。我司使用新研發(fā)的基于DTU[1]的數(shù)據(jù)采集程序和基于B/S流式大數(shù)據(jù)健康監(jiān)測系統(tǒng)[2]完成了河?xùn)|特大橋健康監(jiān)測軟件系統(tǒng)的建設(shè),建成后的健康監(jiān)測系統(tǒng)具有高實(shí)時性、通用性強(qiáng)等特點(diǎn)。
2 軟件系統(tǒng)需求分析與設(shè)計(jì)
隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,物聯(lián)網(wǎng)設(shè)備[3](如傳感器、采集儀)在橋梁結(jié)構(gòu)健康監(jiān)測中得到了廣泛使用,由于不同廠家的物聯(lián)網(wǎng)設(shè)備有不同的采集數(shù)據(jù)協(xié)議如485協(xié)議、232協(xié)議,即使相同的協(xié)議,采集命令和返回結(jié)果也不同,因此在橋梁結(jié)構(gòu)健康監(jiān)測軟件系統(tǒng)的設(shè)計(jì)開發(fā)過程中,常需要修改或重新設(shè)計(jì)采集程序,增加了成本。為解決這些問題,本系統(tǒng)采集端基于DTU通訊,構(gòu)建了設(shè)備庫和自有的數(shù)據(jù)傳輸協(xié)議,并通過基于storm的流式大數(shù)據(jù)處理程序提高了系統(tǒng)實(shí)時性。系統(tǒng)結(jié)構(gòu)如圖1所示,由物聯(lián)網(wǎng)設(shè)備和部署在云平臺上的配置程序、采集程序、基于storm流式大數(shù)據(jù)集群處理程序和展示程序組成。采集程序通過無線網(wǎng)絡(luò)向通訊單元(DTU)發(fā)采集命令,通訊單元向采集儀轉(zhuǎn)發(fā)采集命令,并將采集儀返回的結(jié)果轉(zhuǎn)發(fā)給采集程序,采集程序?qū)Y(jié)果處理后提交到分布式消息隊(duì)列中,基于storm的流式大數(shù)據(jù)集群處理程序從分布式消息隊(duì)列獲取數(shù)據(jù),進(jìn)行實(shí)時處理,將處理后的數(shù)據(jù)存儲到分布式緩存和數(shù)據(jù)庫中,數(shù)據(jù)展示程序從分布式緩存和數(shù)據(jù)庫中獲取數(shù)據(jù),并做實(shí)時展示。本文將重點(diǎn)介紹配置程序和采集程序。
2.1 配置程序
為支持不同的設(shè)備(傳感器、采集儀和通訊單元DTU),本系統(tǒng)提出并構(gòu)建了設(shè)備庫。設(shè)備庫是用來管理不同廠家不同型號的傳感器、采集儀和通訊單元。在設(shè)備庫里創(chuàng)建這些設(shè)備時,要提供設(shè)備的基本信息和采集信息。對于采集儀主要包括類型、波特率、數(shù)據(jù)位、采集命令和返回結(jié)果等。配置程序提供了模板語言描述采集命令和采集結(jié)果。采集程序內(nèi)置了設(shè)備庫里一些設(shè)備采集過程的處理程序。
配置程序?qū)蛄航】当O(jiān)測系統(tǒng)抽象為傳感器、采集儀、通訊單元及它們間的關(guān)系,并提供了相關(guān)的配置功能。它們間的關(guān)系可理解為一個橋梁健康監(jiān)測軟件系統(tǒng)是一個項(xiàng)目,一個項(xiàng)目包括多個通訊單元,一個通訊單元包括多個采集儀,一個采集儀可以連接多個傳感器。
2.2 采集程序
采集程序部署在云平臺主機(jī)(如阿里云主機(jī))上。采集程序啟動后,從配置程序獲取項(xiàng)目的配置信息如一個項(xiàng)目有哪些通訊單元,一個通訊單元由哪些采集儀組成。并啟動socket監(jiān)聽端口。當(dāng)接收到來自通訊單元(DTU)的連接請求后,根據(jù)配置程序返回的相關(guān)采集儀的配置信息,向DTU發(fā)送采集命令,DTU將采集到的結(jié)果返回給采集程序,采集程序?qū)?shù)據(jù)處理后,以自定義的數(shù)據(jù)傳輸協(xié)議發(fā)送到分布式消息隊(duì)列中,基于storm流式大數(shù)據(jù)集群處理程序從分布式消息隊(duì)列中獲取數(shù)據(jù)并進(jìn)行處理。
在這一過程中,為使流式處理程序具有通用性,采集程序使用自定義的數(shù)據(jù)傳輸協(xié)議來傳輸數(shù)據(jù)。自定義的數(shù)據(jù)傳輸協(xié)議里數(shù)據(jù)是由數(shù)據(jù)包組成;數(shù)據(jù)包由包頭和數(shù)據(jù)組成。
包頭由數(shù)據(jù)傳輸方式(3個字節(jié))、廠家編碼(3個字節(jié))、分隔符和采集協(xié)議(3個字節(jié))組成如DTUKLM.485。數(shù)據(jù)傳輸方式有DTU和網(wǎng)絡(luò)(NET)兩種。DTU的英文全稱是Data Transfer unit,專門用于將串口數(shù)據(jù)轉(zhuǎn)換為IP數(shù)據(jù)或?qū)P數(shù)據(jù)轉(zhuǎn)換為串口數(shù)據(jù)通過無線通信網(wǎng)絡(luò)進(jìn)行傳送的無線終端設(shè)備;廠家編碼用來表示不同廠家的代碼如昆侖海岸KLM;分隔符使用點(diǎn)(.)來表示;采集協(xié)議是指采集程序獲取采集儀的協(xié)議如485表示485協(xié)議。
數(shù)據(jù)包里的數(shù)據(jù)包括采集儀id、采集時刻和通道數(shù)據(jù)。采集儀id用來唯一標(biāo)識采集儀設(shè)備,由配置程序在創(chuàng)建時生成。采集時刻是自1970年1月1日到采集時經(jīng)歷的毫秒數(shù),用time表示。數(shù)據(jù)用data表示,是各個通道上的數(shù)據(jù),每個通道用no來表示,同一通道上多個數(shù)據(jù)使用serial來區(qū)分。val表示對應(yīng)的數(shù)據(jù)。本項(xiàng)目為低頻(小于1hz)采集,數(shù)據(jù)是以json字符串的形式傳輸?shù)娜纾篋TUKLM.485{"id":"5f0c17f5c7dc23836ecc557d","time":1613635207031,"data":[{"no":1,"serial":1,"val":"004691"},{"no":2,"serial":1,"val":"005257"}]}表示id為5f0c17f5c7dc23836ecc557d的采集儀在北京時間2021年2月18日16點(diǎn)00分07秒采集到的2個通道的數(shù)據(jù),通道1數(shù)據(jù)為4 691,通道2為5 257。
3 結(jié)論
本文介紹了河?xùn)|特大橋結(jié)構(gòu)健康監(jiān)測系統(tǒng)軟件設(shè)計(jì)過程,通過創(chuàng)建自有的設(shè)備庫,自定義的數(shù)據(jù)傳輸協(xié)議,實(shí)現(xiàn)了對不同廠家物聯(lián)網(wǎng)設(shè)備的支持,提升了系統(tǒng)的通用性,降低了成本;使用基于storm的流式大數(shù)據(jù)處理程序,提高了系統(tǒng)的實(shí)時性。當(dāng)然,本系統(tǒng)還有較大的提升空間,如對配置程序的改動必須重啟采集程序,可通過在配置程序發(fā)生更改時使用消息機(jī)制通知采集程序來解決。
參考文獻(xiàn):
[1]李秋慧,李潔,王傳敏,等.基于GPRS DTU的遠(yuǎn)程可控水質(zhì)監(jiān)測船[J].電子技術(shù)與軟件工程,2021(5):94-96.
[2]梁柱.基于大數(shù)據(jù)架構(gòu)的橋梁健康監(jiān)測云平臺[J].中國交通信息化,2020(6):115-117.
[3]肖時輝,梅敏彰,唐孟雄,等.基于LoRa的城市立交橋遠(yuǎn)程監(jiān)測數(shù)據(jù)采集系統(tǒng)[J].公路,2021,66(2):87-93.