3. 指标数据采集与治理
生产运营指标异常分析的第一道关口不是算法,而是数据本身。一个“设备综合效率突然下降 12%”的告警,可能并非产线真的出了问题,而是 MES 的产量数据延迟了 40 分钟、PLC 的停机时长按秒累计而报表按分钟取整、点检系统里当班记录漏填了三台设备。因此,指标数据采集与治理要解决的核心问题是:让来自不同系统、不同频率、不同口径的数据,在进入异常检测之前变成一条时间基准一致、语义明确、质量可判的可信序列。
一、多源异构数据接入:先分清三类源,再定接入方式
生产现场的数据源大致可分三类。第一类是设备与过程数据,来自 PLC、SCADA、传感器网关,典型特征是高频(1s~1min)、点位多、以测点标签(tag)组织,如 LINE3.MOTOR01.Current。第二类是业务系统数据,来自 MES、ERP、WMS、QMS,特征是低频(班次、工单、批次粒度)、结构化强、带业务主键,如工单号、物料号、设备编码。第三类是人工与文档数据,如点检表、交接班记录、维修工单文本,特征是稀疏、非结构化、时间戳常为“某班次”而非精确时刻。
接入方式要与源特征匹配:设备数据优先走 OPC UA、MQTT 或 Modbus 网关,以“采集—缓冲—落库”三段式避免网络抖动丢点;业务系统数据优先走数据库增量抽取(按 update_time 水位线)或 API 拉取,避免全量扫描;人工数据则通过表单结构化落库,强制要求填写“发生时间”和“录入时间”两个字段。接入层必须统一携带三类元数据:源系统标识、采集时间戳、原始主键,否则后续对齐和追溯无从谈起。
二、时序数据对齐:把不同节拍的数据放到同一时间轴
对齐的本质是定义统一的时间基准与聚合口径。常用做法是设定一个基准时间栅格,例如以 1 分钟为最小粒度,所有指标都向该栅格归集。设备高频数据用降采样(均值、最大值、末值)落入栅格;业务低频数据用前向填充(forward fill)落到其生效区间;人工记录按发生时间就近归入栅格。
需要特别注意的是时间语义:设备时间戳通常是“采集时刻”,业务数据时间戳可能是“业务发生时刻”或“入账时刻”,两者可能相差数小时。工程上应统一采用“事件发生时间”作为对齐依据,并保留“入库时间”用于延迟监控。此外,跨时区、夏令时、设备时钟漂移都要在接入时做归一化,否则会出现同一停机事件在两条曲线上错位一分钟的假异常。
三、缺失值与噪声处理:区分“真缺失”和“假缺失”
缺失值分两种。一种是物理缺失:设备停机、网络中断导致确实没有数据;另一种是逻辑缺失:数据存在但未按栅格落位,例如业务系统只在有工单时才产生记录。处理策略必须区分:物理缺失若时长较短(如 ≤ 3 个栅格),可用线性插值或前向填充,并打上 imputed=true 标记;若缺失较长,应保留为空并标记 unavailable,让异常检测跳过该区间,而不是用插补值制造虚假平稳。
噪声处理要避免“过度平滑”。设备电流、温度等信号常含尖峰,若直接用 3σ 剔除,可能把真实的瞬时过载也删掉。更稳妥的做法是组合使用:先用物理量程做硬边界过滤(如电流不可能为负、温度不超过 200℃),再用中值滤波(窗口 5)抑制孤立尖峰,最后用 3σ 或 IQR 标记离群点但不直接删除,而是写入 outlier_flag 供后续分析判断。这样既保住了真实异常,又抑制了采集噪声。
四、数据质量监控规则设计:让问题在进入分析前暴露
质量规则应围绕四个维度设计,并落到可执行的判断条件上。以下是一份可直接参考的规则配置示例(参数为示例值,需按现场实际调整):
规则ID 维度 对象 判断条件 动作
DQ-001 完整性 OEE.minute 每分钟记录数 = 0 连续 ≥ 3 告警+标记unavailable
DQ-002 完整性 设备电流.tag 缺失率 > 5% / 小时 告警
DQ-003 及时性 MES.产量 入库时间 - 事件时间 > 15min 降级+告警
DQ-004 一致性 OEE.产量 产量 > 理论产能 × 1.05 拦截+人工复核
DQ-005 一致性 停机时长 停机时长 > 班次时长 拦截
DQ-006 有效性 温度.tag 值 < -20 或 > 200 标记outlier
DQ-007 有效性 电流.tag 相邻点变化率 > 50%/s 标记outlier
DQ-008 一致性 跨系统产量 MES产量 与 SCADA计数偏差 > 2% 告警+记录偏差值
规则执行后应输出一个数据质量分,例如按完整性 40%、及时性 20%、一致性 25%、有效性 15% 加权,得到 0~100 的分数。当某指标质量分低于 80 时,异常检测结果应附带“数据可信度不足”的提示,避免把数据问题误判为生产问题。这一步是整条链路的价值所在:让分析结论知道自己站在多可靠的数据上。