在工業物聯網(IIoT)的通信協議體系中,MQTT(Message Queuing Telemetry Transport)憑借其輕量級、發布 - 訂閱模式和低帶寬占用等特性,成為連接邊緣設備與云端平臺的首選協議。從傳感器數據采集到設備遠程控制,從車間級監控到跨廠區協同,MQTT 正在重塑工業通信架構。GraniStudio 軟件通過對 MQTT 協議的全場景整合,將其復雜的連接管理、消息路由和 QoS 保障等機制封裝為可視化組件,為工業用戶提供了 “零代碼” 構建 MQTT 通信鏈路的能力。本文將從協議原理、技術特性、GraniStudio 整合實現及工業應用四個維度,全面解析 MQTT 協議的技術內核。
一、MQTT 協議的核心原理與通信模型
MQTT 由 IBM 于 1999 年開發,最初為石油管道監控設計,歷經二十余年發展,已成為工業物聯網的事實標準協議。其核心設計理念是 “輕量級、可靠、低功耗”,適合資源受限的邊緣設備和不穩定的網絡環境。
實現MQTT協議需要客戶端和服務器端通訊完成, 在通訊過程中, MQTT協議中有三種身份:發布者(Publish)、代理(Broker)(服務器)、訂閱者(Subscribe)。 其中,消息的發布者和訂閱者都是客戶端,消息代理是服務器,消息發布者可以同時是訂閱者。

MQTT傳輸的消息分為: 主題(Topic) 和 負載(payload)兩部分:
Topic: 可以理解為消息的類型,訂閱者訂閱(Subscribe)后,就會收到該主題的消息內容(payload)
payload: 可以理解為消息的內容,是指訂閱者具體要使用的內容
1.1 發布 - 訂閱模式的架構設計
MQTT 采用 “發布 - 訂閱”(Publish-Subscribe)模式,與傳統的客戶端 - 服務器模式相比,具有更高的解耦性和擴展性。核心組件包括:
發布者(Publisher):生成消息并發布到特定主題(Topic)的客戶端,例如傳感器上傳溫度數據;
訂閱者(Subscriber):向代理服務器訂閱特定主題,接收相關消息的客戶端,例如 SCADA 系統訂閱設備狀態;
代理服務器(Broker):中央樞紐,負責接收發布者的消息,并將其路由到匹配的訂閱者,例如 EMQ X、Mosquitto 等;
主題(Topic):消息的邏輯分類,采用層級結構(如factory1/workshop2/machine3/temperature),訂閱者通過主題過濾器(如factory1/#)匹配感興趣的消息。
這種模式使發布者與訂閱者無需直接連接,降低了系統耦合度。例如,車間內的 200 臺設備作為發布者,將數據發布到equipment/status主題;MES 系統作為訂閱者,訂閱該主題獲取所有設備狀態,雙方無需預先知道對方的存在。
1.2 服務質量(QoS)保障機制
MQTT 定義了三種消息傳遞質量等級,滿足不同場景的可靠性需求:
| QoS 等級 | 描述 | 特性 | 適用場景 |
|---|---|---|---|
| QoS 0 | 最多一次At most once | 消息發送后不確認,可能丟失 | 實時性優先、允許少量數據丟失的場景(如視頻監控數據) |
| QoS 1 | 至少一次At least once | 通過 PUBACK 確認,可能重復 | 數據重要但允許少量重復的場景(如傳感器數據) |
| QoS 2 | 恰好一次Exactly once | 通過四次握手確保唯一性 | 關鍵業務數據(如訂單、支付信息) |
1.3 會話保持與遺囑機制
針對工業場景中網絡不穩定的問題,MQTT 設計了兩項關鍵機制:
會話保持(Session Persistence):客戶端連接時設置Clean Session標志:
Clean Session = true:連接斷開后,代理服務器丟棄該客戶端的所有訂閱和未發送消息;
Clean Session = false:代理服務器保留訂閱和未發送消息,客戶端重新連接時繼續接收。
工業場景通常選擇Clean Session = false,確保設備斷網恢復后能繼續接收歷史消息。
遺囑消息(Last Will and Testament):客戶端連接時設置遺囑消息,當代理服務器檢測到客戶端異常斷開(如網絡故障)時,自動發布該消息。例如,設備連接時設置遺囑主題device/offline,當設備意外斷電時,代理服務器向該主題發布 “設備離線” 消息,通知監控系統及時處理。
二、MQTT 協議的技術特性與工業適配
MQTT 的技術特性使其天然適合工業場景,尤其是在邊緣計算、低帶寬網絡和資源受限設備中表現突出。
2.1 輕量級協議設計
MQTT 協議頭最小僅 2 字節,消息格式緊湊,相比 HTTP 協議(通常數百字節),帶寬占用降低 80% 以上。在工業環境中,這種輕量化設計帶來顯著優勢:
低帶寬需求:適合車間級 WiFi(通常帶寬<10Mbps)和蜂窩網絡(如 4G 偏遠廠區);
低功耗:邊緣設備(如電池供電的傳感器)發送 MQTT 消息的能耗僅為 HTTP 的 1/3;
快速連接:建立連接耗時<50ms,遠低于 HTTP 的 TCP+TLS 握手(通常>200ms)。
某汽車廠的實踐顯示,采用 MQTT 替代 HTTP 后,車間級數據傳輸延遲從 500ms 降至 100ms,網絡帶寬占用減少 75%。
2.2 主題層級與通配符機制
MQTT 的主題采用 “/” 分隔的層級結構(如factory/line/machine/parameter),并支持兩種通配符:
單層通配符(+):匹配任意單個層級,例如factory/+/temperature可匹配factory/line1/temperature和factory/line2/temperature;
多層通配符(#):匹配任意數量的層級,例如factory/#可匹配factory/line1/machine1/status和factory/statistics。
這種設計使消息路由更加靈活,例如:
設備監控系統訂閱factory/+/+/status,獲取所有生產線的設備狀態;
能源管理系統訂閱factory/#/energy,獲取全廠所有設備的能耗數據;
報警系統訂閱factory/alert/#,接收所有報警信息。
2.3 安全增強機制
針對工業網絡安全需求,MQTT 提供多層次安全保障:
傳輸層安全(TLS):支持 SSL/TLS 加密,防止中間人攻擊和數據竊聽,例如通過配置mqtts://broker:8883啟用 TLS;
身份認證:支持用戶名 / 密碼認證和客戶端證書認證,例如某化工廠要求所有設備連接 MQTT 代理時必須提供 CA 簽發的證書;
訪問控制:代理服務器(如 EMQ X)可配置基于主題的訪問控制列表(ACL),例如:
plaintext
{allow, {user, "admin"}, pubsub, ["#"]}. # 管理員可發布/訂閱所有主題
{allow, {user, "device1"}, publish, ["device1/#"]}. # 設備1只能發布自己的主題
{allow, {user, "monitor"}, subscribe, ["factory/#"]}. # 監控系統只能訂閱工廠相關主題
三、GraniStudio 對 MQTT 協議的工具統一
針對工業場景的特殊性,GraniStudio 對 MQTT 協議進行了模塊化歸納,構建了 “MQTT服務器 – MQTT客戶端- MQTT發送文本- MQTT接受文本-關閉MQTT服務器”的MQTT通信協議工具。

MQTT 客戶端
概述:在 GraniStudio 平臺中,MQTT 客戶端是用于與 MQTT 服務器進行交互的組件。它可以是連接到網絡的設備、應用程序或其他實體,負責向服務器發布消息,或者訂閱感興趣的主題以接收相關消息。
作用:
發布消息:根據業務需求,將特定主題的消息發布到 MQTT 服務器上。比如在智能家居場景中,智能溫濕度傳感器作為 MQTT 客戶端,會將實時采集到的溫度、濕度數據,按照設定的主題(如 “home/temperature_humidity” )發布到服務器。
訂閱主題:客戶端可以訂閱一個或多個主題,當服務器上對應主題有新消息發布時,客戶端能夠接收到這些消息。例如,智能照明設備客戶端可以訂閱 “home/lighting/control” 主題,以接收來自服務器的燈光控制指令。
特點:具有靈活的配置選項,能適應不同網絡環境和安全要求,可方便地與各種物聯網設備集成,實現數據的高效傳輸和交互。

MQTT 服務器
概述:MQTT 服務器也被稱為消息代理(Message Broker),是 MQTT 通信中的核心樞紐。在 GraniStudio 應用場景中,它負責接收來自各個 MQTT 客戶端發布的消息,并根據客戶端的訂閱情況,將消息轉發給相應的訂閱客戶端。
作用:
消息存儲與轉發:接收客戶端發布的消息,暫存并根據主題將其轉發給訂閱了該主題的其他客戶端,實現消息的高效分發。比如在工業物聯網中,設備監控系統的 MQTT 服務器接收來自多個生產設備客戶端上傳的運行狀態消息,并將其轉發給監控終端、數據分析系統等訂閱了相關主題的客戶端。
連接管理:管理所有連接到服務器的 MQTT 客戶端,包括建立連接啟動服務、維護會話狀態、處理斷開停止服務等操作,確保通信的穩定性和可靠性。
特點:具備高并發處理能力,能夠支持大量客戶端的連接和消息交互。

MQTT 發送文本
概述:在 GraniStudio 中,MQTT 發送文本指的是 MQTT 客戶端將文本格式的消息發布到 MQTT 服務器的過程。這些文本消息通常會被關聯到特定的主題。
實現方式:
配置主題:在發送消息前,需要明確指定消息要發布到的主題。比如,要發布關于工廠設備運行日志的文本消息,可以設定主題為 “factory/device/logs” 。
構建消息內容:將需要發送的文本信息按照一定格式組織好,如 JSON字符串格式的日志數據({"device_id": "123", "log_content": "設備在 10:00 出現短暫過載"}) 。
調用發送接口:利用 GraniStudio 提供的 MQTT 客戶端 API,傳入主題和消息內容,執行發送操作,將文本消息發送到 MQTT 服務器。
應用場景:廣泛應用于各類數據上報場景,如環境監測數據上報(發送 “溫度:25℃,濕度:60%” 等文本消息)、設備狀態告警(發送 “設備故障,需立即檢修” 等文本消息)。

MQTT 接收文本
概述:MQTT 接收文本是指 MQTT 客戶端通過訂閱主題,從 MQTT 服務器獲取相關文本消息的過程。
實現方式:
訂閱主題:客戶端預先通過 GraniStudio 的 MQTT 客戶端配置界面或 API,訂閱感興趣的主題,如 “home/security/alarm” 。
監聽消息:客戶端保持與 MQTT 服務器的連接,持續監聽所訂閱主題的消息動態。當服務器上有新消息發布到該主題時,客戶端會收到通知。
應用場景:在智能家居中用于接收控制指令(如接收 “打開客廳燈光” 的文本指令);在工業自動化中接收設備參數調整指令等 。
3.1 消息轉換與路由引擎
工業數據通常需要在不同格式間轉換(如 二進制→十六進制,字符串轉換為數值),GraniStudio 的 “進制轉換”“類型轉換” 算子提供靈活的轉換能力:
格式轉換:支持二進制、八進制、十進制、十六進制。數值、字符串、浮點等格式的互相轉換,例如將傳感器發送的浮點數據(如 25.5)轉換為二進制數據(0x41C8);
數據提取:通過配置“字符串操作算子/文本解析算子”,提取消息中的特定字段,例如從 JSON 消息{"deviceId":"D001","temp":25.3}中提取temp字段;
消息路由:可通過搭建任務流程,根據消息內容動態路由到不同主題,例如:
plaintext
當溫度>30℃時,轉發至`factory/alarm/high_temp`主題;
某食品廠的冷鏈監控系統中,GraniStudio 將溫度傳感器數據(JSON 格式)轉換為 CSV 格式后存儲,同時將異常溫度(<-18℃或>-15℃)轉發至報警主題,實現 “數據存儲 + 異常報警” 的并行處理。
四、MQTT 協議的工業應用場景與價值
在工業物聯網場景中,MQTT 協議憑借其特性優勢,在多個關鍵領域發揮著核心作用:
4.1 分布式設備監控與管理
在大型工廠中,分布在不同區域的設備通過 MQTT 實現集中監控:
數據采集:車間內的 PLC、傳感器等設備作為 MQTT 客戶端,將運行數據(如溫度、壓力、轉速)發布到equipment/data主題;
狀態監控:SCADA 系統訂閱該主題,實時展示設備狀態;
異常報警:當設備參數超出閾值時,觸發規則引擎生成報警消息,發布到alarm/equipment主題,通知運維人員。
某鋼鐵廠部署了 1000 + 臺 MQTT 客戶端設備,通過 3 臺負載均衡的 EMQ X 代理服務器,實現了秒級數據采集與分析,設備故障響應時間從小時級縮短至分鐘級。
4.2 工業云平臺與邊緣設備連接
在 “云邊協同” 架構中,MQTT 是邊緣設備與云端平臺的首選通信協議:
邊緣數據上傳:邊緣網關(如工業路由器)收集現場設備數據,通過 MQTT 發送至云端平臺;
云端指令下發:云端平臺通過 MQTT 向邊緣設備發送配置更新、控制指令等;
離線緩存:邊緣網關在網絡斷開時緩存數據,網絡恢復后通過 QoS 1 補發,確保數據完整性。
某汽車制造企業的 MES 系統通過 MQTT 連接全國 5 個工廠的邊緣設備,每天處理超過 1 億條生產數據,系統可用性達到 99.99%。
4.3 工業移動應用開發
MQTT 的低延遲特性使其非常適合開發工業移動應用:
實時數據查看:運維人員通過手機 APP 訂閱equipment/real-time主題,查看設備實時狀態;
遠程控制:工程師通過 APP 發布控制指令到control/command主題,實現對設備的遠程操作;
離線通知:APP 在后臺保持 MQTT 連接,當訂閱的主題有新消息(如報警)時,推送通知提醒用戶。
某化工企業開發的移動運維 APP,通過 MQTT 連接生產現場設備,使工程師可隨時隨地監控工藝參數,緊急情況下可遠程停機,避免安全事故。
五、與其他工業協議的對比及選擇策略
| 維度 | MQTT | HTTP | OPC UA |
|---|---|---|---|
| 通信模式 | 發布 - 訂閱 | 請求 - 響應 | 客戶端 - 服務器 / 發布 - 訂閱 |
| 協議開銷 | 低(2 字節協議頭) | 高(數百字節 HTTP 頭) | 中高(基于 SOAP/XML) |
| 實時性 | 高(消息延遲<50ms) | 中(TCP+TLS 握手延遲) | 高(支持毫秒級采樣) |
| 網絡適應性 | 強(支持斷線重連、QoS 保障) | 弱(需應用層實現重試機制) | 中(依賴網絡穩定性) |
| 安全機制 | TLS 加密、身份認證 | HTTPS(依賴 TLS) | 多層安全(加密、認證、授權) |
| 適用場景 | 海量設備連接、實時數據推送 | 簡單數據查詢、Web API | 工業控制系統深度集成 |
在實際工業應用中,常采用 “MQTT+HTTP+OPC UA” 的混合協議策略:
MQTT 用于設備與邊緣 / 云端的實時數據傳輸和控制指令下發;
HTTP 用于 Web 界面與后端的交互(如報表查詢、配置管理);
OPC UA 用于 PLC 與 SCADA 系統的深度集成(如實時控制、程序上傳下載)。
GraniStudio 支持這種混合協議架構,通過統一的界面配置實現多協議協同,降低系統復雜度。
六、總結與技術展望
MQTT 協議在工業物聯網中的核心價值在于 “輕量級、可靠、靈活”,而 GraniStudio 的深度整合使其從 “通用協議” 升級為 “工業專用通信解決方案”。通過連接池管理、消息轉換、協議橋接等功能,軟件解決了工業場景中 MQTT 應用的 “連接不穩定、數據處理復雜、多系統集成難” 等痛點。
對于工業用戶而言,GraniStudio 中的 MQTT 方案不僅是一種通信工具,更是構建 “實時、可靠、安全” 工業物聯網系統的基石,在設備監控、遠程運維、云邊協同等場景中,將持續發揮不可替代的作用。
審核編輯 黃宇
-
通信協議
+關注
關注
28文章
1092瀏覽量
42150 -
服務器
+關注
關注
14文章
10251瀏覽量
91480 -
MQTT
+關注
關注
5文章
733瀏覽量
25066
發布評論請先 登錄
MC協議的深度剖析
TCP/IP(Socket)協議深度剖析
串口協議的深度剖析
MQTT協議為什么成為物聯網協議
Modbus協議的深度剖析
揭秘Air8000對講黑科技:AirTalk+MQTT開發示例深度解析
GraniStudio : MC 協議深度剖析
GraniStudio : TCP/IP(Socket)協議深度剖析
GraniStudio:OPC UA 協議深度剖析
簡析Modbus和MQTT協議
GraniStudio零代碼平臺支持哪些品牌PLC和協議?
GraniStudio :MQTT 協議的深度剖析
評論