用户中心

资讯 > 技术文章

【深度解读】工业物联网最常用的消息传递协议——MQTT

来源:控制工程网2019.08.27阅读 4742

  消息队列遥测传输(MQTT)已成为过去五年中跨多个行业应用的主要物联网消息传输方式之一。考虑到大多数云服务提供本机MQTT功能,越来越多的设备制造商、软件和服务正在实施基于MQTT的产品。
  MQTT的设计初衷
  信息技术(IT)领域的Facebook、云服务提供商以及许多其它公司对MQTT的采用,可能会让大家认为MQTT是针对IT解决方案的,但MQTT的起源却是由工业通信问题驱动的。
  1997年,Phillips 66公司安装了市场上第一个基于传输控制协议/网络协议(TCP/IP)的极小孔径终端(VSAT)系统www.cechina.cn,用于其管道SCADA系统。要有效地使用这种网络基础设施,需要解决许多挑战。在实施该系统之前,轮询/响应协议是任何SCADA系统实施的标准。
  然而,由于极小孔径终端系统通信固有的传播延迟,以及与可能未改变的过程变量持续轮询相关的成本,Phillips 66公司正在寻找一种更好的方法来优化其网络基础设施。
  到目前为止,IT部门使用面向消息的中间件(MOM)软件来为应用程序解耦。它们是高效的基础架构www.cechina.cn,使用消息代理来确保“已发布”信息的应用程序可以连接到“订阅”该信息的应用程序。信息可以在例外情况下发布给任何有兴趣并订阅该信息的应用程序。
  该想法是将这些相同类型的基础设施用于实时SCADA系统。唯一的问题是当时市场上的MOM产品不适合在SCADA环境中使用。基于这些要求,项目开始开发适合在类似工业环境中使用的MOM规范。

图1:根据Eclipse基金会的调查,MQTT是物联网解决方案中最常用的消息传递协议。图片来源:Eclipse基金会

  这最终导致了MQTT设计初衷的形成。MQTT的最初设计目标是简单、高效、状态和开放。
  简单。当MQTT首次出现时,市场上可用于远程边缘计算的硬件平台很少;具有64KB内存的8位微处理器是常态。MQTT必须以最少的计算资源实现。即使在2018年控制工程网版权所有,Arduino微控制器也可以提供完整的MQTT通信栈。
  高效。早期的极小孔径终端系统提供商对发送和接收的每个字节信息收费。MQTT传输必须在网络上提供最小的开销。一旦建立了MQTT会话,发布的消息中只有2字节的开销。
  状态。如果用户为关键任务提供实时基础架构,那么MQTT  TCP/IP连接的“状态”至关重要。MQTT提供了一种称为“连续会话感知”的机制,可通知所有关心MQTT连接的实时状态信息的客户。
  开放。上世纪90年代后期www.cechina.cn,SCADA、分布式控制系统(DCS)以及遥测产品主要基于专有的传统轮训/响应协议。应当明白,为了使MQTT对整个行业有用,它需要成为一个任何人都可以免费使用的开放规范。
  除了这些标准,也很容易遗漏一些重要方面,例如:
  安全。很多人都注意到MQTT规范没有定义任何安全性。这是因为MQTT规范基于TCP/IP。应该时刻记住,最新的TCP/IP安全实践适用于MQTT基础设施。其范围从对安全性没有要求的专用网络,到用于连接的完整传输层安全性(TLS)证书。由于MQTT是远程发起的连接,因此边缘设备和客户端甚至不必打开任何TCP/IP端口,这就大大减少了整体网络安全的范围。
  有效载荷数据格式。当涉及MQTT有效负载中包含的信息时www.cechina.cn,MQTT与数据无关。它们可以是来自可编程逻辑控制器(PLC)的二进制消息、JPEG图像、可扩展标记语言(XML)文档或JavaScript对象表示法(JSON)字符串。MQTT将有效载荷的编码和解码留给软件提供者。

图2:根据Eclipse基金会的调查,自2016年以来,MQTT呈上升趋势,超过62%的应用使用消息传递作为标准。 

  工业强度的MQTT
  随着使用MQTT的物联网(IoT)解决方案,开始向执行更多关键任务的工业物联网(IIoT)迁移,市场需要一个允许基于MQTT的供应商能够轻松实现互操作的规范。尽管MQTT规范没有规定任何消息主题命名空间或数据表示,但IIoT空间需要一个命名规范。Sparkplug规范为IIoT市场实现了这一点。
  开发Sparkplug规范是为了帮助定义在关键任务实时应用程序中,如何最好地开始使用MQTT。Sparkplug规范定义:
  1.众所周知的MQTT主题名称空间,因此信息的发布者和订阅者可以提前知道主题名称空间以实现互操作性。
  2.针对工业过程变量优化的二进制有效负载。Sparkplug规范承认工业基础设施没有无限的带宽,在极小孔径终端系统、无线电和蜂窝基础设施上必须运行良好。
  3.MQTT中的“状态”管理如何工作以及如何在SCADA、DCS系统和工业控制系统解决方案中有效地使用它,以实时了解所有MQTT客户端的状态。(作者:Arlen Nipper) 、

版权声明:版权归控制工程网所有,转载请注明出处!

频道推荐

关于我们

控制工程网 & CONTROL ENGINEERING China 全球工业控制、自动化和仪器仪表领域的先锋媒体

CE全球

联系我们

商务及广告合作
任小姐(北京)                 夏小姐(上海)
电话:010-82053688      电话:18616877918
rendongxue@cechina.cn      xiashuxian@cechina.cn
新闻投稿:王小姐

关注我们的微信

关于我们 | 网站地图 | 联系我们
© 2003-2020    经营许可编号:京ICP证120335号
公安机关备案号:110102002318  服务热线:010-82053688