**摘要:**本文围绕通用 MES 系统中的正向追溯与逆向追溯展开,说明两者各自依据哪些数据(工单、批次、条码、工序过站记录、物料绑定关系、设备与人员记录等),如何借助条码与批次建立追溯链路,并给出通用的数据模型、追踪流程、实现要点与常见问题,帮助读者在 MES 中落地一套可用的追溯体系。
一、什么是 MES 追溯
MES(Manufacturing Execution System,制造执行系统)的追溯,本质上是在回答两类问题:
- 正向追溯(Forward Traceability):这批原料、这个批次、这台设备生产出来的产品去了哪里?影响范围有多大?
- 逆向追溯(Backward Traceability):这个成品或半成品是用什么原料、在什么时间、由谁、在哪台设备、按什么工艺参数生产出来的?
两者共用同一套追溯数据,只是查询方向相反:正向追溯用于控制影响面 (召回、隔离、客户通知),逆向追溯用于定位问题根因(来料、工艺、设备、人员)。
二、追溯的通用数据基础
无论哪种 MES,追溯能力都建立在"对象 + 关系 + 事件"这三类数据之上。
2.1 追溯对象(主数据)
| 对象 | 说明 | 典型标识 |
|---|---|---|
| 物料 | 原材料、辅料、半成品、成品 | 物料编码 |
| 批次 | 同一来源、同一时间段的物料集合 | 供应商批次号、内部批次号 |
| 序列号/条码 | 单件或单箱的唯一标识 | SN、托盘码、箱码 |
| 工单 | 一次生产任务 | 工单号 |
| 工序 | 工艺路线中的加工步骤 | 工序号、工序编码 |
| 设备/工位 | 执行加工的资源 | 设备编号、工位号 |
| 人员 | 操作者、检验员 | 工号 |
2.2 追溯关系(绑定关系)
追溯链路的核心,是厘清"谁由谁构成、谁装在谁上面",常见关系包括:
- 物料---批次绑定:某工单在某工序消耗了哪些批次、多少数量。
- 批次---产品绑定:某批次物料被投入到哪些 SN 或成品批次。
- SN---SN 绑定:总成与子件、整机与关键部件的装配关系。
- 产品---工单绑定:产品属于哪张工单、哪个生产订单。
- 产品---客户/发货单绑定:成品最终流向哪个客户、哪张发货单。
2.3 追溯事件(过程记录)
过程记录是追溯的"时间轴",通常包括:
- 工序过站记录(进站、出站、时间、结果)
- 投料/上料记录(物料批次、数量、操作人)
- 工艺参数记录(温度、压力、扭矩、程序号)
- 质量检验记录(检验项、结果、不良代码)
- 设备与人员记录(设备编号、工号、班次)
- 返修、报废、拆解、重工记录
三、正向追溯:依据什么、怎么追
3.1 正向追溯的依据
正向追溯的起点通常是"有问题的输入",依据以下数据向下游展开:
- 来料批次/供应商批次:供应商通知某批次原料异常。
- 内部物料批次:内部抽检发现某批物料不合格。
- 设备/工位/时间段:某台设备在某时段参数异常。
- 工单/生产订单:某张工单整体需要排查。
- 操作人员/班次:某班次操作存在系统性风险。
关键依据是投料绑定记录:只有把"物料批次"与"工单/产品/SN"绑定起来,正向追溯才有链路可走。
3.2 正向追溯的追踪步骤
- 确定追溯起点:输入问题批次号、设备号或工单号。
- 查投料记录:在投料/上料表中查出该批次被投入到哪些工单、哪些工序、哪些 SN。
- 展开产品范围:由工单/SN 找到对应的半成品、成品批次和箱码、托盘码。
- 展开过程记录:列出这些产品的过站记录、检验结果、返修记录,判断是否受影响。
- 展开流向:通过入库、发货、客户绑定关系,确定成品发往哪些客户、哪些订单。
- 输出影响清单:形成"批次---工单---SN---成品---客户"的完整清单,用于隔离、召回或客户通知。
3.3 正向追溯的典型查询
sql
-- 由物料批次正向查受影响的产品与工单
SELECT m.material_batch,
m.work_order_no,
m.operation_no,
m.sn,
p.product_code,
p.finished_batch,
s.shipment_no,
s.customer_code
FROM mes_material_binding m
LEFT JOIN mes_product p ON p.sn = m.sn
LEFT JOIN mes_shipment_detail s ON s.sn = p.sn
WHERE m.material_batch = 'SUP-BATCH-20241001'
ORDER BY m.work_order_no, m.operation_no;
四、逆向追溯:依据什么、怎么追
4.1 逆向追溯的依据
逆向追溯的起点通常是"有问题的输出",依据以下数据向上游回溯:
- 成品 SN / 成品批次:客户投诉某台产品故障。
- 半成品批次:后道工序发现某批半成品不良。
- 不良代码/检验记录:某类缺陷集中出现。
- 发货单/客户订单:某客户反馈批量问题。
关键依据是产品构成关系与过程记录:产品由哪些子件、哪些批次构成,经过了哪些工序、设备和参数。
4.2 逆向追溯的追踪步骤
- 确定追溯起点:输入成品 SN、成品批次或客户投诉单号。
- 查产品档案:找到该产品的工单、生产时间、工艺路线。
- 查装配/投料关系:逐层展开子件 SN、物料批次,形成 BOM 式的追溯树。
- 查过程记录:列出每道工序的过站时间、设备、工号、工艺参数、检验结果。
- 定位可疑环节:结合不良现象,比对同批次、同设备、同班次的其他产品,缩小范围。
- 输出根因线索:形成"成品---子件---物料批次---工序---设备---人员"的追溯链,支撑原因分析与纠正措施。
4.3 逆向追溯的典型查询
sql
-- 由成品 SN 逆向查构成物料与过程记录
SELECT p.sn,
p.work_order_no,
b.material_code,
b.material_batch,
b.child_sn,
r.operation_no,
r.equipment_code,
r.operator_id,
r.param_value,
r.pass_time
FROM mes_product p
LEFT JOIN mes_bom_binding b ON b.parent_sn = p.sn
LEFT JOIN mes_route_record r ON r.sn = p.sn
WHERE p.sn = 'SN-20241027-0001'
ORDER BY r.operation_no, r.pass_time;
五、正向与逆向追溯的对比
| 维度 | 正向追溯 | 逆向追溯 |
|---|---|---|
| 起点 | 问题输入(物料批次、设备、工单) | 问题输出(成品 SN、成品批次、投诉) |
| 方向 | 由上游到下游 | 由下游到上游 |
| 核心依据 | 投料绑定、工单与产品关系、发货关系 | BOM 装配关系、工序过站记录、工艺参数 |
| 主要目的 | 控制影响面、隔离召回 | 定位根因、改进工艺 |
| 输出 | 受影响产品与客户清单 | 追溯树与可疑环节清单 |
六、通用 MES 的追溯实现要点
6.1 统一标识与条码体系
追溯的前提是"一物一码、一批一码"。建议统一 SN、箱码、托盘码、批次号的编码规则,并在关键工序强制扫码,避免人工录入造成断链。
6.2 关键节点强制绑定
在投料、装配、关键工序、检验、入库、发货等节点强制记录绑定关系。绑定关系一旦缺失,追溯链路就会中断,因此应通过系统校验(如未扫码不允许过站)保证数据完整性。
6.3 数据模型设计
- 产品表:SN、工单、产品编码、生产时间、状态。
- 投料绑定表:工单、工序、SN、物料编码、物料批次、数量、操作人、时间。
- 装配关系表:父 SN、子 SN、装配工序、时间。
- 过站记录表:SN、工序、设备、工号、进站/出站时间、结果。
- 参数记录表:SN、工序、参数名、参数值、采集时间。
- 发货明细表:发货单、箱码、SN、客户、发货时间。
6.4 追溯查询的性能与可用性
追溯查询往往需要多表关联和逐层展开,建议对批次号、SN、工单号建立索引;对高频追溯场景可建立追溯宽表或图结构存储,支持按批次、SN 快速展开上下游。同时保留原始记录,避免只存汇总数据导致无法回溯细节。
6.5 追溯粒度与成本平衡
追溯粒度越细(单件级),数据量和扫码工作量越大。通用做法是:关键件、安全件做到单件级追溯,普通物料做到批次级追溯,按产品风险等级分级设计。
七、常见问题与实践建议
- 追溯断链:多因关键工序未扫码或手工补录,应通过系统强制校验和异常报警解决。
- 批次混用:同一工单混用多批次物料时,必须逐次记录投料批次与数量,不能只记"主要批次"。
- 返修与重工:返修、拆解、重工必须记录,否则追溯链会出现"时间空洞"。
- 数据时效:追溯数据应实时或准实时采集,事后补录会降低可信度。
- 权限与审计:追溯数据涉及质量责任,应记录查询与修改日志,保证可审计。
八、总结
通用 MES 的追溯能力,核心是"一物一码 + 关键节点绑定 + 完整过程记录"。正向追溯以投料绑定和流向关系为依据,回答"问题输入影响了哪些产品与客户";逆向追溯以装配关系和过程记录为依据,回答"问题产品由什么构成、经过哪些环节"。两者共用同一套数据模型,只是查询方向不同。落地时应优先保证数据完整性与标识统一,再根据产品风险分级设计追溯粒度,最终形成可查询、可展开、可审计的追溯体系。