鄧子畏 朱紅求 唐朝暉 黃科科
摘? ?要:針對(duì)遠(yuǎn)程數(shù)據(jù)采集和解析過程中各設(shè)備制造企業(yè)數(shù)據(jù)協(xié)議不一致的問題,設(shè)計(jì)了一種基于MQTT的混凝土泵車機(jī)群數(shù)據(jù)接入系統(tǒng)。該系統(tǒng)基于MQTT設(shè)計(jì)了統(tǒng)一的應(yīng)用層消息協(xié)議,邊緣層采用蜂窩網(wǎng)絡(luò)進(jìn)行遠(yuǎn)程數(shù)據(jù)傳輸。服務(wù)器端采用分布式和集群架構(gòu)高速處理超大并發(fā)數(shù)據(jù),利用配置和腳本結(jié)合的方式實(shí)現(xiàn)了對(duì)新數(shù)據(jù)協(xié)議的高度可擴(kuò)展。數(shù)據(jù)接入測(cè)試實(shí)驗(yàn)驗(yàn)證了本系統(tǒng)的有效性。
關(guān)鍵詞:泵車機(jī)群;數(shù)據(jù)接入;數(shù)據(jù)解析;MQTT
中圖分類號(hào):TP274.2? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1003—6199(2020)02—0001—05
Abstract:A data access system for concrete pump truck group based on MQTT is designed to solve the problem of inconsistent data protocol among equipment manufacturers for remote data acquisition and analysis. The system designs a unified application layer message protocol based on MQTT,and the edge layer uses cellular network for remote data transmission. The server adopts the distributed and cluster architecture to process the super-large concurrent data at high speed,and high scalability to new data protocols is achieved by combining configuration and script. Data access test experiments verify the effectiveness of the developed system.
Key words:concrete pump truck group;data access system;data parsing;MQTT
隨著信息技術(shù)和人工智能技術(shù)的發(fā)展,工程機(jī)械設(shè)備的遠(yuǎn)程監(jiān)控與智能故障診斷已經(jīng)成為當(dāng)今工程機(jī)械智能化的發(fā)展趨勢(shì)[1]。完整真實(shí)的數(shù)據(jù)源是智能化方法的分析基礎(chǔ)和證據(jù)支持,有效的數(shù)據(jù)獲取至關(guān)重要[2]。然而,由于缺乏統(tǒng)一的數(shù)據(jù)采集和存儲(chǔ)標(biāo)準(zhǔn),不同工程機(jī)械設(shè)備廠商各自設(shè)計(jì)開發(fā)數(shù)據(jù)協(xié)議和采集平臺(tái),大量的重復(fù)建設(shè)導(dǎo)致資源浪費(fèi),并給數(shù)據(jù)分析帶來了困難。
云計(jì)算技術(shù)的發(fā)展給公共數(shù)據(jù)平臺(tái)的建設(shè)創(chuàng)造了條件[3]。在建設(shè)公共數(shù)據(jù)采集系統(tǒng)過程中,數(shù)據(jù)協(xié)議不一致導(dǎo)致系統(tǒng)數(shù)據(jù)對(duì)接困難。為了解決這一問題,通常采取邊緣層解析轉(zhuǎn)換、服務(wù)器端開發(fā)擴(kuò)展、配置化、腳本解析等手段實(shí)現(xiàn)不同數(shù)據(jù)協(xié)議的數(shù)據(jù)接入。上述數(shù)據(jù)接入方式會(huì)帶來了終端成本增加、服務(wù)器端維護(hù)成本高、接入周期延長等問題。
在綜合分析各主流接入方案的基礎(chǔ)上,設(shè)計(jì)基于MQTT的混凝土泵車機(jī)群數(shù)據(jù)接入系統(tǒng),通過融合協(xié)議封裝、配置、動(dòng)態(tài)腳本的聯(lián)合方案,實(shí)現(xiàn)低成本開發(fā)數(shù)據(jù)終端,并快捷接入新的數(shù)據(jù)通信協(xié)議數(shù)據(jù)。研發(fā)的混凝土泵車機(jī)群數(shù)據(jù)接入和處理系統(tǒng),方便快捷地接入各類數(shù)據(jù)協(xié)議的混凝土泵車機(jī)群,為機(jī)群設(shè)備遠(yuǎn)程智能化監(jiān)控創(chuàng)造了條件。
1? ?系統(tǒng)設(shè)計(jì)
1.1? ?系統(tǒng)架構(gòu)
系統(tǒng)從混凝土泵車機(jī)群電控箱的控制器采集數(shù)據(jù),封裝后通過蜂窩無線網(wǎng)絡(luò)傳輸?shù)竭h(yuǎn)程服務(wù)器端。服務(wù)器對(duì)數(shù)據(jù)進(jìn)行解析并存儲(chǔ)、發(fā)布,供各類數(shù)據(jù)應(yīng)用使用。系統(tǒng)的整體架構(gòu)如下圖1所示:
系統(tǒng)采用具備RTU基本通訊功能的終端與車輛電控系統(tǒng)的PLC對(duì)接,通過CAN總線與PLC通信,獲取設(shè)備運(yùn)行數(shù)據(jù),并根據(jù)設(shè)計(jì)的封裝協(xié)議對(duì)用戶數(shù)據(jù)進(jìn)行封裝。然后,基于消息隊(duì)列遙測(cè)傳輸協(xié)議(Message Queuing Telemetry Transport,MQTT)通過蜂窩網(wǎng)絡(luò)無線傳輸,將信息上傳到服務(wù)器端。服務(wù)器端收到信息后,對(duì)信息進(jìn)行解包,選擇對(duì)應(yīng)的路由解析出所有的參數(shù),根據(jù)終端運(yùn)行配置選擇進(jìn)行存儲(chǔ)和發(fā)布。具體的數(shù)據(jù)流轉(zhuǎn)如下圖2所示:
1.2? ?統(tǒng)一封裝協(xié)議設(shè)計(jì)
由于不同廠家的數(shù)據(jù)協(xié)議各不相同,服務(wù)器端無法直接識(shí)別用戶數(shù)據(jù)的內(nèi)容。為了降低終端設(shè)計(jì)開發(fā)的成本,將數(shù)據(jù)協(xié)議解析放在了服務(wù)器端,充分利用云計(jì)算的強(qiáng)大計(jì)算能力,從而提高設(shè)備接入的并發(fā)量。為了使服務(wù)器端能統(tǒng)一識(shí)別不同廠家的數(shù)據(jù)協(xié)議,參考MQTT v3.1.1的協(xié)議結(jié)構(gòu)[4],設(shè)計(jì)了統(tǒng)一的封裝協(xié)議對(duì)用戶數(shù)據(jù)進(jìn)行封裝,封裝后的數(shù)據(jù)在MQTT消息payload中進(jìn)行傳輸。設(shè)計(jì)的封裝協(xié)議棧如下圖3所示:
封裝協(xié)議的消息頭部分包含了統(tǒng)一的通信控制參數(shù),定義了消息的序號(hào)、生成時(shí)間戳、消息類型、消息標(biāo)題、協(xié)議版本號(hào),固定長度為9個(gè)字節(jié),是通信消息中最重要的部分。固定消息頭的具體結(jié)構(gòu)如下圖4所示:
封裝協(xié)議并不嚴(yán)格規(guī)定消息體(Payload)的格式,消息體內(nèi)容長度可變,包含參數(shù)與參數(shù)長度兩類信息,用戶數(shù)據(jù)也作為其中一個(gè)參數(shù)進(jìn)行傳輸,這正是封裝協(xié)議能夠封裝其他各類數(shù)據(jù)協(xié)議的關(guān)鍵所在。所以在終端對(duì)用戶數(shù)據(jù)進(jìn)行封裝的時(shí)候,無須關(guān)心用戶數(shù)據(jù)的具體內(nèi)容,只需要知道這個(gè)用戶數(shù)據(jù)是運(yùn)行數(shù)據(jù)還是控制數(shù)據(jù)即可,這在定制終端的時(shí)候,直接根據(jù)CANID的分配即可體現(xiàn)出來[5]。消息尾部設(shè)有校驗(yàn)值(Check Value),用來校驗(yàn)消息完整性和準(zhǔn)確性。
整個(gè)測(cè)試試驗(yàn)一共運(yùn)行穩(wěn)定運(yùn)行157小時(shí),數(shù)據(jù)處理峰值為42477條/秒,處理數(shù)據(jù)超過161億條,解析出參數(shù)超過644億個(gè)。經(jīng)過數(shù)據(jù)統(tǒng)計(jì)分析,多次測(cè)試的數(shù)據(jù)丟失率為0,實(shí)現(xiàn)了大規(guī)模機(jī)群下的數(shù)據(jù)準(zhǔn)確采集。
2? ?系統(tǒng)實(shí)際應(yīng)用
在設(shè)計(jì)開發(fā)統(tǒng)一接入服務(wù)平臺(tái)的基礎(chǔ)上,構(gòu)建了工程機(jī)械設(shè)備集中管理平臺(tái)。集中管理平臺(tái)采集的數(shù)據(jù)主要包含定位數(shù)據(jù)、通訊數(shù)據(jù)、電控?cái)?shù)據(jù)、運(yùn)行數(shù)據(jù)等,用戶數(shù)據(jù)協(xié)議中的部分運(yùn)行數(shù)據(jù)如下表1所示。
分析用戶的數(shù)據(jù)協(xié)議,大于1個(gè)字節(jié)的數(shù)據(jù)按照字節(jié)參數(shù)處理,占1位的開關(guān)量,可以按照位參數(shù)進(jìn)行處理。有些數(shù)據(jù)含有小數(shù),為了在傳輸過程中保持精度,對(duì)數(shù)據(jù)進(jìn)行了放大處理,在配置解析的時(shí)候可以通過線性校正進(jìn)行復(fù)原。在GPS數(shù)據(jù)中,為了兼容全球位置,終端通過字母標(biāo)識(shí)符對(duì)東經(jīng)、西京、南緯、北緯進(jìn)行區(qū)分。終端定位信號(hào)統(tǒng)一的行為,可以通過編寫信號(hào)后處理腳本進(jìn)行處理。根據(jù)分析結(jié)果,將信號(hào)配置與腳本在接入平臺(tái)上的解析規(guī)則模塊進(jìn)行設(shè)置,在終端數(shù)據(jù)到達(dá)后,通信系統(tǒng)會(huì)獲取這些解析規(guī)則并進(jìn)行緩存,應(yīng)用這些規(guī)則對(duì)終端的數(shù)據(jù)進(jìn)行解析,規(guī)則設(shè)置和解析詳情如下圖9和圖10所示。
截至目前,開發(fā)的工程機(jī)械設(shè)備管理平臺(tái)已經(jīng)成功接入混凝土泵車設(shè)備4198臺(tái)。平臺(tái)已持續(xù)穩(wěn)定運(yùn)行超過一年,混凝土泵車上的終端每30s回傳一次所有數(shù)據(jù),終端與接入平臺(tái)保持長連接,從而實(shí)現(xiàn)雙向通信。接入平臺(tái)將終端的數(shù)據(jù)解析后根據(jù)設(shè)置存入非關(guān)系型數(shù)據(jù)庫數(shù)據(jù)庫、緩存數(shù)據(jù)庫,以及通過消息中間件進(jìn)行發(fā)布,從而支持設(shè)備管理平臺(tái)的歷史軌跡、實(shí)時(shí)告警、運(yùn)行狀態(tài)等功能。具體的應(yīng)用功能界面如下圖11、圖12和圖13所示。
依托通信管理平臺(tái),工程機(jī)械設(shè)備管理平臺(tái)實(shí)現(xiàn)了設(shè)備實(shí)時(shí)狀態(tài)展示、設(shè)備實(shí)時(shí)告警、設(shè)備遠(yuǎn)程控制、歷史軌跡查詢、工作量統(tǒng)計(jì)報(bào)表、電子圍欄等功能,滿足工程設(shè)備制造企業(yè)、設(shè)備租賃企業(yè)等企業(yè)遠(yuǎn)程設(shè)備監(jiān)控、運(yùn)行成本分析等日常運(yùn)營管理需求。這種方式取代了以往粗放式的管理模式,能夠?yàn)槠髽I(yè)大量節(jié)省運(yùn)營與設(shè)備維護(hù)成本。
2? ?結(jié)? ?論
針對(duì)工程機(jī)械設(shè)備集中管理平臺(tái)開發(fā)中遠(yuǎn)程數(shù)據(jù)采集存在的問題,設(shè)計(jì)了混凝土泵車機(jī)群數(shù)據(jù)接入系統(tǒng)?;贛QTT設(shè)計(jì)了統(tǒng)一封裝協(xié)議,結(jié)合“配置+動(dòng)態(tài)腳本”的方式進(jìn)行數(shù)據(jù)解析,有效解決了混凝土泵車機(jī)群數(shù)據(jù)接入時(shí)遇到的多個(gè)設(shè)備生產(chǎn)廠家數(shù)據(jù)協(xié)議不兼容的難題。系統(tǒng)設(shè)計(jì)的通訊架構(gòu)及數(shù)據(jù)解析流程,很好地實(shí)現(xiàn)了混凝土泵車群的數(shù)據(jù)接入。該系統(tǒng)也可以擴(kuò)展到其他離散型設(shè)備行業(yè)的數(shù)據(jù)接入,特別適用于移動(dòng)式離散設(shè)備行業(yè)的數(shù)據(jù)接入。
參考文獻(xiàn)
[1]? ? 高金吉. 工業(yè)互聯(lián)網(wǎng)賦能裝備智能運(yùn)維與自主健康[J].? 計(jì)算機(jī)集成制造系統(tǒng),2019,25(12):3013-3025.
[2]? ? 林維,陳曦,王松. OSSData:面向開源社區(qū)的分布式數(shù)據(jù)采集框架[J]. 計(jì)算技術(shù)與自動(dòng)化,2019,38(1):102-107.
[3]? ? 王元卓,靳小龍,程學(xué)旗. 大數(shù)據(jù)分析系統(tǒng)創(chuàng)新平臺(tái)與生態(tài)建設(shè)[J]. 大數(shù)據(jù),2018,4(1):2018010.
[4]? ? 邱雨,彭大芹,梁吉申,等. 基于消息過濾算法實(shí)現(xiàn)MQTT協(xié)議智能家居的識(shí)別[J]. 現(xiàn)代電子技術(shù),2018,41(16):64-67.
[5]? ? 徐剛,陳立平,張瑞瑞,等.? 基于精準(zhǔn)灌溉的農(nóng)業(yè)物聯(lián)網(wǎng)應(yīng)用研究[J].? 計(jì)算機(jī)研究與發(fā)展,2010,47(S):333-337.
[6]? ? 陽旺,樊振宇,吳帆. 基于6LoWPAN與MQTT的無線傳感網(wǎng)絡(luò)設(shè)計(jì)[J].? 國防科技大學(xué)學(xué)報(bào),2019,41(1):164-171
[7]? ? JUTADHAMAKORN P,PILLAVAS T,VISOOTTIVISETH V,et al. A scalable and low-cost MQTT broker clustering system[C]. The 2nd International Conference on Information Technology,Nakhonpathom,2017,1-5.
[8]? ? ZABASTA A,KUNICINA N,KONDRATJEVS K,et al. MQTT service broker for enabling the interoperability of smart city systems[C]. 2018 Energy and Sustainability for Small Developing Economies,F(xiàn)unchal,2018,1-6.
[9]? ? 孫元浩.如何構(gòu)建安全的Kafka集群[J].? 電信網(wǎng)技術(shù),2015,8:10-14.
[10]? IONESCU V M. The analysis of the performance of rabbitMQ and activeMQ[C]. The 14th RoEduNet International Conference - Networking in Education and Research,Craiova,Romania,2015,132-137.
[11]? DAWAR S,VAN DER MEER S,F(xiàn)ALLON E,et al. Building a scalable event processing system with messaging and policies test and evaluation of rabbitMQ and drools expert[C]. The 12th International Conference on Information Technology and Telecommunication,Athlone,Ireland,2013,127-134.