4. 生产数据采集需求分析

在西门子PLC与MES集成的项目中,需求分析阶段最容易出现的偏差不是“采不到数据”,而是“采了不该采的、漏了必须采的、频率定错了”。一旦采集清单和数据字典确定,后续的PLC变量规划、DB块设计、OPC UA/Profinet通信配置、MES侧接口开发都会围绕它展开。因此,本节的核心任务是把MES对生产现场的数据需求,翻译成一份可落地、可校验、可交付的采集清单与数据字典。

一、五个维度决定采集边界

生产数据采集需求通常从五个维度展开,每个维度对应不同的数据来源和采集特征:

  • 工单维度:当前执行的工单号、产品型号、计划数量、批次号、工艺配方版本。这类数据多由MES下发或操作员在HMI确认,PLC侧通常以字符串或整型数组形式缓存,采集频率低(换型或开工时触发)。
  • 产量维度:累计产量、合格数、不合格数、当前班次产量。由PLC计数器或高速计数模块产生,属于过程量,需要按节拍或按件采集。
  • 节拍维度:单件加工时间、设备循环时间、理论节拍与实际节拍偏差。通常由PLC定时器或时间戳差值计算,采集频率与生产节拍同步。
  • 设备状态维度:运行、待机、故障、换型、停机等状态字,以及故障代码、报警号。状态变化是事件型数据,适合变化触发采集。
  • 质量结果维度:检测结果(OK/NG)、测量值、缺陷代码、返修标记。来自PLC逻辑判断或在线检测设备,通常按件采集。

这五个维度不是孤立存在的,它们通过“工单—产品—时间”三个主键关联。例如,一条产量记录必须能追溯到具体工单和产品批次,否则MES无法做OEE分析和质量追溯。

二、采集清单的梳理方法

梳理采集清单时,建议采用“从MES报表倒推”的方式:先明确MES需要生成哪些报表和看板,再反推需要哪些原始数据。例如,要生成设备OEE报表,至少需要:设备运行时间、计划停机时间、故障停机时间、合格品数、总产量。这些数据分别来自设备状态字、时间戳、计数器和质量结果。

在PLC侧,每个采集项需要明确以下属性:数据名称、数据类型、PLC地址(如DB100.DBD0)、单位、量程、采集触发方式、采集频率、数据来源(PLC内部计算/MES下发/操作员输入)。这些属性汇总后就是数据字典的雏形。

生产数据采集需求分析:五维数据流与采集频率分层 MES 层(工单下发 / 报表看板 / 质量追溯) 工单号 · 产品型号 · 计划数量 · 批次号 · 工艺配方版本 OEE报表 · 产量统计 · 质量追溯 · 设备状态看板 西门子 PLC 层(S7-1200/1500 · DB块 · OPC UA / Profinet) 工单维度 工单号 产品型号 计划数量 批次号 触发:换型/开工 产量维度 累计产量 合格数 不合格数 班次产量 触发:按件/周期 节拍维度 单件加工时间 循环时间 理论节拍 节拍偏差 触发:每件/每循环 设备状态维度 运行/待机/故障 换型/停机 故障代码 报警号 触发:状态变化 质量结果维度 OK/NG 测量值 缺陷代码 返修标记 触发:按件 现场设备层(传感器 · 执行器 · 检测仪器 · 扫码枪) 接近开关 · 光电传感器 · 编码器 · 称重仪 · 视觉检测 · RFID/条码 采集频率分层: 事件触发(换型/状态变化) 按件采集(每件/每循环) 周期采集(100ms~1s) 关联主键:工单号 + 产品批次 + 时间戳 → 确保MES可追溯、可聚合、可分析

三、数据字典的字段设计

数据字典是采集清单的规范化表达,它把每个采集项的定义固定下来,供PLC工程师、MES工程师和电气人员共同确认。一个可落地的数据字典至少包含以下字段:

字段名 说明 示例
数据项名称 唯一标识,建议用英文缩写 WorkOrderNo
中文描述 业务含义 当前工单号
数据类型 PLC与MES双方约定 String[20]
PLC地址 DB块绝对地址 DB100.DBB0~19
单位/量程 物理量单位与范围 — / 0~999999
采集触发 事件/周期/按件 换型触发
采集频率 最大允许间隔 ≤1s
数据来源 PLC计算/MES下发/操作员 MES下发
关联主键 用于MES关联 工单号+批次号

以“累计产量”为例,数据字典中应明确:数据类型为DInt(32位有符号整数),PLC地址为DB101.DBD4,单位为“件”,采集触发为“按件上升沿”,采集频率为“每件一次且不低于100ms”,数据来源为“PLC计数器”,关联主键为“工单号+批次号”。这样MES侧收到数据后,可以直接按工单聚合,不需要再做二次匹配。

四、采集频率的确定原则

采集频率不是越高越好。频率过高会占用PLC通信资源、增加MES数据库写入压力;频率过低则可能丢失关键状态变化。确定频率时遵循三条原则:

  1. 状态变化类数据用事件触发:设备状态字、故障代码、工单切换等,只在变化时上报一次,并在数据字典中标注“变化触发+心跳周期”。心跳周期用于确认通信链路正常,通常设为30s或60s。
  2. 按件产生的数据与生产节拍同步:产量计数、质量结果、单件节拍等,每完成一件采集一次。如果节拍为8s,则采集频率不低于每8s一次;实际实现时可在PLC中做上升沿检测,MES侧按件接收。
  3. 过程量数据用周期采集:温度、压力、速度等模拟量,根据工艺要求设定周期,常见为100ms~1s。对于仅用于趋势展示的数据,可放宽到5s或10s。
提示:在西门子PLC中,事件触发数据可通过OPC UA的“数据变更订阅”实现,周期数据则用“采样订阅”并设置 Publishing Interval。两者可以在同一个OPC UA服务器中并存,但需要在数据字典中分别标注,避免MES侧重复订阅。

五、从需求到可执行清单的检查要点

完成采集清单和数据字典后,建议做一次交叉检查:每个MES报表字段是否都能在数据字典中找到对应数据项;每个数据项的采集频率是否满足报表刷新要求;每个数据项的PLC地址是否已分配且不冲突;事件触发类数据是否都有心跳机制。检查通过后,这份清单就可以作为PLC变量规划、DB块设计和MES接口开发的输入依据。

注意:采集频率要求必须在需求阶段与MES和PLC双方确认。如果MES要求“实时”而PLC侧只能做到500ms周期,需要在数据字典中明确标注实际可达频率,避免后期集成时出现“数据延迟”争议。

实际项目中,建议把数据字典维护为Excel或CSV文件,并纳入版本管理。每次工单类型或产品型号变更时,同步更新数据字典中的工单维度字段,确保采集清单与生产实际始终一致。