MQTT 赋能工业 PLC 数据采集与应用

MQTT 协议概述

MQTT 是用于物联网的标准消息传递协议。它被设计为一种非常轻量级的发布/订阅消息传送,非常适合以较小的代码占用量和网络带宽连接远程设备。MQTT 协议具有以下特点:

  • 轻巧高效MQTT 客户端非常小,需要设备资源少。MQTT 消息头很小,可以优化网络带宽。
  • 双向通讯:MQTT 允许设备到云之间以及云到设备之间的消息传递。
  • 可靠的消息传递:MQTT 具有3种定义的服务质量级别:0-最多一次,1-至少一次,2-恰好一次,可根据业务场景保证消息传递的可靠性。
  • 支持不可靠网络:许多物联网设备通过不可靠的蜂窝网络进行连接。MQTT 对持久性会话的支持减少了将客户端与代理重新连接的时间。
  • 安全:MQTT 使您可以轻松地使用 TLS 加密消息并使用现代身份验证协议(例如OAuth)对客户端进行身份验证。

如今,MQTT 被广泛应用于汽车、制造业、电信、石油和天然气等行业。

本系列文章将详细解读 MQTT 协议在各行业实际应用场景中是如何发挥作用的。

当前的工业 PLC 数据采集

PLC 即可编程逻辑控制器,是工业自动化领域的核心设备,广泛应用于各个工业领域。从 PLC 问世至今,一直表现出强大的生命力和高速增长态势,2020 年全球 PLC 市场的销售量已经达到了百亿 RMB 级别。

德国产业界将 PLC 在生产工艺自动化过程中的广泛应用定义为「工业 3.0」,其代表了各类数控机床、工业机器人等单机自动化设备在生产环节的推广及应用。而将无处不在的传感器、PLC、智能控制系统、通信设施通过 ICT 技术形成一个智能网络,使人与人、人与机器、机器与机器及服务与服务之间能够互联,则是「工业 4.0」的核心要义。人、物、数据通过物联网技术进行流程再造,由单机智能升级为万物互联的智能。

实现工业场景下的万物互联离不开对工业自动化设备的数据采集。其中 PLC 常用的工业现场总线协议就多达数十种,此外各大 PLC 厂商基本都有各自的私有总线协议。由于现场总线种类繁多各异,传统的工业 PLC 数据采集一般通过在设备侧部署边缘网关的方式进行:使用边缘网关将各类协议统一,再将 PLC 数据采集及汇聚,转发到 IoT 平台,以此实现设备间的数据互联。

当前的工业 PLC 数据采集.png

然而,基于边缘网关的数据采集方式,存在以下不足:

  • 需要部署边缘网关硬件,并进行软件配置,需要投入额外的成本。
  • 边缘网关数据采集频率只能达到秒级,大部分边缘网关上报物联网平台的数据格式无法修改。
  • PLC 与边缘网关间通讯出现问题,会造成数据采集缺失,无法为高级应用提供有效数据支撑。

新趋势:PLC 集成 MQTT 协议

随着物联网、大数据及人工智能的迅速发展,自动化厂商也在加速推进物联网战略,推出各自的 IoT 和数字化解决方案。作为主流物联网协议的 MQTT 协议成为各自动化设备厂商关注的重点。为了加速实现互联互通的工业物联网,各大厂商纷纷开始在 PLC 中集成 MQTT 协议,以方便 PLC 数据的采集。

以几个主流厂商为例:

  • 西门子已经将 MQTT 客户端功能封装成 PLC 的库文件,通过西门子 S7-1200、S7-1500 可以实现基于 MQTT 3.1.1 协议的数据上报,完成 PLC 与 MQTT 消息服务器的轻松连接。
  • 德国倍福推出了 TF6701 IOT 通讯库,通过 MQTT 协议可以将 PLC 数据直接发往各大公有云 IoT 平台以及 MQTT 消息服务器;TF6701 同时支持将 PLC 中数据封装成 json 格式,完成数据上报,实现 OT 和 IT 领域的数据格式统一化。

PLC 集成 MQTT 协议.png

图片来源:https://infosys.beckhoff.com
  • 菲尼克斯推出的 PLCnext 开放式控制平台,操作系统采用 RT-Linux 系统,除了传统的 PLC 的编程功能,还支持 C、Java、Python、JS 等高级语言编程,让 PLC 可以通过 MQTT SDK 灵活接入物联网平台。

一网到底:MQTT 赋能工业数据应用场景

那么在实际的工业场景中,MQTT 协议与 PLC 的结合在数据采集中有哪些优势呢?

精简资源配置,采集更便捷

将 MQTT 客户端集成到 PLC 系统后,传统的自动化工程师通过自己擅长的梯形图、功能块图编程即可实现设备的数据采集和上报,无需采购边缘网关,更不需要关心边缘网关的接线及软件配置工作。

毫秒级时间戳,数据点信息更精确

传统的边缘网关数据采集方式,大部分网关设备通过轮询获取 PLC 数据,采集精度可以达到秒级。基于 MQTT 和 PLC 融合的方式,数据点可以结合精确到 1 毫秒级的时间戳,通过 MQTT 协议实现工业数据的实时上报。此外,通过 NTP 或者 IEEE 1588 服务器可以对所有 PLC 设备进行时钟同步,保证智慧工厂、产线等各类生产环节的 PLC 设备具有同一的时间基准,各类智能设备具备时钟同步性,为后续的大数据分析挖掘提供高效的数据支撑。

数据点灵活配置,上报格式更统一

传统的边缘网关数据采集方式,网关设备通过现场总线驱动读取 PLC 寄存器数据,需要根据 PLC 点位数据类型配置数据点参数,然后数据以固定的 json 格式上报 MQTT 服务器。MQTT 与 PLC 融合,可支持在 PLC 中灵活配置数据点,并通过 json 格式数据上报,实现 OT 和 IT 领域的数据格式统一化。

基于以上优势,使用 MQTT 进行数据采集与数据上云的 PLC 逐渐被广泛应用到各个工业场景中。

海量数据全面感知:传动链部件预测性维护

当前,新一轮科技革命和产业变革蓬勃兴起,工业生产逐渐成为了人工智能的重点探索方向,工业智能发展的前提是海量数据的全面实时感知。MQTT 与 PLC 在工业现场的融合,完成了高精度数据的实时采集,在云端结合诸如 EMQ X 这类具备高吞吐、低延时特性的物联网消息中间件,可以实进一步现海量工业数据的实时移动、处理、分析及存储,为工业智能的应用夯实了底层基座。在风电行业,通过实时采集风机传动链状态监测系统 (CMS) 的振动数据和风机 SCADA 系统的工况运行数据,两者进行融合分析,建立风机传动链部件的早期失效预警模型,可以及时预警核心部件的早期失效、采取积极预防措施,降低风机核心部件发生重大故障的概率,避免大部件维修成本及其他各项损失。

传动链部件预测性维护.png

提高设备利用率:远程设备诊断

由于 PLC 集成了 MQTT,每个 PLC 扫描周期的数据点可以结合时间戳打包发往 MQTT 消息中间件 EMQ X,通过 EMQ X 内置的规则引擎,将数据存储到时序数据库。结合丰富的可视化工具,可以实现云端的软件示波器功能,帮助工程师远程快速定位现场设备故障,降低设备停机时间,提升设备利用率。

决策优化:电网智能调度

基于物联网的全面感知,结合云端的数据分析和建模,最终要形成决策优化的应用闭环,自下而上的信息流和自上而下的决策流将共同构成工业智能应用的核心链路。MQTT 与 PLC 在工业现场的融合,无需边缘网关及协议转换,实现了真正的一网到底,在数据中心到工业现场之间,构筑了一条安全、稳定、低时延的通讯链路。在新能源发电领域,MQTT 低时延的通讯链路直达 PLC,可以在发电侧快速响应调度层的电网调频、无功补偿等指令,推进电网的智能化发展。

电网智能调度.png

图片来源:《工业互联网体系架构 2.0 报告》

可以看到,集成了 MQTT 协议的 PLC 将使工业数据采集场景变得更加简单高效。结合服务器端或者云端的高性能 MQTT 消息中间件,工业生产数据更得以轻松上云,使其价值得到充分的发挥。

关注我们获取最新动态

推荐阅读

如何在 Python 中使用 MQTT

本文将介绍如何在 Python 项目中使用 paho-mqtt 客户端库 ,并实现客户端与 MQTT 服务器的连接、订阅、收发消息等功能。

Dekun Tao 2020-08-13
有效载荷标识与内容类型 - MQTT 5.0 新特性

有效载荷标识(Payload Format Indicator)与内容类型(Content Type)是 MQTT 5.0 新引入的两个属性。

2019-04-12
粘性会话负载均衡 - MQTT Broker 集群详解(二)

本文将通过在 EMQ X 4.3 集群前面配置 HAProxy 负载均衡器,带读者亲自体验如何充分利用粘性会话实现负载均衡。