MES Hold 信息报表开发的相关概念,预 Hold、在制 Hold、解 Hold

文章目录

    这周收到一个半导体产线 MES 系统的二次开发需求,即,增加一个 Hold 信息报表,展示预 Hold、在制 Hold、解 Hold 信息,信息展示包括时间、人、Hold 原因、解 Hold 解释、Hold 状态、类型等。

    我大概理解是什么是 Hold 状态,但是这个预 Hold 又是什么呢?我查了一下。

    Hold 状态

    在 MES(制造执行系统)里,Hold 通常翻译为 “冻结”、“锁定”或“留置”,我们这里叫“在制 Hold”。可以理解为:给一个批次或单个产品贴上“暂停流转”的标签。即,把产品挡在当前工序,阻止其继续生产、检验或发货。核心目的:在不确定产品状态时,防止不良品继续生产、减少损失,并争取决策时间。

    举个例子,在我们的系统中,当某个工序站点的良率低于设定的阈值 98% 时,系统会自动生成一条 Event 事件,类型为 Hold,原因类型为 “出站良率低于设定值”。这个时候,这个批次就进入了 Hold 状态,无法继续流转到下一个工序站点,直到这个 Hold 状态被解除。

    Hold 的典型应用场景

    • 质量异常:过程参数超差、SPC 报警、QC 抽样发现不良趋势。
    • 设备问题:设备故障可能已影响该批次产品质量。
    • 材料疑虑:怀疑原料用错或有效成分过期。
    • 等待检验:生产完成但检验结果未出(先 Hold 住,合格再放行)。
    • 人为触发的待判定:操作员或主管发现螺丝松动、外观异常等,主动冻结。
    • 系统规则触发:系统自动判断某物料已过期,直接置为 Hold。

    预 Hold 状态

    即,Pre Hold, 翻译为预冻结 / 预留置。在数据库中的状态字段可能是 Hold_P 之类的缩写。是在正式 Hold 之前的一种过渡性、预警性状态。它的核心作用是:在最终判定质量异常之前,先把物料“软锁定”起来,避免它继续流转,同时等待进一步检验或评审。可以把 Pre-Hold 理解为一种 “软冻结”(Soft Lock),而正式的 Hold 是 “硬冻结”(Hard Lock)。

    我疑惑的点是,在我们的 MES 系统中,近 2000 个 Hold 状态,但是只有 2 个 Pre Hold 状态。而且看起来是第一次部署验收系统时的测试数据。感觉是使用人员对 Pre Hold 的概念没有理解正确。上面提到的系统自动将良率低于设定值的批次置为 Hold 状态,从概念上看应该是先置为 Pre Hold 状态,等待人工评审后再置为正式的 Hold 状态。我昨天特意问了一下产线人员,他们说直接设置为 Hold 状态,没有问题。我这里存疑。

    这里有个对比表格,非常直观:

    MES 系统 Pre Hold 与 Hold 状态的区别

    实际应用示例,场景:汽车零部件压铸工序

    • 设备每生产 10 个产品,自动抽检 1 个测量尺寸。
    • 测到某个尺寸接近上公差(99% 规格限)→ MES 自动对该批次(如最近生产的 50 个)打 Pre-Hold。
    • 同时在车间大屏和质检员手机上推送消息:“#2310 批次尺寸偏上限,请复测”。
    • 质检员 10 分钟内复测 5 个产品,数据均合格 → 一键释放 Pre-Hold,批次继续流转。
    • 如果复测发现 2 个超差 → 点击“转为 Hold”,QA 启动不合格品处理流程。
    • 没有 Pre-Hold 的情况:系统直接打正式 Hold → 必须走评审会议、填写处置单,浪费时间。有了 Pre-Hold,大部分虚惊一场的情况可以快速恢复。

    解 Hold

    即,Release Hold, 放行。QA 或主管对 Hold 批次做评审,有几种处理方式:

    • Release(放行):判定合格,恢复流转。
    • Scrap(报废):判定报废,冻结后转入报废流程。
    • Rework(返工):需进行返工,先生成返工单,再解除 Hold。

    对应的批次事件状态,即 Release 状态。

    一些奇怪的流转记录

    因为要实现这个 Hold 信息报表的前端展示,我担心数据并非跟我想象的一致,即,一条 Hold / Pre Hold 对应一条 Release 记录。如果不是一一对应的关系,我就无法通过 table 的一行来同时展示 Hold 和 Release 的信息了。所以,我特意查询了一下数据库,发现有一些奇怪的流转记录:

    • 某个 lot 批次站点,出现了 3 轮 Hold / Release 的反复记录。即,Hold → Release → Hold → Release → Hold → Release。
    • 另一个 lot 批次站点,出现了 Hold → Hold → Release。看起来是第一条 Hold 是系统自动标记的,然后操作员在解除 Hold 时,误操作又点击了 Hold 按钮,导致又多了一条 Hold 记录。
    • 还有的时两轮 Hold / Release 反复记录
    • 系统 Hold 时,只自动标注了原因类型,例如良率低于设定值,但没有标注事件说明。即,具体不良的原因。而是在 Release 的时候,才在事件说明里标注了具体的原因,例如,来料不良。可以理解为第一次 Hold 为系统自动判断,没有标记原因;而 Release 时是人工评审的结果,所以才标注了具体的原因。

    总体看上去,Hold 相关的功能,目前的使用人员还没有一套规范,导致数据看起来很奇怪。估计这也是找我开发这个 Hold 信息报表的原因吧。

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式