0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

GraniStudio :MQTT 协议的深度剖析

苏州格拉尼 来源:jf_84050716 作者:jf_84050716 2025-08-04 09:48 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在工业物联网(IIoT)的通信协议体系中,MQTT(Message Queuing Telemetry Transport)凭借其轻量级、发布 - 订阅模式和低带宽占用等特性,成为连接边缘设备与云端平台的首选协议。从传感器数据采集到设备远程控制,从车间级监控到跨厂区协同,MQTT 正在重塑工业通信架构。GraniStudio 软件通过对 MQTT 协议的全场景整合,将其复杂的连接管理、消息路由和 QoS 保障等机制封装为可视化组件,为工业用户提供了 “零代码” 构建 MQTT 通信链路的能力。本文将从协议原理、技术特性、GraniStudio 整合实现及工业应用四个维度,全面解析 MQTT 协议的技术内核。

一、MQTT 协议的核心原理与通信模型

MQTT 由 IBM 于 1999 年开发,最初为石油管道监控设计,历经二十余年发展,已成为工业物联网的事实标准协议。其核心设计理念是 “轻量级、可靠、低功耗”,适合资源受限的边缘设备和不稳定的网络环境。

实现MQTT协议需要客户端和服务器端通讯完成, 在通讯过程中, MQTT协议中有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。 其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。

wKgZO2iPcT-AbXy9AAAMqne4ftY079.jpg

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通信协议工具。

wKgZPGiPcUCAVPR1AADkPbhxNbQ913.jpg

MQTT 客户端

概述:在 GraniStudio 平台中,MQTT 客户端是用于与 MQTT 服务器进行交互的组件。它可以是连接到网络的设备、应用程序或其他实体,负责向服务器发布消息,或者订阅感兴趣的主题以接收相关消息。

作用:

发布消息:根据业务需求,将特定主题的消息发布到 MQTT 服务器上。比如在智能家居场景中,智能温湿度传感器作为 MQTT 客户端,会将实时采集到的温度、湿度数据,按照设定的主题(如 “home/temperature_humidity” )发布到服务器。

订阅主题:客户端可以订阅一个或多个主题,当服务器上对应主题有新消息发布时,客户端能够接收到这些消息。例如,智能照明设备客户端可以订阅 “home/lighting/control” 主题,以接收来自服务器的灯光控制指令。

特点:具有灵活的配置选项,能适应不同网络环境和安全要求,可方便地与各种物联网设备集成,实现数据的高效传输和交互。

wKgZO2iPcUCAY8_1AADJ6jyHZCU292.jpg

MQTT 服务器

概述:MQTT 服务器也被称为消息代理(Message Broker),是 MQTT 通信中的核心枢纽。在 GraniStudio 应用场景中,它负责接收来自各个 MQTT 客户端发布的消息,并根据客户端的订阅情况,将消息转发给相应的订阅客户端。

作用:

消息存储与转发:接收客户端发布的消息,暂存并根据主题将其转发给订阅了该主题的其他客户端,实现消息的高效分发。比如在工业物联网中,设备监控系统的 MQTT 服务器接收来自多个生产设备客户端上传的运行状态消息,并将其转发给监控终端、数据分析系统等订阅了相关主题的客户端。

连接管理:管理所有连接到服务器的 MQTT 客户端,包括建立连接启动服务、维护会话状态、处理断开停止服务等操作,确保通信的稳定性和可靠性。

特点:具备高并发处理能力,能够支持大量客户端的连接和消息交互。

wKgZPGiPcUGADy7dAACkpMA2K5Y911.jpg

MQTT 发送文本

概述:在 GraniStudio 中,MQTT 发送文本指的是 MQTT 客户端将文本格式的消息发布到 MQTT 服务器的过程。这些文本消息通常会被关联到特定的主题。

实现方式:

配置主题:在发送消息前,需要明确指定消息要发布到的主题。比如,要发布关于工厂设备运行日志的文本消息,可以设定主题为 “factory/device/logs” 。

构建消息内容:将需要发送的文本信息按照一定格式组织好,如 JSON字符串格式的日志数据({"device_id": "123", "log_content": "设备在 10:00 出现短暂过载"}) 。

调用发送接口:利用 GraniStudio 提供的 MQTT 客户端 API,传入主题和消息内容,执行发送操作,将文本消息发送到 MQTT 服务器。

应用场景:广泛应用于各类数据上报场景,如环境监测数据上报(发送 “温度:25℃,湿度:60%” 等文本消息)、设备状态告警(发送 “设备故障,需立即检修” 等文本消息)。

wKgZO2iPcUGACP1yAACC7TSscVE907.jpg

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

    文章

    1073

    浏览量

    41869
  • 服务器
    +关注

    关注

    13

    文章

    10094

    浏览量

    90886
  • MQTT
    +关注

    关注

    5

    文章

    720

    浏览量

    24786
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Modbus协议深度剖析

    Modbus协议作为工业自动化领域最广泛应用的通信协议之一,其简洁高效的特性使其在工业控制系统中占据重要地位。本文将从协议的发展历程、技术架构、通信模式、安全机制以及未来演进等多个维度进行全面
    的头像 发表于 11-07 07:43 304次阅读
    Modbus<b class='flag-5'>协议</b>的<b class='flag-5'>深度</b><b class='flag-5'>剖析</b>

    工业智能网关可以通过MQTT协议对接到哪些平台

    工业智能网关通过MQTT协议可对接的平台范围广泛,涵盖主流公有云、私有云及第三方云平台,具体可分为以下四类: 一、主流公有云平台 阿里云物联网平台 支持MQTT协议直接接入,提供设备管
    的头像 发表于 09-29 11:29 374次阅读

    MQTT_协议中文资料

    电子发烧友网站提供《MQTT_协议中文资料.pdf》资料免费下载
    发表于 09-02 16:19 0次下载

    物联网MQTT网关是什么

    物联网MQTT网关是一种采用MQTT物联网协议的智能设备或软件组件,其核心功能是连接不同通信协议的物联网设备与消息代理服务器,实现设备间的数据交换与集中管理,同时支持边缘计算、安全防护
    的头像 发表于 08-29 15:24 656次阅读

    揭秘Air8000对讲黑科技:AirTalk+MQTT开发示例深度解析

    Air8000的AirTalk对讲方案如何实现设备间无缝通信?答案藏在MQTT协议的高效架构中。本文通过完整开发示例,层层剖析代码逻辑:从初始化Air8000模块到MQTT主题配置,再
    的头像 发表于 08-06 17:16 602次阅读
    揭秘Air8000对讲黑科技:AirTalk+<b class='flag-5'>MQTT</b>开发示例<b class='flag-5'>深度</b>解析

    GraniStudio : MC 协议深度剖析

    作为工业级零代码开发平台,其内置的 MC 协议客户端模块通过高度封装的可视化功能,将复杂的协议细节转化为 “拖拽式” 操作。本文将聚焦 MC 协议客户端的 机制设置、帧结构、通信规范及交互流程 ,结合
    的头像 发表于 08-04 09:57 948次阅读
    <b class='flag-5'>GraniStudio</b> : MC <b class='flag-5'>协议</b><b class='flag-5'>深度</b><b class='flag-5'>剖析</b>

    GraniStudio : TCP/IP(Socket)协议深度剖析

    在工业自动化与物联网领域,TCP/IP(Socket)协议作为应用最广泛的网络通信标准,是实现设备间数据交互的核心技术。GraniStudio 软件作为工业级零代码开发平台,其内置的 TCP/IP
    的头像 发表于 08-03 22:20 899次阅读
    <b class='flag-5'>GraniStudio</b> : TCP/IP(Socket)<b class='flag-5'>协议</b><b class='flag-5'>深度</b><b class='flag-5'>剖析</b>

    GraniStudio:OPC UA 协议深度剖析

    在工业数据通信体系中,OPC UA 协议的客户端是连接工业设备与上层系统的 “桥梁”,负责发起数据请求、解析服务器响应、执行控制指令等核心操作。Granistudio 软件作为工业级零代码开发平台
    的头像 发表于 08-01 17:47 1273次阅读
    <b class='flag-5'>GraniStudio</b>:OPC UA <b class='flag-5'>协议</b><b class='flag-5'>深度</b><b class='flag-5'>剖析</b>

    简析Modbus和MQTT协议

    Modbus和MQTT协议在设计目标、通信模式、应用场景、网络结构、数据传输效率、设备兼容性及安全性等方面存在显著差异,具体分析如下: 一、设计目标与定位 Modbus :诞生于1979年,由施耐德
    的头像 发表于 07-10 14:25 493次阅读

    GraniStudio零代码平台支持哪些品牌PLC和协议

    GraniStudio平台6.0以及以上版本目前支持西门子、三菱以及松下3种品牌PLC,除这个三种PLC品牌为在平台6.0之前的版本还支持了基恩士、施耐德以及欧姆龙PLC,平台为每一种PLC至少
    的头像 发表于 07-07 17:19 518次阅读
    <b class='flag-5'>GraniStudio</b>零代码平台支持哪些品牌PLC和<b class='flag-5'>协议</b>?

    MQTT为何成为物联网协议

    MQTT(Message Queuing Telemetry Transport)即消息队列遥测传输协议,已成为物联网领域广泛应用的协议,这主要得益于其在资源占用、通信效率、可靠性、扩展性等多方面
    的头像 发表于 05-20 09:54 605次阅读

    MQTT物联网平台有哪些?有哪些功能?

    MQTT(Message Queuing Telemetry Transport)是一种基于客户端-服务器架构的发布/订阅模式的消息传输协议,它广泛应用于机器与机器的通信(M2M)以及物联网环境
    的头像 发表于 03-15 14:23 1222次阅读
    <b class='flag-5'>MQTT</b>物联网平台有哪些?有哪些功能?

    基于MQTT协议的车云通信设计

    随着智能汽车的发展,车云通信的功能场景及数据量也逐渐增多,具有轻量化、可靠性等特点的MQTT协议成为很多OEM车云通信协议的选择。本文主要介绍。 什么是MQTT
    的头像 发表于 01-08 10:24 1721次阅读
    基于<b class='flag-5'>MQTT</b><b class='flag-5'>协议</b>的车云通信设计

    百问MQTT协议分析 - 报文分析①

    5 4 3 2 1 0 Byte1 Mqtt报文类型(1) Reserved(保留位) 0 0 0 1 0 0 0 0 Byte2~n 剩余长度 表格3.1 16.3.1.2 协议
    发表于 12-13 09:41

    百问MQTT协议分析 - MQTT简述及协议报文格式组成

    16.1 mqtt协议介绍 16.1.1 概述 ​MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议。它的设计思想是轻巧、开放、简单、规范,易于实现。这些特点使得它对很多场景
    发表于 12-13 09:29