MQTT对数字转换的好处

消息队列遥测传输(MQTT)解决了当今日益复杂的工业网络中涉及的许多挑战,并可以促进数字化转型计划。

通过克里斯汀Lewotsky 2023年2月15日
图片由Brett Sayles提供

工业4.0、智能工厂和信息物理系统是不同的计划,但有一个共同点——它们都依赖于大规模并行的机器对机器通信。全面分析人士预计,到2020年,工业物联网(IIoT)的全球市场规模将达到数千亿美元。无论是传感器、电机、控制器还是人机界面(HMIs),它们都需要与越来越多的用户连接,从监控和数据采集(SCADA)系统和制造执行系统(MES)到可编程逻辑控制器(plc),甚至是原始设备制造商(oem)和第三方可靠性服务。拥有数据是不够的——它需要被及时地提供和消耗。这就是消息队列遥测传输(MQTT)的用途。

MQTT是为石油和天然气中关键任务SCADA管道系统开发的开源消息传递协议,可以解决当今日益复杂的工业网络中涉及的许多挑战。目前的工业通信协议基于数据源和数据消费者之间的直接连接。它们对于机器级操作非常有效,但是当涉及到将大量设备与外部应用程序连接时,部署和维护它们可能非常复杂且耗时。它们缺乏为新的数据驱动环境服务的灵活性和可伸缩性。

MQTT在设计时考虑了机器对机器通信。其流线型的网络架构和轻量级数据包规范使其足够灵活,可以重新配置工厂线路,并具有足够的可扩展性,以支持添加数百甚至数千个连接设备。FairCom (Sandy, Utah)的首席架构师Mike Bowers说:“这是制造业的正确范例。”“我坚信MQTT对制造业的作用就像互联网对其他一切的作用一样。”

MQTT发布/订阅

MQTT是一个应用层协议(第7层)OSI网络模型),使用TCP/IP作为传输层。在这种情况下,它类似于用于Internet的HTTP应用程序。但是HTTP需要长而复杂的报头,而MQTT报头是轻量级的,只有2b。MQTT消息的最大有效负载大小为256mb。内容与格式无关——有效负载可以包含二进制数据、文本数据、图像文件(如jpeg)、XML、JavaScript对象符号(JSON)等等。MQTT还支持加密文件。

消息规范很重要,但MQTT的一些最大好处来自它的体系结构。当前的工业网络协议基于设备间直接连接上的投票/响应通信。*连接的设备在轮询时响应或定期发送更新。这些协议对于机器级所需的实时数据交换类型非常有效,例如编码器和电机之间或电机和控制器之间。然而,随着需要交换数据的应用程序和设备数量的增加,超出了直接机器级别,网络甚至设备本身都会陷入困境。不要忘记,这些模型仍然受到直接连接需求的限制。即使对于遵循生产者-消费者模型的协议,消费者仍然需要知道生产设备的身份。

为了避免这些问题,MQTT基于发布/订阅(发布/订阅)模型。设备和应用程序(称为客户机)通过称为代理的中间件进行交互。客户端不相互连接,也不轮询特定地址以获取数据。相反,所有客户端都连接到代理,代理的功能类似于邮局,接受来自发布者客户端的信息并将其转发给订阅者客户端(参见图1)。

MQTT涉及从客户端到代理的单个TCP/IP连接。每个客户端都被分配了一个唯一的客户端ID,但这仅由代理用于建立连接。实际的数据收集是由主题控制的。MQTT主题是标识要发布的数据的文本字符串。考虑将带有板载温度和电流传感器的电机连接到代理作为发布客户端(直接或通过另一个连接的设备)。其主题可定义如下:

cellB / motorA /传感器/温度

cellB / motorA /传感器/电流

预测性维护(PM)应用程序可以订阅这两个主题以接收来自传感器的更新。为了进一步简化过程,主题可以与通配符一起使用,因此PM应用程序将订阅cellB/+/sensor/current以访问单元中所有电机的电流绘制更改(单级通配符)或cellB/motorA/sensor/#以接收该电机的所有传感器数据(多级通配符;类似地,SCADA系统、MES或数据历史学家以及PM应用程序可以订阅适当的主题路径以从安全PLC获取状态,以保持机器状态的顶部。

按主题订阅意味着接收发布数据的过程与发布客户端的类型或IP地址无关。与传统的投票/回应系统相比,它更类似于电子邮件,可以把它看作是机器的Twitter。如果更换了传感器,但分配了相同的主题,对其细节的任何更改对订阅的客户端都是透明的。

鲍尔斯说:“我并没有把我的主题与设备捆绑在一起。“我将他们与他们所做的捆绑在一起,而不是他们是什么。这种脱钩使工厂变得更加灵活。”他指出,使用传统调查/响应网络的客户无法轻松地重新设计或重新配置生产线。MQTT提供了一种替代方案。“现在,他们可以通过改变主题和订阅来动态地改变哪些设备与其他设备对话。只要增加新设备,重塑和重组产品线,就非常快速和简单。”

关于发布的讨论提出了MQTT的另一个关键优势,即它通过异常进行报告。在传统的工业网络中,应用程序轮询设备以获取更新。如果四个不同的应用程序需要捕获由PLC聚合的传感器数据,并检查其状态,这四个应用程序中的每一个都轮询PLC。问题是,工业设备是耐用的,所以绝大多数读数都是机器的“我很好”。随着设备数量的激增,这些现状读数会阻塞网络,而几乎没有增加价值。

使用MQTT,发布客户机仅在表示超过指定阈值的更改时将数据发送给代理。这种方法解决了“我很好”的问题,极大地减少了网络流量,并让应用程序集中在有意义的数据上。客户端确实会以指定的间隔(通常是60秒)向代理发送一个16位的“保持活跃”消息,但这对网络带宽没有重大影响。

仔细看看经纪人

MQTT协议设计用于移动大量消息包,同时最大限度地减少延迟。为了帮助实现这些目标,代理就是中间件。因此,它可以驻留在任何位置的任何服务器上-在云中,在本地,或两者都有。它的功能是过滤和转发消息,使其具有高度可伸缩性。Opto 22 (Temecula, California)的产品策略副总裁Benson Hougland说:“单个经纪人可以扩展到数百万个主题。”“如果你需要更大的容量,你只需要增加另一个代理,就可以在它们之间实现负载平衡。”可以为自动故障转移安装多个代理,以确保不间断的连接。“即使是在经纪人层面,也有很多能力来建立一个有弹性的网络。”

基本MQTT代理仅存储活动客户机发布的最新值。为了维护记录,实现需要订阅到适当主题路径的数据历史学家或数据记录器。在这里,发布/订阅模型再次带来了价值,因为历史学家还可以将其数据发布给其他订阅者,如MES或第三方可靠性提供商。或者,高级MQTT代理将其消息存储在嵌入式数据库中或与数据库集成。的

四个MQTT连接规定

MQTT包括几个旨在提供对工业操作至关重要的安全性和可靠性的条款。

1.安全

客户-代理模型的最大优势之一是在安全性方面。MQTT需要确保安全的连接,但是将其添加到代码中将与轻量级消息传输的目标相违背。相反,它的创造者采取了不同的策略。MQTT中没有定义安全模型。事实上,这是故意的,”Cirrus Link (Stillwater, Oklahoma)的总裁兼CTO Arlen Nipper说。在Arcom Controls工作期间,尼珀与IBM的安德鲁·斯坦福-克拉克(Andrew Stanford-Clark)合作创建了MQTT。“MQTT是建立在TCP之上的,所以我们决定让TCP来完成这个重任。让我们应用一流的TCP/IP安全性。今天,这恰好是TLS,但随着TCP技术的进步,MQTT将能够与之同步。”

关于工业网络的关注之一一直是将资产连接到Internet的前景。在这里,MQTT体系结构开始发挥作用。使用MQTT,设备只建立一个连接,即到代理的连接。整个系统中唯一开放的端口是在代理上,它受到防火墙的保护。因为MQTT使用TLS,所以到该端口的任何连接都需要进行身份验证和加密。由于每个MQTT客户机只通过一个安全的、经过身份验证的连接连接到代理,因此客户机受到保护。“MQTT的美妙之处在于它不需要在客户端打开任何端口,”Hougland说。数据发布者(例如,一个启用mqtt的PLC)通过出站连接将其数据发送给代理。“没有到客户端的传入连接,所以从一开始就不存在网络安全漏洞。”

这并不是说MQTT不支持双向通信,但是,他急忙补充说:“当我们第一次连接到MQTT代理时,我们建立了TLS加密的身份验证连接。”“如果SCADA应用程序需要发出命令,它可以安全地通过代理执行,然后返回到没有开放端口的PLC。我们可以验证该命令来自可信的来源,然后发起操作。而这一切都发生在几毫秒之内。”

Bowers说:“为了确保可信来源发布和订阅主题,代理可以对主题应用安全访问控制。”

2.连接配置

客户-代理连接可以定义为干净的或持久的:

  • 清洁会话:客户端与代理交换会话长度的消息。当连接中断时,会话关闭,不保留任何数据。

  • 持久会话:即使连接断开,代理也会维护经过身份验证的会话。它保存订阅信息,并存储在缓冲区中发布的任何QoS 1或2消息。当设备重新连接时,它会按时间顺序接收这些消息。

会话类型在连接时定义。干净会话对于故障排除和监视非常有用。持久会话对于关键任务和/或双向通信特别有益。一旦连接经过加密和身份验证,客户端就可以安全地接收输入而不会延迟。

3.服务质量

MQTT被设计为具有特殊功能,以确保消息传递和监视网络上设备的连通性。该协议定义了三种服务质量级别:

  • QoS 0:发布一次,不需要确认(至少一次)

  • QoS 1:重复发布直到发送确认(最多一次)

  • QoS 2:重复发布,保证单次接收(只有一次)。

为主题路径分配QoS是客户端配置的一部分。用户还可以选择将主题配置为保留消息。在本例中,MQTT代理将存储它收到的关于该主题路径的最新更新。任何新的订阅者在连接后立即收到最后保留的消息,这对于通信设备状态特别有利。

MQTT客户端还可以配置“最后遗嘱”(LWT)消息,该消息在连接时发送给代理。所有LWT设置包括主题路径、QoS和保活定时器值。当客户端与代理失去连接的时间超过保持活动计时器值时,代理将LWT消息分发给订阅者。这对于通知客户端设备已经脱机非常有用。

4.倡导B

赋予MQTT如此大的灵活性和可配置性的一些相同特性在工业环境中可能存在问题。例如,缺乏主题命名约定会使构建网络和添加来自不同供应商的大量新设备变得非常劳动密集型。MQTT包的最小定义性质增加了灵活性,但也对互操作性构成了障碍。为了解决这些问题和其他一些问题,开发MQTT的同一团队创建了Sparkplug,并向开源社区发布了规范,由Eclipse基金会管理。火花塞B不是MQTT的变体,而是一个附加组件。火花塞B之于MQTT就像HTML之于HTTP——一种提供数据的方式。

Nipper描述了Sparkplug b开发背后的动机。“我们看到很多人使用MQTT,但是他们有不同的主题名称空间,他们有不同的有效负载定义,”他说。“Sparkplug规范根本没有改变MQTT。它说的是,嘿,如果你要做一个实时关键任务系统,那么这可能是一个很好的开始。”

火花塞B是一个详细的规范,但在这里,我们强调几个关键方面:

  • 以ot为中心的主题名称空间定义:Sparkplug B为MQTT主题建立了标准格式,提高了互操作性。

  • 使用谷歌协议缓冲区的以ot为中心的有效负载定义:规范定义了有效负载的结构,包括元数据、时间戳和其他用户定义的信息单元。修改的目标是使数据更易于使用,并提高互操作性和最小化有效负载大小。Hougland说:“Sparkplug B旨在以一种方法组织将要转移到MQTT传输的数据,使系统中的每个人都知道发生了什么。”

  • 状态管理功能——每个客户端在第一次连接时发布一条出生消息,宣布它在线,并提供标签和主题列表。任何订阅者将首先收到出生消息。如果连接的设备上有任何变化,出生信息将被更新。

  • 如果到代理的设备连接在指定时间之后中断,则设备客户机将开始存储消息。与此同时,代理将向所有订阅者发送死亡消息(本质上是增强的LWT消息)以及时间和日期戳。当设备连接恢复后,客户端将首先发送当前数据,然后按时间顺序转发存储的数据。这通常称为“存储和转发”,可确保订阅者收到可能在网络或发布客户端中断期间生成的有价值的数据。

这只是对Sparkplug b的关键方面的简要总结。它们旨在解决问题并提高MQTT在工业环境中的有用性。就像工程中的任何事情一样,都涉及到权衡,并不是每个人都同意成本/收益的主张。

作为一名架构师,Bowers很欣赏Sparkplug B小组发现的问题,但更喜欢以不同的方式解决挑战。“他们暴露了几个问题,”他指出。“我只是不同意他们的解决方案。例如,其中一个问题是,主题是一个字符串,其中的内容几乎没有结构。这是事实,但是Sparkplug B解决方案过于狭隘地定义了一个主题的内容,对于现实世界来说不够现实。MQTT的另一个问题是有效负载中没有结构。火花塞B解决方案是定义一个结构。他们的结构是可以的,但同样,这是有限制的。”

通过使用谷歌协议缓冲区,Sparkplug B以二进制代码表示有效负载,这种代码非常紧凑,但如果没有软件转换器,就无法读取和调试。鲍尔斯更喜欢JSON这样的替代方案,它一目了然,他认为它是数据交换的事实上的标准,鲍尔斯说。

最终,由最终用户和他们团队的其他成员来决定实现。houghland着重介绍了Sparkplug B的优点,即使来自不同供应商的设备无需定制代码就可以进行通信。“在工业自动化领域,我们确实需要一些开放和可互操作的东西,”他说。“因此,如果供应商A、供应商B和供应商C都选择使用MQTT和Sparkplug B这两种开源技术,那么现在这些系统就可以开始开箱即用地相互通信。”

MQTT在现实世界中的使用

MQTT在工业领域越来越有立足之地。它被用来实现可重构的工厂生产线。鲍尔斯说:“我认为主要的驱动力是需要取代点对点集成的噩梦,点对点集成成本高昂,而且阻碍了敏捷性。”“解耦集成是解决方案,MQTT允许您比其他任何方法更好地解耦系统。”它可以用来向设备发送食谱,以非常快速地动态地改变操作,当然,任何系统都可以动态地订阅任何遥测技术来进行各种类型的分析。

这个生态系统正在蓬勃发展,有支持MQTT的传感器、开源和商业代理,以及一系列边缘设备,这些设备旨在简化传统工业网络和传统设备与MQTT的集成。

该技术正在迅速获得接受,并已通过早期采用者阶段。“它是安全的,它是开源的,而且它绝对是高性能的,”霍格兰说。“我肯定会说,我们现在处于早期多数阶段。”

鲍尔斯说:“当我在会议上介绍这一点时,我们有很多观众,他们非常感兴趣。”“我不认为这是一个营销炒作周期。我相信MQTT将真正改变制造业,使其更便宜、更快、更敏捷。我真的认为MQTT是未来的趋势。”

先进自动化协会(A3)是CFE媒体和技术内容合作伙伴。

原始内容可以在A3


作者简介:Kristin Lewotsky,推进自动化协会特约编辑