4、批次管理(Lot Management)难点:Lot ID生成策略、批次拆分与合并逻辑、批次状态机设计

批次管理,说白了就是晶圆的“身份证”和“户口本”系统。在半导体MES里,Lot(批次)是贯穿生产全流程的核心对象。我见过不少新入行的工程师,觉得批次管理不就是给个编号嘛,结果上线后各种乱套——ID重复、拆分后找不到爹、状态跳转卡死……今天咱们就把这几个硬骨头啃下来。

4.1 Lot ID生成策略:别小看这串字符

Lot ID不是随便编的。它承载了产品信息、生产日期、工厂代码、甚至工艺版本。我习惯把ID设计成“可读性”和“唯一性”的平衡体。

常见的ID结构:

  • 工厂代码(2位):比如F1、F2,区分不同厂区
  • 产品代码(4-6位):比如A123,对应具体产品型号
  • 生产日期(6位):YYMMDD格式,方便追溯
  • 流水号(4位):当天该产品的第几批
  • 校验位(1位):防止人工录入错误

举个例子:F1-A123-240315-0012-K

这表示:F1工厂、产品A123、2024年3月15日、当天第12批、校验位K。

我在项目中遇到过一个问题:某工厂的ID生成器用了简单的自增序列,结果跨系统同步时出现了重复ID。后来我们改成了“时间戳+机器ID+序列号”的组合,彻底解决了冲突。

我的建议:ID生成最好用数据库序列或Redis原子操作,别用“查最大ID+1”这种笨办法。高并发下容易出幺蛾子。

4.2 批次拆分与合并逻辑:分分合合的艺术

生产过程中,批次拆分和合并是家常便饭。比如:

  • 某批晶圆在光刻工序发现部分缺陷,需要把好的和坏的分开处理
  • 不同批次但相同工艺的晶圆,为了凑满炉管,需要合并成一个批次

拆分逻辑的核心要点:

  1. 父子关系维护:拆分后,原批次成为“父批次”,新批次成为“子批次”。必须记录清楚谁是谁生的。
  2. 数量守恒:父批次数量 = 所有子批次数量之和。这个约束必须由系统强制保证。
  3. 状态继承:子批次默认继承父批次的当前工序和状态,但允许后续独立变更。

合并逻辑的坑:

  • 工艺一致性检查:只有相同产品、相同工艺路线、相同工序的批次才能合并。我曾经见过有人把不同光刻层的批次合并了,结果后面全乱套。
  • 批次历史保留:合并后,原始批次的历史记录不能丢。我习惯用“合并批次”作为新批次,原始批次标记为“已合并”,但保留所有数据。
  • 物料追溯:合并后的批次,其物料来源必须能追溯到每一个原始批次。这是审计合规的基本要求。

避坑指南:我曾经在一个项目里,拆分逻辑没做“数量校验”,结果操作员手抖多拆了10片,系统也没报错。后来查了三天才找到原因。记住:拆分和合并操作,必须做事务性处理——要么全部成功,要么全部回滚。

4.3 批次状态机设计:别让批次“卡死”

批次状态机,就是定义批次在生命周期里能有哪些状态,以及状态之间怎么跳转。设计不好,批次就会“卡死”在某个状态,进退两难。

常见的批次状态:

状态 说明 允许的下一个状态
Created(已创建) 批次刚生成,还没投料 Released, Cancelled
Released(已释放) 批次已投入生产线 InProgress, Held
InProgress(生产中) 批次正在某工序加工 Completed, Held, Scrapped
Held(暂停) 批次因异常被挂起 InProgress, Scrapped
Completed(完成) 批次走完所有工序 (终态)
Scrapped(报废) 批次因质量问题报废 (终态)
Cancelled(取消) 批次在投料前被取消 (终态)

状态机设计原则:

  • 状态跳转必须显式定义:不能允许任意状态跳转。比如从“生产中”直接跳到“完成”可以,但“暂停”直接跳到“完成”就不合理。
  • 状态变更要有记录:每次状态变化,都要记录操作人、时间、原因。这是追溯的基础。
  • 异常状态要可恢复:“暂停”状态必须能回到“生产中”,不能卡死。我见过一个系统,暂停后只能报废,操作员哭都哭不出来。

我的经验:状态机最好用配置表驱动,别硬编码。这样后续增加新状态或调整跳转逻辑,改配置就行,不用动代码。你想想看,半导体工艺更新那么快,状态机要是写死了,后面维护成本高得吓人。

4.4 核心逻辑流程图

下面这张图,概括了批次从创建到结束的完整生命周期,以及拆分合并的交互关系。我习惯用这种图跟业务方对齐需求,一目了然。

批次生命周期与状态机流程图 Created(已创建) Released(已释放) InProgress(生产中) Held(暂停) Completed(完成) Scrapped(报废) Cancelled(取消) 释放 取消 开始生产 异常挂起 完成 异常 报废 恢复 报废 拆分 / 合并操作 拆分:父批次 → 子批次 合并:多批次 → 新批次 需维护父子关系 数量守恒 + 状态继承 拆分/合并 图例说明 初始状态 可操作状态 生产状态 异常状态 终态(正常) 终态(异常/取消) 拆分/合并操作区域

嗯,这张图基本把批次状态机的骨架画出来了。你仔细看,从Created到Cancelled是一条“后悔药”路径,从InProgress到Held再到恢复,是一条“容错”路径。拆分合并操作在InProgress状态下进行,不影响主流程。

注意:实际项目中,状态机可能更复杂。比如有些工厂会加“QualityCheck(质检中)”、“Rework(返工)”等状态。但核心逻辑不变——状态跳转要可控,数据要可追溯。

好了,批次管理的这几个难点,说白了就是:ID别重复、拆分合并别丢数据、状态机别卡死。做到这三点,你的MES批次模块就稳了。


公众号:蓝海资料掘金营,微信deep3321