工业物联网协议对比:MQTT Sparkplug vs OPC-UA

简介: 本文将全面比较 MQTT Sparkplug 和 OPC UA 以及它们的衍生版本,帮助您更清楚地了解哪种协议更适合您的需求。

引言

工业系统需要确保数据的无缝交换,因此对于高效、安全的通信协议具有极高的依赖性。MQTT Sparkplug 和 OPC UA 是两个经常被提到的工业协议。本文将全面比较 MQTT Sparkplug 和 OPC UA 以及它们的衍生版本,帮助您更清楚地了解哪种协议更适合您的需求。

OPC Classic 和 OPC UA

OPC UA 的前身是 OPC Classic(也称为 OPC DA 或 OPC Data Access),是由 OPC 基金会开发的一套工业自动化标准。OPC Classic 规范于 1996 年首次发布,它定义了一种标准化的方法,用于在软件应用和工业硬件设备(如传感器、控制器和可编程逻辑控制器)之间交换数据。

然而,OPC Classic 有个明显缺点:它与微软 Windows 操作系统及其专有的 DCOM 技术紧密耦合。这种依赖性严重影响了协议的可用性、扩展性、互操作性、安全性和平台独立性,这对一个开放标准来说是巨大的制约。

为了克服这些限制,OPC 基金会于 2006 年开始开发了 OPC UA (OPC Unified Architecture) 作为 OPC Classic 规范的后继者。这两种规范在功能上是等效的,但使用不同的底层通信技术。此外,OPC Classic DA 3.0 也于同年发布,并且至今仍在使用中。

为物联网而生的协议:MQTT 的演进

在 20 世纪 90 年代末,Andy Stanford-Clark 和 Arlen Nipper 参与了一个关于管道监测的项目,该项目需要一种轻量级协议,用于与远程传感器和设备进行通信。该项目要求在低功耗、低带宽的环境下实现监测功能。然而,当时的消息传输协议,如 HTTP 和 SMTP,被认为过于臃肿和低效,不适合这种特殊的场景。

为了应对这些挑战,一种发布/订阅模式的消息传输协议 MQTT 应运而生。MQTT 以其精简的代码和极低的带宽消耗而著称,因此在低功耗、低带宽的场景下具有显著的优势。它的主要目标是实现设备和系统之间的大规模实时数据交换,即使面对不同的数据格式和结构,也能保证数据通信的标准化。这一特点使得 MQTT 成为物联网和机器对机器(M2M)应用的理想选择。

MQTT 于 2010 年被结构化信息标准促进组织(OASIS)发布为开放标准,从而使其成为各个组织和行业可使用的通信协议。随后,在 2014 年发布了 MQTT 3.1.1,引入了一些新的特性,例如改进的错误处理和对服务质量(QoS)级别的支持。再后来,在 2019 年发布了 MQTT 5.0,进行了重大的改进,包括对自定义属性的支持、持久会话的实现以及错误报告的优化。

优势互补:OPC UA over MQTT

MQTT 发布/订阅模型相比经典 OPC UA 客户端-服务器模型有以下几个优势:

  • 可扩展性:发布/订阅模型可以有效地处理大量的设备和系统,非常适合工业自动化和物联网应用。
  • 实时数据交换:发布/订阅模型是为实现实时数据交换而专门设计的,它能让设备和系统及时感知和适应环境变化。
  • 减少网络流量:发布/订阅模型通过只传递设备和系统需要的数据,而非所有数据,可以有效地降低网络流量。

2018 年,OPC 基金会发布了 OPC UA 发布/订阅规范,它为 OPC UA 制定了一种发布/订阅的通信模型,该模型可以采用 MQTT 协议作为传输方式。OPC UA 发布/订阅模型非常强大,为工业自动化和物联网应用带来了巨大的好处。

提升工业连接性:MQTT Sparkplug 规范

MQTT 协议在物联网场景中取得了巨大的成功,但由于互操作性不足,它在工业自动化系统中的应用受到了限制。为了解决这个问题,Cirrus Link Solutions 在 2016 年推出了 Sparkplug 规范,旨在简化 MQTT 在工业自动化系统中的部署和使用。该规范为 MQTT 消息定义了一个标准化的格式,使得不同设备和应用之间能够方便地进行数据交换。

Sparkplug 的一个显著特点是它支持设备之间的双向通信。这种能力使得设备不仅可以发送命令,还可以接收来自网络中其他设备的反馈。

这篇博客通过介绍 5 个关键概念,阐述了为何 MQTT Broker 是实现 Sparkplug 设计原则的理想选择:Sparkplug 规范中关于 MQTT Broker 的 5 个关键概念。

OSI 模型概述

MQTT 和 OPC UA 是工业自动化和物联网应用中常用的两种协议,它们拥有不同的架构和设计,体现了各自的用途。以下是 MQTT、OPC UA 及其变体在开放系统互联(OSI)模型方面的比较:

OSI 模型 MQTT OPC UA MQTT Sparkplug OPC UA over MQTT
应用层 发布/订阅机制 OPC UA 通信(60 种数据类型) Sparkplug 通信(18 种数据类型) OPC UA
发布/订阅通信
表示层 未定义 UA-JSON
UA-XML
UA-Binary
Protobuf UA-JSON
UA-XML
UA-Binary
会话层 无会话 客户端-服务器会话管理 Sparkplug 会话感知 无会话
传输层 TCP/IP TCP/IP MQTT MQTT

传输层:MQTT 和 OPC UA 都使用 TCP/IP 作为底层通信协议。MQTT Sparkplug 和 OPC UA over MQTT 则使用 MQTT 作为传输协议,它们都采用了 MQTT 的发布/订阅模型。

会话层:OPC UA 包含负责管理客户端和服务器之间连接的会话层,处理诸如会话建立、身份验证和加密等任务。相比之下,MQTT 不具备会话层管理功能。然而,MQTT Sparkplug 通过在会话层引入 Sparkplug 会话感知来弥补这个不足。

表示层:OPC UA 拥有定义良好的信息模型,该模型定义了客户端和服务器进行数据交换时数据的结构和语义,例如 UA-JSON 和 UA-binary。相比之下,MQTT 缺乏正式的信息模型,而是依赖于基于主题的消息来实现客户端和服务器之间的数据通信。MQTT Sparkplug 则是通过指定 Google Protobuf 作为消息格式来弥补这一差距,以增强 MQTT 的能力。

应用层:MQTT 和 OPC UA 在应用层协议上有明显的区别。MQTT 使用发布/订阅模型,通过主题来组织消息,而 OPC UA 使用客户端/服务器模型,通过分层对象模型来组织数据。OPC UA 发布/订阅规范是对 OPC UA 客户端/服务器模型的一种扩展。

MQTT Sparkplug 和 OPC UA 对比

MQTT Sparkplug 和 OPC UA 各有优劣,因此在不同的使用场景中,可能会出现某个协议比另一个更加适用的情况。这两种协议及其衍生协议之间的一些主要区别如下:

指标 MQTT MQTT Sparkplug OPC UA OPC UA over MQTT
消息传输模型 发布/订阅 发布/订阅 客户端/服务器 发布/订阅
带宽使用 开销最低,低带宽和低功耗 开销最低,低带宽和低功耗 高代码占用,高带宽 高代码占用,高带宽
消息载荷 未定义 轻量级消息,通常小于 OPC UA 复杂的数据类型,其消息大小可以远大于 MQTT Sparkplug 复杂的数据类型,其消息大小可以远大于 MQTT Sparkplug
互操作性 不具备互操作性 具备互操作性(18 种数据类型) 高度互操作性(60 种数据类型) 高度互操作性(60 种数据类型)
扩展性 高度可扩展 高度可扩展,每秒能处理百万级消息 可扩展性较好,但需要更复杂的架构来处理大量数据 比 OPC UA 客户端/服务器模型具有更好的可扩展性
集成便利性 使用简单,配置要求最少 使用简单,配置要求最少 需要较多的安装和配置 需要较多的安装和配置
服务质量 QoS 0(至多一次)、QoS 1(至少一次)和 QoS 2(仅一次) QoS 0(至多一次)、QoS 1(至少一次)和 QoS 2(仅一次) 提供可靠的传输层,确保消息传递有序且不丢失 提供可靠的传输层,确保消息传递有序且不丢失
状态感知
自动发现
应用领域 物联网、家庭自动化和 M2M 应用 工业物联网和 M2M 应用 工业自动化 工业自动化
实时性
安全性 安全性不如 OPC-UA 安全性不如 OPC-UA 数字证书、数字签名、数据加密和安全认证 数字证书、数字签名、数据加密和安全认证
信息模型 不具备内置的信息建模支持 支持复杂的信息建模,但不及 OPC UA 多 支持复杂的信息建模系统,允许创建复杂的数据结构和模型 支持复杂的信息建模系统,允许创建复杂的数据结构和模型

简而言之,OPC UA 是一个开放标准,它包含了一套定义明确的数据类型规范。而 MQTT Sparkplug 也是一个开放标准,但它在数据类型的标准化方面做得不够。因此,在数据传输过程中,MQTT Sparkplug 产生的协议开销更小。

结语

MQTT Sparkplug 使用了轻量级的消息传输协议,非常适合低带宽或不稳定的网络环境。而 OPC UA 使用了更强大的消息传输协议,能够处理更多的数据量,更适合高速和安全的网络环境。

OPC UA 和 MQTT 之间的竞争一直持续至今。目前,EMQ 正在推出针对汽车行业的 MQTT over QUIC 协议,而 OPC 基金会也发布了 OPC UA over TSN。OPC UA over TSN 提供了一种在以太网上传输实时数据的标准化方法,旨在简化复杂的工业自动化和控制系统。

版权声明: 本文为 EMQ 原创,转载请注明出处。
原文链接:https://www.emqx.com/zh/blog/a-comparison-of-iiot-protocols-mqtt-sparkplug-vs-opc-ua

相关实践学习
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
1月前
|
消息中间件 安全 物联网
海量接入、毫秒响应:易易互联基于 Apache RocketMQ + MQTT 构筑高可用物联网消息中枢
易易互联科技有限公司是吉利集团旗下专注于换电生态的全资子公司,致力于打造安全、便捷、便宜的智能换电网络。公司依托吉利GBRC换电平台,基于电池共享与车辆全生命周期运营,已布局超470座换电站,覆盖40多个城市,计划2027年达2000座。面对海量设备高并发连接、高实时性要求及数据洪峰挑战,易易互联采用阿里云MQTT与RocketMQ构建高效物联网通信架构,实现稳定接入、低延迟通信与弹性处理,全面支撑其全国换电网络规模化运营与智能化升级。
161 1
海量接入、毫秒响应:易易互联基于 Apache RocketMQ + MQTT 构筑高可用物联网消息中枢
|
29天前
|
数据采集 传感器 监控
Modbus 与 MQTT 协议兼容:MyEMS 的泛在能源数据采集技术实现
MyEMS深度融合Modbus与MQTT协议,破解能源数据采集中协议碎片化、网络异构、数据孤岛等难题。通过Modbus接入95%以上工业设备,实现现场数据精准“拉取”;依托MQTT构建高效物联网传输通道,支持多源数据主动“推送”与云端集成。边缘侧采集规整,中心侧汇聚分析,形成统一、可靠、低延迟的数据流。该架构兼具高兼容性、强扩展性与低运维成本,广泛应用于工业园区、商业楼宇及集团型企业,支撑实时监控、AI分析与跨系统融合,打造泛在互联的能源数据底座,助力企业实现全面智慧能源管理。
152 6
|
5月前
|
物联网
(手把手)在华为云、阿里云搭建自己的物联网MQTT消息服务器,免费IOT平台
本文介绍如何在阿里云搭建自己的物联网MQTT消息服务器,并使用 “MQTT客户端调试工具”模拟MQTT设备,接入平台进行消息收发。
2044 42
|
6月前
|
数据采集 监控 网络协议
​MCP协议深度解析:原理、应用与物联网时代的机遇-优雅草卓伊凡
​MCP协议深度解析:原理、应用与物联网时代的机遇-优雅草卓伊凡
640 40
​MCP协议深度解析:原理、应用与物联网时代的机遇-优雅草卓伊凡
|
5月前
|
物联网
如何在腾讯云等平台搭建自己的物联网MQTT服务器Broker
物联网技术及MQTT协议被广泛应用于各种场景。本文介绍物联网MQTT服务助手下载,如何搭建自己的物联网平台,并使用 “MQTT客户端调试工具”模拟MQTT设备,接入平台进行消息收发。
446 37
|
4月前
|
监控 安全 Java
Java 开发中基于 Spring Boot 3.2 框架集成 MQTT 5.0 协议实现消息推送与订阅功能的技术方案解析
本文介绍基于Spring Boot 3.2集成MQTT 5.0的消息推送与订阅技术方案,涵盖核心技术栈选型(Spring Boot、Eclipse Paho、HiveMQ)、项目搭建与配置、消息发布与订阅服务实现,以及在智能家居控制系统中的应用实例。同时,详细探讨了安全增强(TLS/SSL)、性能优化(异步处理与背压控制)、测试监控及生产环境部署方案,为构建高可用、高性能的消息通信系统提供全面指导。附资源下载链接:[https://pan.quark.cn/s/14fcf913bae6](https://pan.quark.cn/s/14fcf913bae6)。
673 0
|
7月前
|
监控 物联网 网络性能优化
【杂谈】-MQTT与HTTP在物联网中的比较:为什么MQTT是更好的选择
通过上述分析,可以看出MQTT在物联网应用中的确是更好的选择。其高效的通信模型、低带宽消耗、稳定的连接保持机制以及可靠的消息质量保证,使其在各种物联网场景中都能表现出色。开发者在设计和实现物联网系统时,应优先考虑采用MQTT协议,以充分发挥其在资源受限环境下的优势,提升系统的整体性能和可靠性。
931 26
|
7月前
|
传感器 人工智能 物联网
健康监测设备的技术革命:AI+物联网如何让你随时掌握健康数据?
健康监测设备的技术革命:AI+物联网如何让你随时掌握健康数据?
935 19
|
11月前
|
存储 安全 物联网
政府在推动物联网技术标准和规范的统一方面可以发挥哪些作用?
政府在推动物联网技术标准和规范的统一方面可以发挥哪些作用?
361 60
|
11月前
|
安全 物联网 物联网安全
制定统一的物联网技术标准和规范的难点有哪些?
制定统一的物联网技术标准和规范的难点有哪些?
407 58

热门文章

最新文章