跳到主要内容
版本:Next

MaterialDetectionActivity - 物料检测

概述

MaterialDetectionActivity 是一个 MES 专用的物料检测节点,用于在生产过程中验证物料条码的有效性。该节点支持物料条码规则检测、物料状态检测、物料漏工序检测等功能,并可自动将物料条码写入指定变量。

基本信息

属性
显示名称物料检测
类名MaterialDetectionActivity
命名空间CMS.Plugin.MesSuite.Activitys
基类ProcessBusinessActivity
分类工序步骤
排序10
发布

配置说明

配置属性

属性名显示名称类型默认值说明
WriteBrcodeVariable写入物料参数booltrue是否将物料条码写入配置的变量
WriteRetryCount写入重试次数int3写入变量失败时的重试次数
WriteRetryDelay写入重试延时int500写入重试间隔(毫秒)

工艺配置

配置项说明
MaterialDetection2物料检测功能开关
MaterielStateDetection物料状态检测触发时机
MaterielMissingProcessDetection物料漏工序检测触发时机
MaterialParameters物料参数配置列表

输入变量

变量名常量类型说明
MaterialDetection_MaterialVariableFlowItemCollection.MaterialDetectionMaterialVariableKeystring待检测的物料条码

输出变量

变量名常量类型说明
MaterialDetection_ResultFlowItemCollection.MaterialDetectionResultKeyint检测结果:0=未执行,1=成功,2=失败,3=禁用
MaterialDetection_DescriptionFlowItemCollection.MaterialDetectionDescriptionKeystring检测结果说明
MaterialDetection_MaterialDetailIdFlowItemCollection.MaterialDetectionMaterialDetailIdKeystring物料明细 ID
MaterialDetection_MaterialNameFlowItemCollection.MaterialDetectionMaterialNameKeystring物料名称
MaterialDetection_MaterialParameterFlowItemCollection.MaterialDetectionMaterialParameterKeystring物料参数键
MaterialDetection_ProductModelFlowItemCollection.MaterialDetectionProductModelKeyAssociationProductModel产品型号

业务逻辑

执行流程

┌─────────────────────────────────────────────────────────────┐
│ MaterialDetectionActivity │
├─────────────────────────────────────────────────────────────┤
│ EnterAsync - 初始化阶段 │
│ ├─ 设置检测结果 = 0 │
│ ├─ 清空检测说明 │
│ ├─ 清空物料名称 │
│ ├─ 清空物料参数 │
│ └─ 清空产品型号 │
├─────────────────────────────────────────────────────────────┤
│ ProcessAsync - 处理阶段 │
│ ├─ 检查功能是否启用 │
│ │ └─ 未启用 → 结果=3,返回禁用说明 │
│ ├─ 验证物料条码 │
│ │ └─ 为空 → 结果=2,返回错误 │
│ ├─ 获取产品型号 │
│ │ └─ 未找到 → 结果=2,返回错误 │
│ ├─ 物料条码规则检测 │
│ │ └─ 遍历 MaterialParameters 进行验证 │
│ ├─ 物料状态检测(如果启用) │
│ ├─ 物料漏工序检测(如果启用) │
│ ├─ 写入物料变量(如果配置) │
│ └─ 设置检测结果 │
└─────────────────────────────────────────────────────────────┘

检测结果说明

结果值说明
0未执行(初始状态)
1检测成功
2检测失败
3功能禁用

物料检测流程

  1. 条码规则检测

    • 遍历工艺配置的物料参数列表
    • 调用 IMaterialProvider.VerificationAsync 验证条码
    • 匹配成功则记录物料信息
  2. 物料状态检测(可选)

    • MaterielStateDetection = OnMaterialVerification 时执行
    • 检测物料在当前工序的状态
  3. 物料漏工序检测(可选)

    • MaterielMissingProcessDetection = OnMaterialVerification 时执行
    • 检测物料是否完成前置工序

产品型号获取

┌─────────────────────────────────────────────────────────────┐
│ 获取产品型号 │
├─────────────────────────────────────────────────────────────┤
│ 1. 从配方应用获取 │
│ └─ 有配方信息 → 返回产品 │
├─────────────────────────────────────────────────────────────┤
│ 2. 从工单获取 │
│ └─ 查询当前工序段的生产工单 → 返回产品 │
├─────────────────────────────────────────────────────────────┤
│ 3. 从点检任务获取 │
│ └─ 存在点检任务 → 返回点检任务中的产品 │
└─────────────────────────────────────────────────────────────┘

使用示例

基本流程配置

┌──────────────────┐     ┌──────────────────┐     ┌──────────────────┐
│ 扫描物料条码 │────▶│MaterialDetection │────▶│ 后续处理节点 │
│ │ │ 物料检测 │ │ │
└──────────────────┘ └──────────────────┘ └──────────────────┘

设置物料条码

{
"Activities": [
{
"Name": "读取物料条码",
"Type": "VariableReadActivity",
"VariableName": "MaterialDetection_MaterialVariable"
},
{
"Name": "物料检测",
"Type": "MaterialDetectionActivity",
"WriteBrcodeVariable": true,
"WriteRetryCount": 3,
"WriteRetryDelay": 500
}
]
}

检查检测结果

{
"Activities": [
{
"Name": "物料检测",
"Type": "MaterialDetectionActivity"
},
{
"Name": "检查结果",
"Type": "ConditionActivity",
"Condition": "MaterialDetection_Result == 1"
}
]
}

与入站流程配合

┌──────────────────┐
│InboundInitialize │
│ 进站初始化 │
└────────┬─────────┘


┌──────────────────┐
│DuplicateCodeDetection│
│ 重码校验 │
└────────┬─────────┘


┌──────────────────┐
│MaterialDetection │ ← 物料检测
│ 物料检测 │
└────────┬─────────┘


┌──────────────────┐
│ 后续工序处理 │
└──────────────────┘

错误处理

错误场景结果值错误信息
功能未启用3物料检测禁用
物料条码为空2物料条码:{code} 为空
未找到产品型号2未找到产品型号
条码规则不匹配2具体验证错误信息
物料状态检测失败2具体检测错误信息
物料漏工序检测失败2具体检测错误信息

依赖服务

服务接口说明
IMaterialProvider物料服务,用于验证物料条码
IOrderProvider工单服务,获取当前工单
IProductProvider产品服务,获取产品信息
IProductTraceChecker产品追溯检查服务,执行状态和漏工序检测
IFlowVariableService流程变量服务,写入物料变量

注意事项

  1. 功能启用:需要在工艺配置中启用物料检测功能
  2. 物料参数配置:需要在工艺中配置物料参数列表
  3. 产品型号必需:物料检测需要产品型号信息
  4. 变量写入:启用 WriteBrcodeVariable 时会自动写入物料条码
  5. 重试机制:变量写入支持重试,可配置重试次数和延时
  6. 检测顺序:先进行条码规则检测,再进行状态和漏工序检测

相关节点


最后更新时间: 2025-11-28