制造业实时数据传输方案概述及示例

这里写自定义目录标题

引言

在制造业中实现设备实时数据传输需要对制造业数据、流程和系统有深入的了解,并与相关各方(工程、IT、业务等)进行紧密协作。选择合适的开源或商业解决方案组件至关重要。此外,架构设计还需考虑可伸缩性、可靠性、集成性和成本效益等因素。

系统架构

  1. 数据采集层
    • 在设备或机器上安装传感器或数据采集器,收集实时运行数据,如温度、压力、转速等。
    • 使用工业协议和通信接口,如OPC UA、Modbus、Profinet等从设备获取数据。
  2. 边缘处理层
    • 部署工业边缘网关或边缘计算设备,收集从设备传输来的数据。
    • 进行初步数据清洗、过滤和基本分析。
    • 通过安全通道(HTTPS、VPN等)将数据发送到云端或数据中心。
  3. 消息队列层
    • 使用可靠的消息队列服务,如Kafka、RabbitMQ、Azure IoT Hub等接收设备数据。
    • 实现数据缓冲、持久化和负载分担。
  4. 数据处理层
    • 部署大数据集群或流数据处理平台,如Apache Spark、Apache Flink、Azure Stream Analytics等。
    • 进行数据清洗、转换、聚合和复杂事件处理。
    • 集成机器学习模型进行实时预测和异常检测。
  5. 数据存储层
    • 根据不同的用途选择恰当的数据存储,如关系数据库、时序数据库、数据湖等。
    • 存储结构化数据、半结构化数据和非结构化数据。
  6. 功能应用层
    • 开发数据可视化和操作系统,如实时仪表板、工艺优化工具、预测性维护应用等。
    • 与现有制造执行系统(MES)、ERP等集成。
    • 提供数据API以支持外部消费者访问数据。
  7. 安全和治理
    • 实施设备级、网络级、系统级和数据级的安全控制措施。
    • 设计数据访问控制、审计跟踪和监控策略。
    • 遵循数据隐私和合规性要求。

架构示例

总体架构如下图所示,由底层设备适配层、MQTT 消息传输层、InfluxDB 数据持久层和数据调用 API 四部分构成。参考来源
在这里插入图片描述

  1. 适配层
    由于制造设备本身不具有标准的实时数据输出,并且不同品牌、不同类型设备的通信协议和需要采集的数据都不同,所以需要对每类设备进行适配。适配层逻辑采用 C++ 语言实现,采集数据以 JSON 格式输出。将同属于一个区域的设备总和视为一个边缘节点(图中的虚线框),设备数据以节点为单位进行发布。

  2. MQTT
    MQTT mqtt.org 是一种适用于物联网(IoT)的极其轻量级的标准消息传输协议,其消息传输基于发布/订阅的模式。
    在这里插入图片描述
    要实现 MQTT 协议的消息传输,需要一个 MQTT 消息服务器,以及发送或接收数据需要的 MQTT 客户端。MQTT 消息服务器需要部署在云服务器上,其本身不发布也不订阅数据,而是作为消息的中转站。MQTT 客户端可以进行消息的发布和订阅,并且支持多种语言实现。

  3. InfluxDB
    InfluxDB influxdata.com 是一个由 InfluxData 开发的开源时序数据库,着力于高性能地查询与存储时序型数据,被广泛应用于存储系统的监控数据,IoT 行业的实时数据等场景。在这里插入图片描述
    通常来讲,想要把设备数据存储到 InfluxDB 中,需要一个 MQTT 客户端订阅相关的消息主题,然后通过连接数据库、编写 Flux 语言(类似于 SQL 语言,用于操作 InfluxDB 数据库)将数据存入数据库。好在有第三方服务 Telegraf 可以帮助我们快速实现这一系列的操作。
    时序数据库与关系型数据库的最大区别在于索引不同,时序数据库中的数据都以时间为索引,以此提高查询效率。时序数据库的其他特性如下:

    • measurement:类似与关系型数据库中表的概念。
    • field:类似于关系型数据库中属性的概念,存放数据,不具有索引。
    • tag:类似于关系型数据库中属性的概念,存放标签,具有索引。
    • point:类似于关系型数据库中记录的概念。
    • retention policy:数据保留策略,用于定时删除过期数据。
    • series:具有共同 retention policy,measurement 和 tag 的集合。
  4. Telegraf
    Telegraf docs.influxdata.com/telegraf 是 InfluxData 开发的一个数据采集器,用来收集各种监控数据。因为其非常灵活的插件体系,社区贡献了大量的采集插件,从操作系统层面的指标到各种数据库、中间件的插件应有尽有。在这里插入图片描述
    使用 Telegraf,只需要编写配置文件,将其输入设置为 MQTT,连接 MQTT 服务器,订阅相关主题,将其输出设置为 InfluxDB,在接收到数据后向数据库输出数据。
    在配置文件中需要指定输入数据的格式为 JSON,并且声明 JSON 中个各个属性的含义。

  5. API
    数据查询的 API 初步采用 NodeJS 编写,使用 GET 请求携带 measurement、start、stop、filed 等参数进行查询,以 JSON 格式返回结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值