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 批次拆分与合并逻辑:分分合合的艺术
生产过程中,批次拆分和合并是家常便饭。比如:
- 某批晶圆在光刻工序发现部分缺陷,需要把好的和坏的分开处理
- 不同批次但相同工艺的晶圆,为了凑满炉管,需要合并成一个批次
拆分逻辑的核心要点:
- 父子关系维护:拆分后,原批次成为“父批次”,新批次成为“子批次”。必须记录清楚谁是谁生的。
- 数量守恒:父批次数量 = 所有子批次数量之和。这个约束必须由系统强制保证。
- 状态继承:子批次默认继承父批次的当前工序和状态,但允许后续独立变更。
合并逻辑的坑:
- 工艺一致性检查:只有相同产品、相同工艺路线、相同工序的批次才能合并。我曾经见过有人把不同光刻层的批次合并了,结果后面全乱套。
- 批次历史保留:合并后,原始批次的历史记录不能丢。我习惯用“合并批次”作为新批次,原始批次标记为“已合并”,但保留所有数据。
- 物料追溯:合并后的批次,其物料来源必须能追溯到每一个原始批次。这是审计合规的基本要求。
避坑指南:我曾经在一个项目里,拆分逻辑没做“数量校验”,结果操作员手抖多拆了10片,系统也没报错。后来查了三天才找到原因。记住:拆分和合并操作,必须做事务性处理——要么全部成功,要么全部回滚。
4.3 批次状态机设计:别让批次“卡死”
批次状态机,就是定义批次在生命周期里能有哪些状态,以及状态之间怎么跳转。设计不好,批次就会“卡死”在某个状态,进退两难。
常见的批次状态:
| 状态 | 说明 | 允许的下一个状态 |
|---|---|---|
| Created(已创建) | 批次刚生成,还没投料 | Released, Cancelled |
| Released(已释放) | 批次已投入生产线 | InProgress, Held |
| InProgress(生产中) | 批次正在某工序加工 | Completed, Held, Scrapped |
| Held(暂停) | 批次因异常被挂起 | InProgress, Scrapped |
| Completed(完成) | 批次走完所有工序 | (终态) |
| Scrapped(报废) | 批次因质量问题报废 | (终态) |
| Cancelled(取消) | 批次在投料前被取消 | (终态) |
状态机设计原则:
- 状态跳转必须显式定义:不能允许任意状态跳转。比如从“生产中”直接跳到“完成”可以,但“暂停”直接跳到“完成”就不合理。
- 状态变更要有记录:每次状态变化,都要记录操作人、时间、原因。这是追溯的基础。
- 异常状态要可恢复:“暂停”状态必须能回到“生产中”,不能卡死。我见过一个系统,暂停后只能报废,操作员哭都哭不出来。
我的经验:状态机最好用配置表驱动,别硬编码。这样后续增加新状态或调整跳转逻辑,改配置就行,不用动代码。你想想看,半导体工艺更新那么快,状态机要是写死了,后面维护成本高得吓人。
4.4 核心逻辑流程图
下面这张图,概括了批次从创建到结束的完整生命周期,以及拆分合并的交互关系。我习惯用这种图跟业务方对齐需求,一目了然。
嗯,这张图基本把批次状态机的骨架画出来了。你仔细看,从Created到Cancelled是一条“后悔药”路径,从InProgress到Held再到恢复,是一条“容错”路径。拆分合并操作在InProgress状态下进行,不影响主流程。
注意:实际项目中,状态机可能更复杂。比如有些工厂会加“QualityCheck(质检中)”、“Rework(返工)”等状态。但核心逻辑不变——状态跳转要可控,数据要可追溯。
好了,批次管理的这几个难点,说白了就是:ID别重复、拆分合并别丢数据、状态机别卡死。做到这三点,你的MES批次模块就稳了。
公众号:蓝海资料掘金营,微信deep3321