乐趣区

关于mqtt:工业物联网协议对比MQTT-Sparkplug-vs-OPCUA

引言

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

退出移动版