3. 数据采集与边缘预处理
在制造时序数据生命周期中,采集层决定了后续所有分析的上限。车间现场的设备往往来自不同年代、不同厂商:PLC 可能只支持 Modbus RTU,数控机床可能提供 OPC UA 服务端,而新增的传感器网关则倾向用 MQTT 上报。边缘节点的职责不是简单“转发”,而是在数据离开产线之前完成协议归一、质量修复、体积压缩和断网保护。本节围绕一条真实可落地的采集链路展开。
一、三种协议的接入定位
OPC UA、Modbus、MQTT 并不是互相替代的关系,它们在采集链路中承担不同角色。Modbus(RTU/TCP)是面向寄存器的轮询协议,适合读取 PLC、变频器、电表等设备的保持寄存器与输入寄存器,典型参数是站号、功能码、起始地址、寄存器数量和轮询周期。OPC UA 是带信息模型的订阅协议,适合从数控系统、机器人控制器获取带语义的节点数据,支持订阅与数据变更通知,能显著降低无效轮询。MQTT 则是轻量发布/订阅传输协议,适合边缘节点向上层平台汇聚数据,主题层级通常按“厂区/车间/产线/设备/测点”组织。
一个常见的组合是:边缘网关用 Modbus 轮询底层设备,用 OPC UA 订阅关键机床,再把归一化后的数据以 MQTT 发布到平台。这样既覆盖了存量设备,又保留了新设备的语义信息。
# 示例:Modbus 轮询参数(假设值)
站号: 1
功能码: 03(读保持寄存器)
起始地址: 40001
寄存器数量: 10
轮询周期: 1000 ms
超时: 300 ms
重试: 2 次
# 示例:MQTT 上报主题
factory/A1/line2/cnc01/spindle_speed
factory/A1/line2/cnc01/temperature
二、边缘清洗:把“脏数据”挡在入库之前
现场数据常见的问题包括:传感器断线导致读数为 0 或极值、通信抖动造成重复帧、时间戳缺失或漂移、量纲不统一。边缘清洗要按顺序处理,否则会互相干扰。推荐的处理顺序是:时间戳对齐 → 去重 → 异常值判定 → 缺失值处理 → 单位归一。
异常值判定不能只靠固定阈值。以主轴温度为例,正常范围可能是 35~75 ℃,但设备刚启动时温度会从室温爬升。若简单用 75 ℃ 上限,会把启动阶段误判为异常。更稳妥的做法是“物理量程 + 变化率”双重判断:量程设为 -20~150 ℃,变化率限制为每秒不超过 5 ℃,超过则标记为可疑并暂存,等待下一帧确认。缺失值处理也要区分场景:短时丢包可用线性插值,长时间断线应写入质量码而非伪造数值。
三、降采样与压缩:在保真与体积之间取舍
高频采集(如 1 kHz 振动)直接上传会迅速耗尽带宽和存储。降采样不是简单抽点,而要根据信号特征选择策略。对于温度、压力这类缓变量,可采用“时间窗口 + 均值/中位数”;对于振动、电流这类快变量,应保留峰值、均方根和波形特征,而不是只取平均。常用做法是:边缘保留原始高频数据 1~5 分钟用于故障回溯,同时向上层发送 1 秒粒度的聚合值。
压缩方面,工业时序数据适合“有损 + 无损”组合。无损压缩可用 Delta 编码加 LZ4,适合保留原始波形;有损压缩可用旋转门(Swinging Door)或死区压缩,只记录变化超过阈值的点。例如温度死区设为 0.2 ℃,则 0.2 ℃ 以内的波动不产生新点,数据量可下降一个数量级,而趋势仍然可辨。
四、缓存与断点续传:断网不等于丢数
车间网络并不稳定,边缘节点必须具备本地缓存能力。缓存设计的关键是“有界队列 + 持久化 + 确认删除”。数据先写入本地环形缓冲区或嵌入式数据库,再按 MQTT QoS 1 发布;只有收到平台确认后才删除本地副本。断网期间数据持续堆积,恢复后按时间顺序补传,并携带原始时间戳,避免平台按接收时间错误排序。
断点续传需要两个游标:本地写入位置和已确认位置。重连后从已确认位置之后开始补传,补传速率要限流,避免瞬间冲垮平台。若缓存达到上限,应优先丢弃低价值数据(如已聚合的均值),保留原始异常段。
五、一个可复现的采集参数示例
假设某产线有 1 台 PLC、1 台数控机床和 1 个温度传感器网关,边缘节点按以下策略运行:Modbus 每 1 秒轮询 10 个寄存器;OPC UA 订阅主轴转速与进给率,采样间隔 200 ms;温度网关以 MQTT 上报,周期 5 秒。清洗阶段对温度做量程 -20~150 ℃ 与变化率 5 ℃/s 双重判断;降采样阶段对温度按 10 秒窗口取均值,对主轴转速保留 1 秒峰值;压缩阶段温度死区 0.2 ℃,转速死区 5 rpm。缓存容量设为 2 GB,断网后按 200 条/秒限流补传。
判断链路是否正常,可以观察三个指标:一是平台侧数据时间戳是否连续、是否存在大段空洞;二是质量码中“可疑/插值”比例是否异常升高;三是断网恢复后补传速率是否稳定、是否出现重复数据。若质量码异常比例持续超过 5%,应优先检查传感器接线与轮询超时,而不是直接调整压缩阈值。