跳到主要内容
版本:Next

MaterialVerificationActivity - 物料校验(并行)

概述

MaterialVerificationActivity 是一个 MES 专用的物料并行校验节点,用于实时监听物料校验信号或条码变量的变化,并自动执行物料校验。与 MaterialDetectionActivity 不同,该节点支持多物料并行校验,通过订阅变量变化事件实现实时响应。

基本信息

属性
显示名称物料检测
类名MaterialVerificationActivity
命名空间CMS.Plugin.MesSuite.Activitys
基类ProcessBusinessActivity
分类工序步骤
排序10
发布
退出模式Manual(手动退出)

配置说明

配置属性

属性名显示名称类型默认值说明
SerialNumberVariableName产品码变量string"Inbound_SerialNumberVariable"产品码变量名
TriggerType校验触发类型MaterialDetectionTriggerTypeVerificationSignal触发校验的方式
VerificationSuccessWriteValue校验成功下发值int1校验成功时写入的值
VerificationFailWriteValue校验失败下发值int2校验失败时写入的值
IsRestVerificationResult复位校验结果booltrue触发信号复位时是否复位结果
VerificationRestWriteValue复位结果下发值int0复位时写入的值
ReadRetryCount读取重试次数int10读取变量失败时的重试次数
ReadRetryDelay读取重试延时int500读取重试间隔(毫秒)
WriteRetryCount写入重试次数int10写入变量失败时的重试次数
WriteRetryDelay写入重试延时int500写入重试间隔(毫秒)
IsDeliverResults下发结果booltrue校验完成后是否下发结果

触发类型

枚举值说明
VerificationSignal监听校验信号变量变化触发
BarcodeVariable监听条码变量变化触发

工艺配置

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

物料检测配置(MaterialDetectionVariable)

字段说明
Name物料名称
Key物料参数键
VerificationSignal校验信号变量
BarcodeVariable条码变量
VerificationResultSignal校验结果信号变量
BindMaterialVariable绑定物料变量
ExceptionVariable异常描述变量

业务逻辑

执行流程

┌─────────────────────────────────────────────────────────────┐
│ MaterialVerificationActivity │
├─────────────────────────────────────────────────────────────┤
│ EnterAsync - 初始化阶段 │
│ ├─ 检查工位是否启用 │
│ ├─ 检查功能是否启用 │
│ ├─ 根据触发类型收集监听变量 │
│ ├─ 创建变量监听通道 │
│ └─ 注册变量变化事件处理 │
├─────────────────────────────────────────────────────────────┤
│ OnTagValueChanged - 变量变化处理 │
│ ├─ 判断变化的变量是否为监听目标 │
│ ├─ 触发信号 = 1 → 执行校验 │
│ ├─ 触发信号 = 0 → 执行复位(如果启用) │
│ └─ 并行处理多个物料的校验 │
├─────────────────────────────────────────────────────────────┤
│ VerificationAsync - 校验处理 │
│ ├─ 读取物料条码 │
│ ├─ 获取产品型号 │
│ ├─ 执行条码规则检测 │
│ ├─ 执行物料状态检测(如果启用) │
│ ├─ 执行物料漏工序检测(如果启用) │
│ └─ 下发校验结果 │
└─────────────────────────────────────────────────────────────┘

变量监听机制

┌─────────────────────────────────────────────────────────────┐
│ 变量监听流程 │
├─────────────────────────────────────────────────────────────┤
│ 1. 创建监听通道 │
│ └─ FlowVariableChannelListener │
├─────────────────────────────────────────────────────────────┤
│ 2. 订阅变量变化事件 │
│ └─ TagChanged 事件 │
├─────────────────────────────────────────────────────────────┤
│ 3. 变量变化时触发回调 │
│ ├─ 获取变化的变量名和新旧值 │
│ ├─ 匹配对应的物料配置 │
│ └─ 执行校验或复位 │
├─────────────────────────────────────────────────────────────┤
│ 4. 流程取消时取消订阅 │
│ └─ UnSubscribe() │
└─────────────────────────────────────────────────────────────┘

校验结果输出

每个物料校验完成后,会在流程上下文中设置以下变量:

变量名模式类型说明
{物料名}_Verification_ErrorCodeint错误代码
{物料名}_VerificationMaterialDetailIdGuid?物料明细 ID
{物料名}_MaterialCodestring物料条码
{物料名}_VerificationResultSignal_Valuebool校验结果
{物料名}_BindMaterialVariable_Valuestring绑定的物料条码
{物料名}_ExceptionVariable_Valuestring异常描述
{物料名}_MaterialVerification_Counterint校验计数器
{物料名}_MaterialVerification_ResultDataItemCollection校验结果集合

使用示例

基本配置

{
"Name": "物料并行校验",
"Type": "MaterialVerificationActivity",
"TriggerType": "VerificationSignal",
"VerificationSuccessWriteValue": 1,
"VerificationFailWriteValue": 2,
"IsRestVerificationResult": true,
"VerificationRestWriteValue": 0,
"IsDeliverResults": true
}

使用条码变量触发

{
"Name": "物料并行校验",
"Type": "MaterialVerificationActivity",
"TriggerType": "BarcodeVariable",
"ReadRetryCount": 5,
"ReadRetryDelay": 200
}

典型流程

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


┌──────────────────┐
│MaterialVerificationActivity│ ← 持续监听物料校验
│ 物料并行校验 │
│ (手动退出模式) │
└────────┬─────────┘
│ 物料校验完成

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

与 MaterialDetectionActivity 的区别

特性MaterialDetectionActivityMaterialVerificationActivity
执行模式串行,单次执行并行,持续监听
触发方式流程执行时触发变量变化时触发
退出模式自动退出手动退出
多物料支持逐个检测并行检测
适用场景简单物料检测复杂多物料并行检测

依赖服务

服务接口说明
IVariableDataCache变量数据缓存服务
IFlowVariableService流程变量服务
IMaterialProvider物料服务
IOrderProvider工单服务
IProductProvider产品服务
IProductTraceChecker产品追溯检查服务
ILmesMetrics指标服务

注意事项

  1. 功能启用:需要在工艺配置中启用物料检测功能
  2. 工位启用:工位必须处于启用状态
  3. 手动退出:该节点为手动退出模式,需要外部控制流程退出
  4. 并行处理:多个物料的校验是并行执行的
  5. 取消机制:新的校验请求会取消同一物料的上一次校验
  6. 资源释放:流程取消时会自动取消订阅
  7. 重试机制:读写变量都支持重试配置

相关节点


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