3. 制造数据采集与预处理基础
制造现场的数据清洗,第一步不是“洗”,而是“接”。如果采集环节就把时间戳、设备编码、工单号、物料批次这些关键字段接错了,后面的异常检测和治理只会建立在错误基础上。制造数据通常来自四类源头:传感器数据(高频、时序、物理量)、MES数据(工单、工序、报工、质量记录)、ERP数据(订单、物料、库存、成本)、日志数据(设备日志、系统日志、操作日志)。它们的采集方式、时间粒度和主键体系完全不同,预处理策略也必须区别对待。
四类数据的采集方式与特征
传感器数据一般通过PLC、采集网关或边缘计算节点获取。常见协议包括Modbus TCP、OPC UA、MQTT、Profinet等。以一台注塑机为例,采集网关每200ms读取一次模腔压力、料筒温度、锁模力、注射速度等模拟量,再以JSON或二进制格式上传到边缘缓存。这类数据的特点是:频率高、体量大、时间戳由设备或网关生成、容易受网络抖动影响出现丢点或重复点。
MES数据通常通过数据库直连、API接口或消息队列获取。MES记录的是“人、机、料、法、环”的业务事件,例如工单开工、工序报工、首件检验、不良品登记。它的时间粒度是分钟级或事件级,主键通常是工单号+工序号+设备编号。MES数据往往带有业务状态字段,如“已开工”“已完工”“已检验”,这些状态是后续判断数据是否完整的重要依据。
ERP数据一般通过定时批量抽取或API同步获取,频率较低,通常按天或按小时。ERP关注订单、物料主数据、BOM、库存、供应商、成本中心。它的主键是订单号、物料编码、工厂代码。ERP数据的特点是结构规范、字段稳定,但更新滞后,且与MES的工单号不一定一一对应,需要建立映射关系。
日志数据来自设备控制器、上位机、数据库、应用系统。采集方式包括Syslog、Filebeat、Flume、Kafka等。日志是非结构化或半结构化的文本,包含时间戳、日志级别、模块名、消息体。日志的价值在于记录异常、报警、操作轨迹,但格式不统一,需要先做解析和字段抽取。
初步整理的关键动作
时间对齐是四类数据融合的第一道关。传感器时间戳来自网关,MES时间戳来自应用服务器,ERP时间戳来自数据库,日志时间戳来自设备本地时钟。四者之间可能存在几秒到几分钟的偏差。工程上通常以MES事件时间为基准,将传感器数据按时间窗口聚合到工序区间内,ERP按天对齐到生产日期,日志按事件时间戳插入。若设备时钟未做NTP同步,应先在采集端统一校时,否则后续按时间关联会大面积错位。
字段标准化解决“同名不同义、同义不同名”的问题。例如设备编码在传感器侧叫device_id,在MES叫equip_code,在ERP叫asset_no,必须建立映射字典统一为asset_id。工单号在MES是work_order,在ERP是order_no,需要维护一张映射表。物料编码同理。标准化后的字段才能作为后续关联的主键。
去重与补缺针对采集过程中的常见问题。传感器重复点通常由网关重传导致,可按“设备+时间戳+测点”去重,保留最新值。MES重复报工可按“工单+工序+报工时间”去重,保留首次或末次取决于业务定义。缺失值处理要区分场景:传感器短时丢点可用线性插值或前值填充;MES状态缺失不能随意填充,应标记为“状态未知”并进入异常清单;ERP物料缺失应回查主数据,而不是用默认值掩盖。
主键关联是把四类数据拼成一张宽表的核心。典型关联路径是:以MES工单为骨架,通过asset_id关联传感器时序数据,通过order_no关联ERP订单与物料信息,通过asset_id+时间窗口关联日志中的报警事件。关联后得到“设备×时间×工单×物料×质量状态”的宽表,这才是后续异常检测的输入。
一个可参考的预处理检查清单
| 检查项 | 对象 | 判断依据 | 处理动作 |
|---|---|---|---|
| 时间戳偏差 | 传感器 vs MES | 同一工序起止时间差 > 5s | NTP校时或按窗口对齐 |
| 设备编码映射 | 四类数据 | asset_id 无法关联 | 补映射字典,标记未匹配 |
| 重复记录 | 传感器 / MES | 主键+时间戳重复 | 去重,保留最新或首次 |
| 状态缺失 | MES | 工单无完工状态 | 标记“状态未知”,进异常清单 |
| 日志解析失败 | 日志 | 正则未匹配到 level/module | 保留原文,标记待解析 |
| 物料主数据缺失 | ERP | 物料编码无对应记录 | 回查主数据,不默认填充 |
完成上述整理后,数据才具备进入异常检测环节的基本条件。需要强调的是,预处理不是一次性动作,而是随采集链路持续运行的管道。建议把时间对齐、字段标准化、去重补缺、主键关联做成可配置的流水线,每批数据到达后自动执行,并输出质量报告:本次处理了多少条、去重多少条、补缺多少条、关联失败多少条。这些数字本身就是数据质量的第一手指标。