数据采集层架构
引言
数据采集层是工厂数据平台总体架构的基石,直接决定了数据平台”能看见什么、能分析什么”。工厂环境中的数据源种类繁多、协议各异、环境复杂,如何将这些分散的数据源可靠地接入平台,是智能制造落地的首要技术挑战。本文系统阐述数据采集层的设计方法与关键技术。
三大数据源分类
设备数据(OT域)
设备数据是工厂最核心的数据源,来源于各类生产设备和自动化系统:
- PLC/DCS数据:设备运行状态(运行/停机/故障)、工艺参数(温度/压力/转速/位移)、产量计数
- 传感器数据:振动传感器、温度传感器、视觉检测器等IoT设备的高频采样数据
- SCADA-数据采集与监视数据:经过SCADA系统汇聚后的产线级监控数据
设备数据的特点是高频率、大体量、强时序性,单台设备的采集频率可从100ms到1ms不等。
业务数据(IT域)
业务数据来源于工厂各类管理系统:
- MES-制造执行系统:生产工单、报工记录、工序流转、工艺参数记录
- ERP-企业资源计划:生产计划、物料需求、采购订单、销售订单
- QMS-质量管理系统:质检记录、不合格品处置、CAPA记录
- WMS-仓储管理系统:出入库记录、库存状态、物料批次
业务数据的特点是结构化强、关联复杂、事务性要求高。
外部数据
外部数据虽然不是工厂内生数据,但对生产决策有重要参考价值:
- 环境数据:温湿度、空气质量(影响工艺质量)
- 能源数据:电力负荷、天然气消耗、水务数据
- 市场数据:订单预测、原材料价格波动
- 供应链数据:供应商交付状态、物流追踪
设备数据采集链路
典型的设备数据采集链路如下:
PLC/传感器 → 协议网关 → MQTT Broker → Kafka → 时序数据库
→ Flink(实时计算)
采集层组件设计
协议网关是采集链路的核心组件,负责将各种工业协议转换为标准化的数据格式:
- 数据读取:通过OPC-UA或Modbus协议从PLC读取原始寄存器数据
- 协议转换:将寄存器数据映射为有工程意义的物理量(温度、压力等)
- 数据封装:按照统一的JSON/Protobuf格式封装数据,附上时间戳和元数据
- 可靠传输:通过MQTT协议发送至消息代理,支持QoS保障
EdgeX Foundry边缘框架
EdgeX Foundry是Linux基金会下的开源边缘计算框架,在工厂场景中被广泛采用:
- 设备服务层:支持多种工业协议的设备驱动(Modbus、OPC-UA、BACnet等)
- 核心数据层:数据的标准化、验证和持久化
- 规则引擎层:基于eKuiper的边缘流处理
- 导出服务层:将处理后的数据发送至云端或中心平台
工业协议详解
OPC-UA(统一架构)
OPC-UA是新一代工业通信标准,具有以下核心优势:
- 平台无关性:基于HTTP/TCP,跨平台、跨语言
- 信息模型:内置地址空间和数据模型,设备自描述能力
- 安全机制:内置加密、认证、授权
- 订阅机制:支持数据变化订阅,减少轮询开销
在工厂实践中,OPC-UA适用于新设备接入和跨系统数据交换场景,是ISA-95 Level 2-3层数据交互的首选协议。
Modbus(传统PLC协议)
Modbus是最经典的工业通信协议,在存量设备中占比极高:
- Modbus RTU:基于串口(RS-485),传输距离远、抗干扰强,但速率较低
- Modbus TCP:基于以太网,配置简单,但缺乏安全机制
- 数据模型:线圈(Coil)、离散输入(Discrete Input)、保持寄存器(Holding Register)、输入寄存器(Input Register)
Modbus的主要挑战是寄存器地址映射——每个PLC厂商的寄存器地址分配不同,需要逐个配置点位映射表。
MQTT(物联网标准协议)
MQTT是轻量级的发布/订阅消息协议,在工厂IoT场景中广泛使用:
- 轻量高效:最小的报文开销(2字节),适合带宽受限环境
- QoS保障:三级服务质量(0-至多一次、1-至少一次、2-恰好一次)
- 遗嘱机制:设备异常断线时自动通知
- 保留消息:最新状态自动保留,新订阅者立即可获取
MQTT的Topic设计是关键实践点,推荐按工厂/车间/产线/设备/数据类型的层级设计,例如:
factory/workshop-a/line-1/cnc-01/temperature
EtherNet/IP
EtherNet/IP是基于以太网的工业协议,在罗克韦尔(Rockwell)生态中广泛使用:
- CIP协议:通用工业协议(Common Industrial Protocol)
- 隐式消息:用于实时I/O数据交换
- 显式消息:用于配置和诊断
在工厂中,EtherNet/IP主要用于PLC之间的高速数据交换,采集层通常通过协议网关转换后接入。
边缘计算设计
边缘计算在数据采集层扮演越来越重要的角色,其核心价值在于:
数据清洗
在边缘侧完成原始数据的初步清洗:
- 异常值过滤:基于物理量程的合理性检查
- 去重处理:消除重复数据包
- 时间戳校准:修正网络延迟导致的时间偏差
协议转换
将多种工业协议统一转换为标准格式:
OPC-UA/Modbus/EtherNet/IP → 统一JSON格式 → MQTT/Kafka
边缘推理
将部分AI推理下沉到边缘侧:
- 设备异常检测:基于振动数据的实时异常判断
- 质量预判:基于工艺参数的实时质量预估
- 安全监控:基于视觉的人员安全检测
边缘推理大幅降低了云端通信带宽需求和响应延迟。
数据采集的核心挑战
网络不稳定
工厂网络环境复杂,无线信号受金属设备干扰,有线网络受设备改造影响:
- 断点续传:网关本地缓存(通常配置24-72小时),网络恢复后自动补传
- 数据压缩:边缘侧对采集数据进行压缩,降低带宽需求
- 多路径传输:有线+无线双通道冗余
协议异构
一个典型工厂可能同时存在5种以上工业协议,协议转换和维护成本极高:
- 统一接入框架:采用EdgeX等框架,插件式管理协议驱动
- 设备模板库:预置常见设备型号的协议模板,减少配置工作量
- 自动发现:通过mDNS或SSDP实现设备自动发现和注册
时钟同步
多设备数据关联分析依赖于精确的时间同步:
- NTP同步:精度毫秒级,满足大多数工厂场景
- PTP同步:精度微秒级,用于高频振动等精密分析场景
- 网关打戳:在网关侧统一打时间戳,避免设备时钟偏差
采集点位管理
大型工厂可能有数万至数十万采集点位,管理复杂度极高:
- 点位管理平台:统一的点位注册、配置、监控平台
- 动态发现:支持设备上线后自动注册采集点位
- 版本管理:采集配置的变更追踪和回滚能力
与数据平台的衔接
数据采集层的输出通过消息总线(Kafka)传递给上层:
- 实时通道:Kafka → Flink → 实时数据流水线 → Doris/实时看板
- 离线通道:Kafka → Spark → 时序数据库/数据湖
- 告警通道:Kafka → Flink CEP → 告警引擎 → 通知系统
这种基于消息总线的架构解耦了采集层与计算层,使得新数据源的接入不需要修改下游系统。
总结
数据采集层是工厂数据平台总体架构的”第一公里”,其设计质量直接影响整个平台的数据完整性和时效性。通过标准化的协议转换、可靠的传输机制、智能的边缘计算,以及系统化的点位管理,可以构建一个健壮、灵活、可扩展的数据采集体系。