LMES 进站加工逻辑详解
1. 概述
本文档旨在详细阐述LMES系统在处理正常件、点检件与返修件时的核心业务逻辑与技术实现。所有产品在进入任一工站前,都必须经过DetermineProcessActivity
(加工类型判断活动)进行身份判定与准入校验,该活动是所有进站逻辑的统一入口。
系统的核心设计思想是建立一个清晰、有序的优先级仲裁机制,确保在复杂的生产场景下,产品能够被快速、准确地引导至正确的处理路径。
2. 加工判定优先级
与旧版逻辑不同,LMES 采用了新的三级优先级判定模型。系统会严格按照以下顺序对进站产品进行检查,一旦在高优先级检查中命中,则直接进入对应流程,不再执行后续优先级的检查。
-
最高优先级:点检件 (Inspection Part)
- 判定依据:系统首先调用
HasInspectionAsync
检查产品是否存在有效的“点检任务”。 - 核心逻辑:如果存在,产品被立即识别为“点检件”,其“返修”状态会被忽略。系统将跳过返修检查,直接进入针对点检件的特定校验流程。
- 判定依据:系统首先调用
-
中等优先级:返修件(Repair Part)
- 判定依据:若产品非点检件,系统会调用
ProductQualityCheckAsync
,通过IProductQualityChecker
服务检查产品是否存在质量判定记录(如“设备返修”、“报废”等)。 - 核心逻辑:如果存在,产品被识别为“返修件”或“特殊状态品”,并根据其具体的质量状态(在途、报废、到达返修工位等)执行放行、拦截或返修操作。
- 判定依据:若产品非点检件,系统会调用
-
普通优先级:正常件 (Normal Part)
- 判定依据:若产品既不是点检件,也不是返修或特殊状态品。
- 核心逻辑:产品被视为“正常件”,必须通过一系列严格的、多层级的资格校验,全部通过后方可进站进行标准化生产。
3. 核心处理流程详解
3.1 点检件处理流程 (Inspection Part)
-
识别与触发:
DetermineProcessActivity
(加工类型判断活动)首先检查hasInspectionMark
标记。若为true
,则产品被确认为点检件。 -
进站校验逻辑 (****
ProductFormulaCheckAsync
) : 点检件虽然优先级最高,但仍需经过必要的验证:- 产品型号校验:与正常件逻辑类似,会检查进站产品型号与点检任务或当前工位上下文的匹配性。
- 工艺路线校验:系统会调用
IProductTraceChecker.CanEnterStationAsync
进行校验,但传入的formulaCheck
参数为false
。这意味着系统不会检查配方相关配置,但仍会执行如重码和漏工序等基础的工艺路线验证,以确保点检操作的合规性。
-
出站逻辑 : 点检任务完成后的逻辑取 决于其点检判定结果。
3.2 返修件处理流程 (Repair Part)
-
识别与触发: 当产品非点检件时,
ProductQualityCheckAsync
活动被触发,它会遍历所有IProductQualityChecker
实现,并调用CanEnterStationAsync
方法。若任一检查器返回hasRepairMark = true
,则产品被确认为返修件或特殊状态品。 -
进站校验逻辑: 此类产品的准入逻辑完全由
CanEnterStationAsync
的返回值和产品的具体质量状态决定,主要分为以下四种场景:-
场景A:允许进站 (返修通道)
- 条件:产品状态为“设备返修”,且
canEnterStation
返回true
。 - 描述:通常意味着产品已到达其质量记录中指定的返修工站。系统会为其开辟“绿色通道”,豁免所有常规的防错校验(如重码、漏工序),允许产品进站执行返修作业。
- 条件:产品状态为“设备返修”,且
-
场景B:在途放行 (Bypass通道)
- 条件:产品状态为“设备返修”,但
canEnterStation
返回false
。 - 描述:产品是返修件,但当前工站并非其指定的返修目的地。系统会向设备下发“Bypass (放行)”指令,让产品安全通过,继续流向目标返修工站。
- 条件:产品状态为“设备返修”,但
-
场景C:NG品流出 (Bypass至缓冲区)
- 条件:产品状态为“NG品流出”。
- 描述:这是一个临时挂起状态。系统不会拦截,而是会向所有非指定缓冲区的工站下发“Bypass (放行)”指令,让产品随线流动,最终在指定的不良品处理站被排出或流入缓冲区,等待品保人员的最终判定。
-
场景D:拦截 (拦截通道)
- 条件:产品状态为“产品报废”。
- 描述:系统会下发硬停止指令,并触发报警,强制要求将产品移出产线。报废品会被永久禁止进入任何生产工站。
-
-
出站逻辑: 返修完成后,系统会清除产品的“返修”标记,使其恢复为“正常件”状态,以便在后续工序中接受标准的质量防错校验。
3.3 正常件处理流程 (Normal Part)
-
识别与触发: 当产品既无点检标记,也无返修或特殊状态标记时,被确认为正常件,进入
ProductFormulaCheckAsync
方法进行处理。 -
核心逻辑: 正常件的校验分为两个主要阶段:身份确定与防错 和 历史合规性验证。 第一阶段:身份确定与防错 此阶段的核心是确定产品的“权威产品型号”,并防止型号混淆。
-
检查产品历史记录:系统首先调用
GetProductionAsync(serialNumber)
检查产品是否已加工过。 -
场景A:产品已加工过 (有历史记录)
- 身份确定:产品的身份(产品型号、工单等)直接从其历史记录中获取。
- 防错校验:产品型号不匹配拦截:系统会立即将产品的已知型号与其当前所在工站的上下文(由当前工段下发的工单
segmentOrder
或工位应用的配方formulaModel
决定)进行比较。如果两者不匹配,说明产线配置已变更,而旧产品被错误地送入,系统将以“产品型号不匹配”为由立即拦截,这是防止混料的核心防错机制。
-
场景B:产品未加工过 (无历史记录)
-
身份确定:对于新产品,系统必须依赖当前工站的上下文来赋予其身份。此时,“配方下发方式”的配置变得至关重要:
- 方式0 (仅工单可操作下发) :系统必须能获取到当前工段下发的工单 (
segmentOrder
),并以此确定产品型号。若无工单,则禁止进站。 - 方式1 (仅工艺配方可操作下发) :系统依赖当前工位静态应用的配方 (
formulaModel
) 来确定产品型号。 - 方式2 (工序识别产品时下发) :此方式理论上适用于已有记录的产品,若一个新产品在此模式下出现,通常意味着上游工序存在异常。
- 方式0 (仅工单可操作下发) :系统必须能获取到当前工段下发的工单 (
-
第二阶段:历史合规性验证 在产品的权威身份被确定且防错校验通过后,系统会调用
IProductTraceChecker.CanEnterStationAsync
进行最终的历史合规性验证:- 产品状态校验:追溯上游关键工序的加工结果,若前置结果为NG,则禁止进站。
- 重码校验:检查该产品是否已在当前工站有成功的加工记录,若有则判定为“重码”,禁止进站。
- 漏工序校验:检查产品的完整 加工历史,确保其严格遵循了预设的工艺路线,未发生“跳站”,否则判定为“漏工序”,禁止进站。
-
-
出站逻辑: 正常加工完成后,产品按标准工艺流程图流转至下一工序。
4. 进站逻辑决策流程图
5. 处理类型对比总结
处理类型 | 识别方式 | 核心检查点 | 产线行为 | 关键说明 |
---|---|---|---|---|
点检件 | hasInspectionMark=true | 配方检查被豁免 | 按需配置防错,不满足则禁止进站 | 最高优先级 |
返修件 (在指定工序) | hasRepairMark=true | canEnterStation 返回true | ✅ 允许进站 (豁免常规防错) | 系统开通返修"绿色通道" |
返修件 (在途) | hasRepairMark=true | canEnterStation 返回false | ➡️ Bypass (在途放行) | 安全路过中间工站至指定返修点 |
NG品流出 | hasRepairMark=true NG品流出 状态 | 无 | ➡️ Bypass (放行至缓冲区) | 临时挂起状态,待最终判定 |
报废品 | hasRepairMark=true 报废 状态 | 无 | ❌ 永久禁止进入任何工站 | 产品生命周期终结 |
正常件 | 无点检和返修标记 | 身份确定-> 历史合规性验证 | 严格执行所有防错,不满足则禁止进站 | 保证生产质量的标准防错路径 |