引言
工业零碎须要确保数据的无缝替换,因而对于高效、平安的通信协议具备极高的依赖性。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<br/>UA-XML<br/>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