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 作為全局協議來擴展設備的范圍,二者都起到了重要的作用。