MQTT Sparkplug 架构

MQTT Sparkplug 架构缩略图
本文目录
  1. 1. 原则与机制
  2. 2. 组件
  3. 3. SCADA / IIoT主机
  4. 4. 网络边缘(EoN)节点
  5. 5. 设备/传感器
  6. 6. 支持MQTT的传感器和设备
  7. 7. MQTT应用节点
  8. 8. MQTT代理

典型的工业物联网(IIoT)架构通过轮询/响应方式来连接各个组件。应用程序会直接从PLC、网关或服务器中通过诸如Modbus、西门子S7协议或OPC-UA等协议轮询数据。这种方法在只有少数几个系统需要集成时效果不错,但随着组件数量的增加,会导致一个难以维护的复杂架构。

MQTT Sparkplug 架构插图

图片1:未采用Sparkplug的工业IIoT架构

在这种架构中,系统通过点对点方式连接,从而使系统和数据紧密耦合在一起。现代的架构需要在IIoT系统中实现灵活性和清晰的职责分离。许多公司期望在IT环境中找到适应性、灵活性和易于实施的特性,同时也需要满足OT环境对可靠性、安全性和可预测性的需求。这种变革需要一种全新的架构。

MQTT Sparkplug 架构插图1

图片2:IIoT的新架构

这种新的IIoT架构(如图片2所示)相较于传统IIoT架构有所优势:

  • 数据生产者和消费者之间的解耦。
  • 异常报告(RBE),节省了数据生产者和消费者的带宽、内存和计算能力。
  • 一对多通信。数据只需发送一次,多个接收方就可以接收数据。
  • 灵活性:设备和应用程序可以随时添加或移除,而不会影响整个系统。
  • 通过集中的权限和策略处理实现数据治理。
  • 通过从云到边缘的数据分发实现车间到云端的连接。

过去,许多公司已经采用MQTT来为其工厂创建解耦架构。这并不令人意外,因为MQTT最初是为SCADA系统设计的。但在IIoT用例中,仍然缺少一些部分,例如MQTT主题结构定义、MQTT状态管理和有效载荷数据定义。Sparkplug为MQTT增加了这些功能,通常情况下Sparkplug架构类似于图片3所示。

MQTT Sparkplug 架构插图2

图片3:Sparkplug架构

原则与机制

Sparkplug架构之所以比传统方案更加优雅,是因为它基于以下原则和机制:

  1. 发布/订阅:使用MQTT作为底层应用的发布/订阅架构,从而解耦了数据的生产者和消费者。MQTT基于推送通信机制,这意味着数据会立即传递给所有感兴趣的各方。
  2. 异常报告:只有在数据和设备状态发生变化时才更新,从而在所有组件上大幅节省带宽和计算能力,因为只有新的和更新的数据才会被发送。
  3. 持续会话感知:Sparkplug和MQTT具备持续会话感知的特性。如果设备的在线/离线状态发生变化,它会通知所有关心这一状态的客户端。这个机制还确保了数据在传输过程中的连续性,比如当设备从离线状态恢复到在线状态时,数据传输会继续进行。使用Sparkplug,您可以实时准确地监控部署中所有设备、网关和应用程序的状态。
  4. 死亡和出生证明:Sparkplug引入了用于管理和发现设备状态的死亡和出生证明机制

。出生证明包含了有关设备及其将要发送的数据的信息,而死亡证明则利用MQTT的遗嘱和遗言机制来向所有关心的应用程序推送设备离线信息。

  1. 持久连接:所有设备、网关和应用程序默认保持在线,并通过持久的TCP连接进行通信。
  2. 自动发现:应用程序和设备能够自动发现Sparkplug部署中所有参与者将要发送的数据(及其对应的主题),以及当前连接的在线/离线设备。
  3. 标准化有效载荷定义:Sparkplug消息中所有消息的数据格式都进行了标准化,使得所有通信参与者都可以解码和编码数据。
  4. 标准化主题命名空间:所有Sparkplug参与者使用相同的主题命名空间。这个主题命名空间允许对特定数据进行精确的订阅,并支持动态地添加或移除参与者。

组件

Sparkplug充分认识到在任何复杂的IIoT场景中,都会涉及不同类型的设备/传感器、网关、应用程序以及其他软件(和硬件)。因此,Sparkplug为架构中的不同类型参与者定义了各自的行为和语义。

传统的Sparkplug架构包括以下组件:

  • SCADA / IIoT主机
  • 网络边缘(EoN)节点
  • 设备/传感器
  • MQTT应用节点
  • MQTT代理

我们现在将对这些组件进行详细的解读。

SCADA / IIoT主机

SCADA / IIoT主机,有时也被称为主应用程序,是负责监控和控制MQTT EoN节点及其所连接的设备和传感器的监督性应用程序。IIoT系统的持续会话状态感知是至关重要的,这意味着所有参与者(包括机器、设备、PLC、传感器、网关和应用程序)的当前状态随时都需要在中心位置进行监控。管理状态并根据状态变化采取行动的中心应用程序就是SCADA / IIOT主机应用程序。它是系统操作员用于管理和监督整个系统健康状况的关键应用程序。

与大多数传统的SCADA系统架构不同,SCADA / IIoT主机并不负责直接建立和维护与设备的连接。在Sparkplug架构中,设备、EoN节点和SCADA / IIoT主机都连接到中心MQTT代理,并通过发布和订阅数据进行通信。这样的设计允许仅在数据发生变化时进行更新,从而实现了异常报告(RBE)功能。

网络边缘(EoN)节点

网络边缘(EoN)节点在任何Sparkplug系统中都扮演着关键角色。EoN节点通常提供物理或逻辑上的网关功能,使那些不直接实现Sparkplug的传感器或设备能够参与到MQTT主题命名空间中。EoN节点负责管理自身以及通过诸如OPC-UA、Modbus、专有PLC供应商协议、HTTP、MQTT或本地离散I/O等协议连接到该EoN节点的传感器和设备的状态和会话。EoN节点负责管理这些连接设备和传感器的生命周期和状态,以及接收和发送设备数据到Sparkplug基础设施中。EoN节点是任何Sparkplug基础设施中的关键组成部分,它们通常被用于将传统的基础设施与Sparkplug桥接。

设备/传感器

设备和传感器构成了工业自动化的核心。一个设备通常是一个实体或逻辑上的单元,它通过一个或多个工业通信协议来发送和/或接收数据。这些工业协议一般基于轮询/响应机制。在Sparkplug的上下文中,设备通过EoN节点连接到Sparkplug基础设施中。EoN节点将MQTT Sparkplug的发布/订阅机制桥接到这些轮询/响应协议上。

支持MQTT的传感器和设备

尽管大部分设备和传感器采用像Modbus、OPC-UA、Beckhoff ADS等标准化和专有协议,但许多厂商为其设备和传感器提供了原生的MQTT支持。如果一个MQTT支持的设备已经配备了Sparkplug功能,通过提供适当的数据格式和主题结构,那么该设备可以直接与Sparkplug基础设施交互。在这种情况下,该设备将作为EoN节点被Sparkplug基础设施识别。如果MQTT设备仅支持标准的MQTT而没有Sparkplug意识,那么它仍然需要通过EoN节点来连接。

MQTT应用节点

MQTT应用节点是参与Sparkplug通信的节点,可以产生和消费消息,但它们不是SCADA / IIoT主机。这些通常被称为辅助应用程序。它们通常是提供专门功能的软件系统,例如MES(制造执行系统)、历史数据分析等。许多部署也会使用定制软件来满足特定用例的需求,这些软件需要消费由其他Sparkplug参与者产生的数据。

MQTT代理

MQTT代理是中心数据分发组件。所有启用Sparkplug的设备、EoN节点、SCADA / IIoT主机和MQTT应用都通过MQTT连接到代理。代理负责处理认证、授权、参与者状态管理以及在Sparkplug启用系统间的数据分发。MQTT代理需要100%兼容MQTT 3.1.1标准,因为需要支持保留消息、遗嘱和遗言以及QoS等功能。

技术术语(共 8 个)—— 点击展开
MQTT轻量级物联网消息传输协议,基于发布/订阅模式,适合低带宽不稳定网络
MQTT 3.1.1MQTT 协议主流版本,定义基础发布订阅与 QoS 机制
QoS服务质量等级,0 最多一次 / 1 至少一次 / 2 恰好一次
订阅客户端向 Broker 注册感兴趣的主题以接收消息
发布客户端向指定主题发送消息
保留消息Retained 消息,Broker 为每主题保留的最后一条消息
传感器将物理量转换为电信号的检测装置
网关协议转换/边缘汇聚设备,将设备数据接入 MQTT
来源/工具信息 —— 点击展开
来源 MQTT中文网(mqtt.cn) —— 国内领先的MQTT通信协议技术社区 分类 Sparkplug® v3.0.0规范 字数 2960 字 · 阅读约 8 分钟 更新 2023-12-30 永久链接 https://www.mqtt.cn/1327.html
推荐工具:MQTT调试助手 微信小程序
MQTT中文网官方推出的MQTT调试工具,支持 MQTT 3.1.1/5.0 实时连接调试、主题订阅、消息收发监控与报文分析。 无需安装,微信搜索「MQTT调试助手」即可使用。 电脑端入口:https://www.mqtt.cn/mqtttool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 mqtt.cn
相关标签
📝 作者声明
本文由 MQTT中文网技术团队 原创撰写,内容基于实际项目案例与技术文档,力求为读者提供准确、实用的参考信息。
把这篇资料用于真实项目?

进入工具中心进行报文解析、CRC 校验和设备调试,或提交需求获取选型与接入建议。

工程师会员

把这篇文章变成可执行的调试资料

开通后可使用高级报文解析、资料包下载、代码示例、工程案例和优先技术支持,适合真实项目交付。

高级工具不限次
资料包与代码包
完整工程案例库
优先技术支持入口

发表回复