PLCQualificationJudgmentActivity - PLC 合格判断
概述
| 属性 | 值 |
|---|---|
| 节点名称 | PLC合格判断 |
| 节点描述 | PLC合格判断步骤 |
| 节点类型 | 业务节点 |
| 命名空间 | CMS.Plugin.MesSuite.Activitys |
| 程序 集 | CMS.Plugin.MesSuite.Activitys |
| 分类 | 工序步骤 |
| 排序 | 26 |
| 发布 | 是 |
| 基类 | QualificationJudgmentActivity |
功能说明
PLCQualificationJudgmentActivity 是 PLC 合格判断节点,用于从 PLC 采集的参数中读取合格信号,判断产品是否合格。
该节点依赖 PLC 返回的合格信号进行判定,适用于由设备端(PLC)完成质量检测并返回结果的场景。
配置属性
此节点无额外配置属性,继承基类的通用属性。
业务逻辑
执行流程
开始
│
▼
调用 PLCJudgmentAsync 方法
│
├─► 获取参数采集数据
│
├─► 读取合格信号变量
│ │
│ └─► 变量名:OutboundQualityVariable 或默认值
│
├─► 解析合格信号值
│ │
│ ├─► 1 或 true → 合格
│ ├─► 2 → 不合格
│ └─► 0 或其他 → 未知
│
├─► 如果不合格,匹配不良原因
│
▼
设置流程数据项
│
├─► QualityResultValue = 结果值
│
└─► QualityResultReason = 不合格原因
│
▼
结束
合格信号解析
| 信号值 | 解析结果 | 说明 |
|---|---|---|
| 1 | 合格 | 产品检测合格 |
| true | 合格 | 布尔值 true 转换为合格 |
| 2 | 不合格 | 产品检测不合格 |
| 0 | 未知 | 无法确定结果 |
| 其他 | 未知 | 无法解析的值 |
不良原因匹配
当判定为不合格时,系统会尝试从工艺模型的不良原因列表中匹配具体原因:
- 遍历工艺模型中定义的不良原因
- 读取对应变量的值
- 与判定值进行比较
- 匹配成功则记录该不良原因
流程数据项
输入数据项
| 数据项 | 类型 | 说明 |
|---|---|---|
| ApplicationData | ProcessModel | 工艺模型,包含不良原因定义 |
| ParameterCollectData | IReadOnlyDictionary<string, IVariableValue> | 参数采集数据 |
| OutboundQualityVariable | string | 合格信号变量名(可选) |
输出数据项
| 数据项 | 类型 | 说明 |
|---|---|---|
| QualityResultValue | int | 质量结果值(1=合格,2=不合格,0=未知) |
| QualityResultReason | string | 不合格原因 |
依赖服务
| 服务接口 | 说明 |
|---|---|
| IBusinessTextProvider | 业务文本提供者,获取"未知原因"等文本 |
使用示例
基本配置
<PLCQualificationJudgmentActivity Name="PLC合格判断" />
指定合格信号变量
通过流程数据项指定合格信号变量名:
<VariableWriteActivity Name="设置合格信号变量">
<Variable>OutboundQualityVariable</Variable>
<Value>QualityResult</Value>
</VariableWriteActivity>
<PLCQualificationJudgmentActivity Name="PLC合格判断" />
典型流程配置
参数采集 → PLC合格判断 → 条件分支(合格/不合格)
<ParameterCollectActivity Name="参数采集">
<!-- 采集 PLC 合格信号 -->
</ParameterCollectActivity>
<PLCQualificationJudgmentActivity Name="PLC合格判断" />
<ConditionActivity Name="质量判断">
<Condition>Flow.DataItems["QualityResultValue"] == 1</Condition>
<TrueBranch>合格处理</TrueBranch>
<FalseBranch>不合格处理</FalseBranch>
</ConditionActivity>
工艺模型配置
不良原因配置
在工艺模型中配置不良原因列表:
{
"UnqualifiedReasons": [
{
"Name": "尺寸超差",
"Variable": "NG_Reason_1",
"JudgmentValue": "1"
},
{
"Name": "外观缺陷",
"Variable": "NG_Reason_2",
"JudgmentValue": "1"
},
{
"Name": "功能异常",
"Variable": "NG_Reason_3",
"JudgmentValue": "1"
}
]
}
与本机判断的区别
| 特性 | PLC 合格判断 | 本机合格判断 |
|---|---|---|
| 判断主体 | PLC/设备 | MES 系统 |
| 判断依据 | 合格信号变量 | 配方参数上下限 |
| 适用场景 | 设备端检测 | 系统端校验 |
| 配置复杂度 | 简单 | 需要配方参数 |
相关节点
- QualificationJudgmentActivity - 合格判断基类
- LocalQualificationJudgmentActivity - 本机合格判断
- CompositeQualificationJudgmentActivity - 综合合格判断
- ParameterCollectActivity - 参数采集节点
注意事项
- 参数采集节点必须在本节点之前执行
- 合格信号变量必须在采集数据中存在
- 不良原因匹配需要在工艺模型中预先配置
- 如果无法解析合格信号,结果为"未知"