應用

技術

物聯網世界 >> 物聯網新聞 >> 物聯網熱點新聞
企業注冊個人注冊登錄

工業物聯網最常用的消息傳遞協議——MQTT

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

導讀:消息隊列遙測傳輸(MQTT)已成為過去五年中跨多個行業應用的主要物聯網消息傳輸方式之一。考慮到大多數云服務提供本機MQTT 功能,越來越多的設備制造商、軟件和服務正在實施基于MQTT 的產品。

MQTT作為物聯網消息傳輸的重要協議之一, 其最初的設計始于管道SCADA系統的工業通信器。經過增強后的MQTT,可以適用于執行更多關鍵任務的IIoT應用。

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

MQTT的設計初衷

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

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

然而,由于極小孔徑終端系統通信固有的傳播延遲,以及與可能未改變的過程變量持續輪詢相關的成本,Phillips 66 公司正在尋找一種更好的方法來優化其網絡基礎設施。

到目前為止,IT 部門使用面向消息的中間件(MOM)軟件來為應用程序解耦。它們是高效的基礎架構,使用消息代理來確保“已發布”信息的應用程序可以連接到“訂閱”該信息的應用程序。信息可以在例外情況下發布給任何有興趣并訂閱該信息的應用程序。

該想法是將這些相同類型的基礎設施用于實時SCADA 系統。唯一的問題是當時市場上的MOM 產品不適合在SCADA 環境中使用。基于這些要求,項目開始開發適合在類似工業環境中使用的MOM 規范。

「深度解讀」工業物聯網最常用的消息傳遞協議——MQTT

圖1 :根據Eclipse 基金會的調查,MQTT是物聯網解決方案中最常用的消息傳遞協議。圖片來源:Eclipse 基金會

這最終導致了MQTT 設計初衷的形成。MQTT 的最初設計目標是簡單、高效、狀態和開放。

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

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

狀態。如果用戶為關鍵任務提供實時基礎架構,那么MQTT TCP/IP 連接的“狀態”至關重要。MQTT 提供了一種稱為“連續會話感知”的機制,可通知所有關心MQTT 連接的實時狀態信息的客戶。

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

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

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

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

工業強度的MQTT

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

「深度解讀」工業物聯網最常用的消息傳遞協議——MQTT

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

開發Sparkplug 規范是為了幫助定義在關鍵任務實時應用程序中,如何最好地開始使用MQTT。Sparkplug 規范定義:

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

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

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


微信送彩票