• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Modbus與MQTT融合工業(yè)能耗網(wǎng)關(guān)系統(tǒng)設(shè)計(jì)

      2019-07-25 01:44:04胡存駱德漢童懷
      物聯(lián)網(wǎng)技術(shù) 2019年4期
      關(guān)鍵詞:線程網(wǎng)關(guān)消息

      胡存 駱德漢 童懷

      摘 要:針對(duì)傳統(tǒng)工業(yè)數(shù)據(jù)監(jiān)控系統(tǒng)采集設(shè)備數(shù)量少、通信距離短、抗干擾性差、實(shí)時(shí)性差等問題,文中設(shè)計(jì)了一款基于Modbus和MQTT融合的工業(yè)能耗網(wǎng)關(guān)系統(tǒng)。該系統(tǒng)可以支持多個(gè)設(shè)備同時(shí)進(jìn)行數(shù)據(jù)采集,集成度高。通過4G模塊,采用無線方式支持遠(yuǎn)距離數(shù)據(jù)傳輸。通過Modbus協(xié)議和MQTT協(xié)議融合方式提高數(shù)據(jù)采集和傳輸效率,進(jìn)一步提高系統(tǒng)實(shí)時(shí)性。采用線程池技術(shù)提高系統(tǒng)運(yùn)行效率,支持多臺(tái)設(shè)備并發(fā)采集。可在終端對(duì)設(shè)備進(jìn)行反向控制,使系統(tǒng)更加智能化。經(jīng)驗(yàn)證,系統(tǒng)運(yùn)行穩(wěn)定可靠,具有廣闊的應(yīng)用前景。

      關(guān)鍵詞:工業(yè)能耗;Modbus;JSON;MQTT;4G;線程池

      中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):2095-1302(2019)04-00-06

      0 引 言

      隨著“物聯(lián)網(wǎng)+”的發(fā)展,物聯(lián)網(wǎng)技術(shù)得到了廣泛應(yīng)用。物聯(lián)網(wǎng)是指通過各種信息傳感設(shè)備,實(shí)時(shí)采集任何需要監(jiān)控、連接設(shè)備等信息,與互聯(lián)網(wǎng)結(jié)合形成巨大的網(wǎng)絡(luò)[1-2]。為了構(gòu)造節(jié)能環(huán)保的工業(yè)系統(tǒng),該系統(tǒng)基于Modbus與MQTT融合的方式,通過4G模塊,采用無線方式對(duì)工業(yè)用電量、溫度、壓力等能耗設(shè)備進(jìn)行遠(yuǎn)程監(jiān)控。

      本文設(shè)計(jì)了一種Modbus和MQTT融合的工業(yè)能耗網(wǎng)關(guān)系統(tǒng)。系統(tǒng)采用Modbus與MQTT融合的方式,使用Modbus線程采集底層數(shù)據(jù),MQTT線程與服務(wù)器負(fù)責(zé)接收和發(fā)送數(shù)據(jù),采集與傳輸分別使用不同線程,充分利用CPU,從總體上提高智能網(wǎng)關(guān)采集和傳輸速度。通過JSON模塊解析不同設(shè)備的名稱,進(jìn)入線程池,一臺(tái)設(shè)備占用一條線程,支持多臺(tái)設(shè)備同時(shí)采集,提高系統(tǒng)并發(fā)性和集成度。支持反向控制,可以控制設(shè)備開關(guān)、設(shè)定溫度值、設(shè)定壓力等,提高系統(tǒng)的智能化水平。

      1 系統(tǒng)總體架構(gòu)設(shè)計(jì)

      該網(wǎng)關(guān)系統(tǒng)由Modbus,JSON,MQTT模塊組成,結(jié)構(gòu)如圖1所示。

      (1)Modbus模塊將網(wǎng)關(guān)系統(tǒng)通過Modbus RTU經(jīng)RS 485總線接口或Modbus TCP經(jīng)網(wǎng)口鏈接到工業(yè)設(shè)備的儀器和傳感器,采集或控制電流、電壓、溫度、壓力值等。

      (2)JSON模塊用來連通Modbus和MQTT模塊,通過JSON解析函數(shù),解析MQTT的msg消息,告知Modbus模塊需要采集或控制設(shè)備的名稱與對(duì)應(yīng)協(xié)議點(diǎn)。JSON封裝函數(shù)把Modbus模塊采集的協(xié)議點(diǎn)數(shù)值封裝的JSON格式數(shù)據(jù)包作為為MQTT模塊傳輸進(jìn)行的準(zhǔn)備。

      (3)MQTT模塊通過MQTT接收Web端或APP端發(fā)送至服務(wù)器的訂閱消息,將JSON格式數(shù)據(jù)包發(fā)送到終端設(shè)備。

      2 Modbus協(xié)議

      Modbus協(xié)議是工業(yè)通信的一種通用標(biāo)準(zhǔn),是電子控制器領(lǐng)域的通用語言。控制器經(jīng)由網(wǎng)絡(luò)和機(jī)器設(shè)備進(jìn)行通信[3],它制定了消息域格局和內(nèi)容的公共格式。當(dāng)在Modbus網(wǎng)絡(luò)上通信時(shí),此協(xié)議決定了每個(gè)控制器需要知道的設(shè)備地址,識(shí)別按地址發(fā)送的消息,決定要產(chǎn)生哪種行為。如果需要回應(yīng),控制器將生成反饋信息并用Modbus協(xié)議發(fā)出。Modbus通用協(xié)議棧,協(xié)議數(shù)據(jù)單元由地址碼、功能數(shù)據(jù)單元(由功能碼和數(shù)據(jù)域組成)、校驗(yàn)碼構(gòu)成。Modbus協(xié)議幀如圖2所示。

      Modbus RTU采用異步串行傳輸,物理層為RS 485,數(shù)據(jù)鏈路層為Modbus的串行傳輸協(xié)議。Modbus RTU采用二進(jìn)制表現(xiàn)形式與緊湊的數(shù)據(jù)結(jié)構(gòu)在數(shù)據(jù)鏈路層上進(jìn)CRC校驗(yàn)。Modbus RTU具備抗干擾性強(qiáng)、通信效率高等特點(diǎn),應(yīng)用廣泛。

      Modbus TCP結(jié)合了以太網(wǎng)物理網(wǎng)絡(luò)和網(wǎng)絡(luò)標(biāo)準(zhǔn)TCP/IP及以Modbus作為應(yīng)用協(xié)議標(biāo)準(zhǔn)的數(shù)據(jù)表示方法。Modbus TCP報(bào)文被封裝于以太網(wǎng)TCP/IP數(shù)據(jù)包中。Modbus TCP 利用IP地址尋址服務(wù)器,Modbus TCP協(xié)議在RTU協(xié)議基礎(chǔ)上加一個(gè)MBAP報(bào)文頭,由于TCP是基于可靠連接的服務(wù),所以在Modbus TCP協(xié)議中沒有CRC校驗(yàn)碼。Modbus TCP具備抗干擾性強(qiáng)、遠(yuǎn)距離傳輸和穩(wěn)定性好等優(yōu)點(diǎn)。

      該系統(tǒng)主要使用Modbus協(xié)議03和10功能碼,對(duì)應(yīng)可讀取單個(gè)或多個(gè)保持寄存器和單個(gè)或多個(gè)寫多個(gè)保持寄存器,對(duì)應(yīng)網(wǎng)關(guān)采集和反向控制功能。

      3 JSON

      JSON(JavaScript Object Natation,JSON)作為一種輕量級(jí)數(shù)據(jù)交換格式,支持多種語言間的數(shù)據(jù)傳輸。目前很多應(yīng)用程序服務(wù)器都基于JSON格式交互,方便實(shí)現(xiàn)多層應(yīng)用架構(gòu)[4]。

      傳統(tǒng)的數(shù)據(jù)采集網(wǎng)關(guān)多采用XML技術(shù),該技術(shù)在Modbus數(shù)據(jù)解碼方面難度較高,導(dǎo)致解析代碼復(fù)雜,開發(fā)效率極低。該系統(tǒng)使用JSON數(shù)據(jù)格式,相比XML,JSON 更簡單、靈活。通過傳輸數(shù)據(jù)量來看,同一份數(shù)據(jù)信息,使用XML描述和JSON描述時(shí),JSON比XML更加高效。XML的子節(jié)點(diǎn)、父節(jié)點(diǎn)解析難度高,而JSON的解析難度低。這一點(diǎn)JSON較XML優(yōu)勢(shì)明顯,有利于在代碼開發(fā)階段提高開發(fā)效率,提高數(shù)據(jù)傳輸效率。

      4 MQTT協(xié)議

      MQTT是一種基于主題發(fā)布/訂閱的輕量級(jí)消息傳輸協(xié)議,以其開銷小、及時(shí)性好、可靠性高等優(yōu)勢(shì)在物聯(lián)網(wǎng)系統(tǒng)中得到廣泛應(yīng)用[6]。它專為M2M通信設(shè)計(jì),由IBM開發(fā),覆蓋全平臺(tái),可連接絕大部分聯(lián)網(wǎng)設(shè)備和外部設(shè)備[7]。

      客戶端通過訂閱相應(yīng)消息主題來接收其他客戶端推送的消息,服務(wù)器作為訂閱方和發(fā)布方的中介,接收客戶端(發(fā)布方)發(fā)布的消息,根據(jù)訂閱主題把消息推送到相應(yīng)的客戶端(訂閱方)[8-9]。MQTT結(jié)構(gòu)如圖3所示。

      圖3 MQTT結(jié)構(gòu)圖

      傳統(tǒng)系統(tǒng)采集傳輸使用HTTP協(xié)議。對(duì)比MQTT協(xié)議和HTTP協(xié)議數(shù)據(jù)包長度,發(fā)現(xiàn)MQTT的固定頭長度僅為2 B,協(xié)議簡潔,可降低網(wǎng)絡(luò)流量。HTTP協(xié)議使用輪循方式,導(dǎo)致系統(tǒng)的實(shí)時(shí)性較差,通信效率低下。

      在消息推送方案上,HTTP協(xié)議開發(fā)消息推送非常繁瑣,無論是iOS(蘋果)還是Android(安卓),如果采用“拉取”推送方式,則程序中信息的更新通知需要持續(xù)檢查,獲取消息時(shí)需給服務(wù)器發(fā)送拉取請(qǐng)求[10],信息無法直接通過服務(wù)器主動(dòng)發(fā)送給用戶,交互多次增加了移動(dòng)資源開銷[11]。MQTT還支持三個(gè)級(jí)別的QoS,無需自己寫確認(rèn)重傳機(jī)制。此外,為保障通信安全,MQTT也會(huì)采用SSL/TLS,以提高數(shù)據(jù)的安全性。

      5 系統(tǒng)硬件設(shè)計(jì)

      系統(tǒng)硬件結(jié)構(gòu)如圖4所示。

      圖4 系統(tǒng)硬件結(jié)構(gòu)圖

      該系統(tǒng)主要的核心處理器為TQ2416 ARM芯片,2416主頻400 MHz,單位功耗比2440小,且CPU支持4個(gè)串口。

      RS 485是一種通信接口,用以接收Modbus協(xié)議傳輸?shù)臄?shù)據(jù)。RS 485采用平衡發(fā)送和差分接收接口標(biāo)準(zhǔn)。發(fā)送端將電平信號(hào)轉(zhuǎn)換成差分信號(hào),經(jīng)A,B兩端通過雙絞線傳輸,到接收端再將差分信號(hào)轉(zhuǎn)換成電平信號(hào)。

      4G模塊采用SIM7100C模塊,通過TCP/IP把數(shù)據(jù)上傳到服務(wù)器或用來接收服務(wù)器數(shù)據(jù)。

      5.1 系統(tǒng)軟件設(shè)計(jì)

      物聯(lián)網(wǎng)關(guān)系統(tǒng)主流程:當(dāng)物聯(lián)網(wǎng)關(guān)MQTT與服務(wù)器建立連接后,網(wǎng)關(guān)訂閱Web端或APP端發(fā)布的消息,通過JSON模塊解析判斷Modbus協(xié)議方式。協(xié)議地址的10萬位為相應(yīng)的功能碼類型標(biāo)志,判斷采集或控制讀取相對(duì)應(yīng)寄存器地址或?qū)?shù)值寫入相對(duì)應(yīng)的寄存器地址。將采回?cái)?shù)值與協(xié)議點(diǎn)封裝JSON格式數(shù)據(jù)包通過MQTT發(fā)布函數(shù)將消息發(fā)送到客戶端。系統(tǒng)軟件流程如圖5所示。

      5.2 系統(tǒng)測(cè)試與分析

      通過MQTT.fx模擬Web端或APP端發(fā)送和接收數(shù)據(jù)。通過Modbus Slave模擬一臺(tái)工業(yè)能耗設(shè)備,設(shè)備參數(shù)用不同的協(xié)議點(diǎn)標(biāo)識(shí),如中央空調(diào)主電機(jī)用電量、冷疑器出水溫度、蒸發(fā)器進(jìn)水溫度對(duì)應(yīng)協(xié)議點(diǎn)為400001,400001,400003。協(xié)議地址以10萬位為相應(yīng)的功能碼類型,標(biāo)志為“4”表示數(shù)據(jù)采集功能,標(biāo)志為“5”則表示控制功能。

      5.2.1 MQTT.fx基本功能介紹

      (1)按工具條的設(shè)置按鈕進(jìn)行本地測(cè)試,連接到本地服務(wù)器192.168.16.212。MQTT.fx鏈接配置如圖7所示。

      (2)點(diǎn)擊下級(jí)菜單項(xiàng) Subscribe,在下拉框中選擇或輸入自己希望的主題,比如系統(tǒng)使用/EOSLink004,通過按其右側(cè)按鈕Subscribe來訂閱消息,點(diǎn)擊下級(jí)菜單項(xiàng) Publish,在下拉框中選擇或者輸入自己發(fā)布的主題,如/EOSLink004/5D52964D8081,再點(diǎn)擊其右側(cè)的按鈕Publish發(fā)布主題消息。MQTT.fx功能板如圖8所示。

      5.2.2 Modbus Slave功能

      Slave ID代表從設(shè)備ID,Address代表協(xié)議點(diǎn)起始地址為400000,Quantity代表協(xié)議點(diǎn)數(shù)量。Modbus Slave連接配置如圖9所示。

      5.2.3 數(shù)據(jù)采集具體測(cè)試流程

      用MQTT.fx的Publish功能來仿真服務(wù)器向網(wǎng)關(guān)系統(tǒng)發(fā)送的消息,/EOSLink004/5D52964D8081是MQTT服務(wù)器訂閱的主題,5D52964D8081是網(wǎng)關(guān)設(shè)備ID,400000~400031是協(xié)議點(diǎn),需采集32個(gè)協(xié)議點(diǎn)的數(shù)據(jù)。MQTT.fx模擬服務(wù)器發(fā)送數(shù)據(jù)界面如圖10所示。

      用MQTT.fx的Subscribe功能來仿真服務(wù)器接收智能網(wǎng)關(guān)系統(tǒng)發(fā)送的消息:采集到400000~400031協(xié)議地址對(duì)應(yīng)的數(shù)值,采用十六進(jìn)制采集方式,協(xié)議地址40000對(duì)應(yīng)的數(shù)值30以十六進(jìn)制方式采集,把30轉(zhuǎn)化成十進(jìn)制,數(shù)值為48,與Modbus Slave協(xié)議地址400000中的數(shù)值對(duì)應(yīng)。Modbus Slave模擬設(shè)備數(shù)據(jù)界面如圖11所示。

      5.2.4 反向控制具體測(cè)試流程

      用MQTT.fx的Publish功能來仿真服務(wù)器向智能網(wǎng)關(guān)系統(tǒng)發(fā)送的消息:/EOSLink004/5D52964D8081為消息主題,控制網(wǎng)關(guān)型號(hào)為5D52964D8081的設(shè)備,把協(xié)議點(diǎn)0地址的數(shù)值設(shè)置為56,之后將56轉(zhuǎn)化成十六進(jìn)制數(shù)值,為38。MQTT.fx發(fā)送數(shù)據(jù)界面如圖12所示。采用功能10,組合協(xié)議點(diǎn)為500000。

      5.2.5 關(guān)鍵技術(shù)和重要指標(biāo)

      (1)硬件層采集:具有RS 485接口和以太網(wǎng)接口,既適用于舊設(shè)備的485接口也適用于現(xiàn)代工業(yè)的以太網(wǎng)接口,使用SIM7100C 4G無線模塊進(jìn)行TCP/IP數(shù)據(jù)傳輸,提高傳輸距離以及系統(tǒng)的可移動(dòng)性。

      (2)傳輸格式:系統(tǒng)采用JSON格式進(jìn)行數(shù)據(jù)交換,在數(shù)據(jù)格式、占用空間、解析速度方面都具備較好的優(yōu)勢(shì),提高了傳輸速度和質(zhì)量。

      (3)軟件設(shè)計(jì):采用Modbus與MQTT融合的方式,數(shù)據(jù)采集和數(shù)據(jù)傳輸使用不同線程,以提高采集和傳輸效率。采用線程池技術(shù),支持多臺(tái)設(shè)備同時(shí)采集。MQTT替換傳統(tǒng)HTTP協(xié)議,具有低功耗、低流量、簡單高效等特點(diǎn)。

      (4)智能化程度:系統(tǒng)具備遠(yuǎn)距離反向控制功能,通過Web端或APP端發(fā)送控制指令,可以開啟、關(guān)閉工業(yè)設(shè)備或設(shè)定數(shù)值,從而實(shí)現(xiàn)智能化控制。

      6 結(jié) 語

      本文設(shè)計(jì)了一款新型Modbus與MQTT融合的工業(yè)能耗網(wǎng)關(guān)系統(tǒng),可解決傳統(tǒng)數(shù)據(jù)采集設(shè)備數(shù)量少、距離短、實(shí)時(shí)性差、效率低、通用性差等問題。在設(shè)備接口方面,不僅適用于傳統(tǒng)工業(yè)的RS 485接口,也可以用網(wǎng)口采集數(shù)據(jù)。本系統(tǒng)不僅適用于工業(yè)能耗設(shè)備遠(yuǎn)程監(jiān)控,還可以應(yīng)用于農(nóng)業(yè)、商業(yè)、校園設(shè)備數(shù)據(jù)遠(yuǎn)程監(jiān)控。同時(shí)還能通過終端設(shè)備實(shí)現(xiàn)遠(yuǎn)程智能控制。經(jīng)過測(cè)試系統(tǒng)與服務(wù)器鏈接驗(yàn)證,系統(tǒng)運(yùn)行正常、穩(wěn)定。

      參 考 文 獻(xiàn)

      [1]董朝陽,趙俊華,文福拴,等.從智能電網(wǎng)到能源互聯(lián)網(wǎng):基本概念與研究框架[J].電力系統(tǒng)自動(dòng)化,2014,38(15):1-11.

      [2] CHANG M,ZHANG T.Fog and IoT:an overview of research opportunities[J].IEEE Internet of things journal,2016,3(6):854-864.

      [3]范學(xué)佳,趙斌,衣淑娟,等.基于 Modbus 的寒地水稻育秧環(huán)境智能監(jiān)控系統(tǒng)[J].農(nóng)機(jī)化研究,2016(2):201-204.

      [4]張濤,黃強(qiáng),毛磊雅,等.一個(gè)基于JSON的對(duì)象序列化算法[J].計(jì)算機(jī)工程與應(yīng)用,2007,43(15):98-100.

      [5]張滬寅,屈乾松,胡瑞蕓.基于 JSON 的數(shù)據(jù)交換模型[J].計(jì)算機(jī)工程與設(shè)計(jì),2015,36(12):3380-3384.

      [6]姚丹,謝雪松,楊建軍.基于 MQTT 協(xié)議的物聯(lián)網(wǎng)通信系統(tǒng)的研究與實(shí)現(xiàn)[J].信息通信,2016(3):33-35.

      [7] MALONE T,GRANT K,TURBAK F,et al.Intelligent information sharing systems comm.[J].ACM,1987,30(5):390-402.

      [8]任亨.基于MQTT協(xié)議的消息推送服務(wù)器[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2014,23(3):77-82.

      [9]馬躍,孫翱,賈軍營,等.MQTT協(xié)議在移動(dòng)互聯(lián)網(wǎng)即時(shí)通信中的應(yīng)用[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2016,25(3):124-135

      [10]劉軍霞,熊選東,付建丹.基于發(fā)布/訂閱的推模式服務(wù)調(diào)用[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2012(12):196-199.

      [11]鐘良驥,桂學(xué)勤,廖海斌,等.基于 MQTT 的物聯(lián)網(wǎng)平臺(tái)設(shè)計(jì)與分析[J].鄖陽師范高等專科學(xué)校學(xué)報(bào),2014,34(6):52-55.

      猜你喜歡
      線程網(wǎng)關(guān)消息
      基于改進(jìn)RPS技術(shù)的IPSEC VPN網(wǎng)關(guān)設(shè)計(jì)
      一張圖看5G消息
      淺談linux多線程協(xié)作
      LTE Small Cell網(wǎng)關(guān)及虛擬網(wǎng)關(guān)技術(shù)研究
      應(yīng)對(duì)氣候變化需要打通“網(wǎng)關(guān)”
      太陽能(2015年7期)2015-04-12 06:49:50
      消息
      消息
      消息
      一種實(shí)時(shí)高效的伺服控制網(wǎng)關(guān)設(shè)計(jì)
      Linux線程實(shí)現(xiàn)技術(shù)研究
      深泽县| 南汇区| 新竹县| 屏东市| 肥东县| 射洪县| 鲁山县| 讷河市| 常德市| 祥云县| 宁河县| 金湖县| 修水县| 北碚区| 克拉玛依市| 九台市| 建湖县| 当涂县| 高尔夫| 伊金霍洛旗| 诸暨市| 福清市| 南靖县| 江西省| 邳州市| 清水河县| 洪洞县| 东宁县| 内丘县| 朔州市| 定边县| 旺苍县| 岢岚县| 从江县| 扬中市| 沁水县| 浮梁县| 伊宁市| 稻城县| 庐江县| 波密县|