MQTT協議和Modbus之間的區別是什麼

語言: CN / TW / HK

       物聯網閘道器協議MQTT和Modbus:用於短距離裝置連線的本地協議Modbus以及支援物聯網進行全域性通訊的可擴充套件網際網路協議“訊息佇列遙測傳輸 (MQTT),兩種閘道器協議有什麼區別。

       Modbus協議

       Modbus已經演變為一套全面的支援多種物理連結的協議集(如RS-485)。Modbus的核心是一個序列通訊協議,採用主從模式。主機向從機發送請求,從機予以回覆。在標準Modbus網路中,有一臺主機以及最多247臺從機(但是,如果採用2位元組定址,則可顯著提高這一界限)。

       藉助 RS-485,主從機之間的通訊發生在指示功能碼的幀中。 該功能碼可識別要操作的功能,如讀取獨立輸入;讀取先進先出佇列;或執行診斷函式。 然後,從機根據收到的功能碼進行響應,該響應較為簡單,由一組位元組指示。 因此,從機可以是智慧裝置,也可以是隻有一個感測器的簡單裝置。

       從該描述中,您可以看到Modbus協議非常簡單,但是其作為協議的開放性使其成為整個行業或SCADA系統的實際通訊協議。

       訊息佇列遙測傳輸

       MQTT是一個開放的輕量級機器對機器協議,專為物聯網互動設計。MQTT網路包含一個MQTT經紀人(broker),負責協調MQTT代理之間的互動。代理是釋出器,負責釋出供使用者使用的資訊。

       MQTT的要求非常少,因為它專為資源有限的嵌入式裝置設計。除了佔地空間少之外,MQTT還可提供出色的通訊高效性(即使通過低頻寬網路進行通訊)和非常少的開銷(較之HTTP等協議)。在3G網路中,MQTT的吞吐量速度是使用HTTP的表述性狀態轉移(REST)的93倍。

       MQTT可使用最少的方法指示要在特定主題上實施的操作,進而實施釋出/訂閱模式。代理先連線到經紀人,然後再發布或訂閱主題。完成後,代理將從經紀人上斷開連線。MQTT方法定義:

       連線–建立與MQTT經紀人之間的連線。

       斷開連線–斷開與MQTT經紀人之間的連線。

       釋出–在MQTT經紀人上釋出主題。

       訂閱–從MQTT經紀人上訂閱主題。

       退訂–從MQTT經紀人上退訂主題。

       MQTT允許定義服務質量(QoS)。MQTT中有三個等級的QoS:

       QoS 0。該等級表示“最多一次”交付(最佳狀況)。訊息不會得到確認,因而,這是一種一勞永與的方法。

       QoS 1。該等級表示“至少一次”交付。使用者可能不止一次獲得訊息,但是允許收到的人確認已經收到。

       QoS 2。最慢但是最有保障的服務質量等級即為等級2。 QoS 2表示“只有一次”,幷包含四個階段的交付握手。該等級最慢,但是最安全。

       您選擇的QoS等級將取決於資料及其交付的重要性。

       MQTT和Modbus能夠互相補充提高物聯網的效能。使用Modbus作為本地介面來管理裝置,使用MQTT作為全域性協議來擴充套件裝置的範圍,二者都起到了重要的作用