應(yīng)用

技術(shù)

物聯(lián)網(wǎng)世界 >> 物聯(lián)網(wǎng)新聞 >> 物聯(lián)網(wǎng)熱點新聞
企業(yè)注冊個人注冊登錄

工業(yè)物聯(lián)網(wǎng)最常用的消息傳遞協(xié)議——MQTT

2019-08-27 10:53 控制工程中國

導(dǎo)讀:消息隊列遙測傳輸(MQTT)已成為過去五年中跨多個行業(yè)應(yīng)用的主要物聯(lián)網(wǎng)消息傳輸方式之一??紤]到大多數(shù)云服務(wù)提供本機MQTT 功能,越來越多的設(shè)備制造商、軟件和服務(wù)正在實施基于MQTT 的產(chǎn)品。

MQTT作為物聯(lián)網(wǎng)消息傳輸?shù)闹匾獏f(xié)議之一, 其最初的設(shè)計始于管道SCADA系統(tǒng)的工業(yè)通信器。經(jīng)過增強后的MQTT,可以適用于執(zhí)行更多關(guān)鍵任務(wù)的IIoT應(yīng)用。

消息隊列遙測傳輸(MQTT)已成為過去五年中跨多個行業(yè)應(yīng)用的主要物聯(lián)網(wǎng)消息傳輸方式之一??紤]到大多數(shù)云服務(wù)提供本機MQTT 功能,越來越多的設(shè)備制造商、軟件和服務(wù)正在實施基于MQTT 的產(chǎn)品。

MQTT的設(shè)計初衷

信息技術(shù)(IT)領(lǐng)域的Facebook、云服務(wù)提供商以及許多其它公司對MQTT 的采用,可能會讓大家認為MQTT 是針對IT 解決方案的,但MQTT 的起源卻是由工業(yè)通信問題驅(qū)動的。

1997 年,Phillips 66 公司安裝了市場上第一個基于傳輸控制協(xié)議/ 網(wǎng)絡(luò)協(xié)議(TCP/IP)的極小孔徑終端(VSAT)系統(tǒng),用于其管道SCADA 系統(tǒng)。要有效地使用這種網(wǎng)絡(luò)基礎(chǔ)設(shè)施,需要解決許多挑戰(zhàn)。在實施該系統(tǒng)之前,輪詢/ 響應(yīng)協(xié)議是任何SCADA 系統(tǒng)實施的標準。

然而,由于極小孔徑終端系統(tǒng)通信固有的傳播延遲,以及與可能未改變的過程變量持續(xù)輪詢相關(guān)的成本,Phillips 66 公司正在尋找一種更好的方法來優(yōu)化其網(wǎng)絡(luò)基礎(chǔ)設(shè)施。

到目前為止,IT 部門使用面向消息的中間件(MOM)軟件來為應(yīng)用程序解耦。它們是高效的基礎(chǔ)架構(gòu),使用消息代理來確?!耙寻l(fā)布”信息的應(yīng)用程序可以連接到“訂閱”該信息的應(yīng)用程序。信息可以在例外情況下發(fā)布給任何有興趣并訂閱該信息的應(yīng)用程序。

該想法是將這些相同類型的基礎(chǔ)設(shè)施用于實時SCADA 系統(tǒng)。唯一的問題是當(dāng)時市場上的MOM 產(chǎn)品不適合在SCADA 環(huán)境中使用?;谶@些要求,項目開始開發(fā)適合在類似工業(yè)環(huán)境中使用的MOM 規(guī)范。

「深度解讀」工業(yè)物聯(lián)網(wǎng)最常用的消息傳遞協(xié)議——MQTT

圖1 :根據(jù)Eclipse 基金會的調(diào)查,MQTT是物聯(lián)網(wǎng)解決方案中最常用的消息傳遞協(xié)議。圖片來源:Eclipse 基金會

這最終導(dǎo)致了MQTT 設(shè)計初衷的形成。MQTT 的最初設(shè)計目標是簡單、高效、狀態(tài)和開放。

簡單。當(dāng)MQTT 首次出現(xiàn)時,市場上可用于遠程邊緣計算的硬件平臺很少; 具有64KB 內(nèi)存的8 位微處理器是常態(tài)。MQTT 必須以最少的計算資源實現(xiàn)。即使在2018年,Arduino 微控制器也可以提供完整的MQTT 通信棧。

高效。早期的極小孔徑終端系統(tǒng)提供商對發(fā)送和接收的每個字節(jié)信息收費。MQTT 傳輸必須在網(wǎng)絡(luò)上提供最小的開銷。一旦建立了MQTT會話,發(fā)布的消息中只有2 字節(jié)的開銷。

狀態(tài)。如果用戶為關(guān)鍵任務(wù)提供實時基礎(chǔ)架構(gòu),那么MQTT TCP/IP 連接的“狀態(tài)”至關(guān)重要。MQTT 提供了一種稱為“連續(xù)會話感知”的機制,可通知所有關(guān)心MQTT 連接的實時狀態(tài)信息的客戶。

開放。上世紀90 年代后期,SCADA、分布式控制系統(tǒng)(DCS)以及遙測產(chǎn)品主要基于專有的傳統(tǒng)輪訓(xùn)/ 響應(yīng)協(xié)議。應(yīng)當(dāng)明白,為了使MQTT 對整個行業(yè)有用,它需要成為一個任何人都可以免費使用的開放規(guī)范。

除了這些標準,也很容易遺漏一些重要方面,例如:

安全。很多人都注意到MQTT 規(guī)范沒有定義任何安全性。這是因為MQTT 規(guī)范基于TCP/IP。應(yīng)該時刻記住,最新的TCP/IP 安全實踐適用于MQTT 基礎(chǔ)設(shè)施。其范圍從對安全性沒有要求的專用網(wǎng)絡(luò),到用于連接的完整傳輸層安全性(TLS)證書。由于MQTT 是遠程發(fā)起的連接,因此邊緣設(shè)備和客戶端甚至不必打開任何TCP/IP 端口,這就大大減少了整體網(wǎng)絡(luò)安全的范圍。

有效載荷數(shù)據(jù)格式。當(dāng)涉及MQTT 有效負載中包含的信息時,MQTT 與數(shù)據(jù)無關(guān)。它們可以是來自可編程邏輯控制器(PLC)的二進制消息、JPEG 圖像、可擴展標記語言(XML)文檔或JavaScr ipt 對象表示法(JSON)字符串。MQTT 將有效載荷的編碼和解碼留給軟件提供者。

工業(yè)強度的MQTT

隨著使用MQTT 的物聯(lián)網(wǎng)(IoT)解決方案,開始向執(zhí)行更多關(guān)鍵任務(wù)的工業(yè)物聯(lián)網(wǎng)(IIoT)遷移,市場需要一個允許基于MQTT的供應(yīng)商能夠輕松實現(xiàn)互操作的規(guī)范。盡管MQTT 規(guī)范沒有規(guī)定任何消息主題命名空間或數(shù)據(jù)表示,但IIoT 空間需要一個命名規(guī)范。Sparkplug 規(guī)范為IIoT 市場實現(xiàn)了這一點。

「深度解讀」工業(yè)物聯(lián)網(wǎng)最常用的消息傳遞協(xié)議——MQTT

圖2 :根據(jù)Eclipse基金會的調(diào)查, 自2016 年以來,MQTT呈上升趨勢, 超過62%的應(yīng)用使用消息傳遞作為標準。

開發(fā)Sparkplug 規(guī)范是為了幫助定義在關(guān)鍵任務(wù)實時應(yīng)用程序中,如何最好地開始使用MQTT。Sparkplug 規(guī)范定義:

1. 眾所周知的MQTT 主題名稱空間,因此信息的發(fā)布者和訂閱者可以提前知道主題名稱空間以實現(xiàn)互操作性。

2. 針對工業(yè)過程變量優(yōu)化的二進制有效負載。Sparkplug 規(guī)范承認工業(yè)基礎(chǔ)設(shè)施沒有無限的帶寬,在極小孔徑終端系統(tǒng)、無線電和蜂窩基礎(chǔ)設(shè)施上必須運行良好。

3.MQTT 中的“狀態(tài)”管理如何工作以及如何在SCADA、DCS 系統(tǒng)和工業(yè)控制系統(tǒng)解決方案中有效地使用它,以實時了解所有MQTT 客戶端的狀態(tài)。