SOPControlActivity - SOP 控制
概述
| 属性 | 值 |
|---|---|
| 节点名称 | SOP控制 |
| 节点描述 | SOP控制步骤 |
| 节点类型 | 业务节点 |
| 命名空间 | CMS.Plugin.MesSuite.Activitys |
| 程序集 | CMS.Plugin.MesSuite.Activitys |
| 分类 | 工序步骤 |
| 排序 | 9 |
| 发布 | 是 |
| 基类 | ProcessBusinessActivity |
功能说明
SOPControlActivity 是 SOP 控制节点,用于控制标准作业程序(SOP)的执行流程。该节点支持多种控制类型,包括合格判断和事件发布等功能。
配置属性
| 属性名 | 显示名称 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
| ControlType | 控制类型 | SopControlType | 否 | - | SOP 控制类型 |
| EventSynchronous | 事件同步 | bool | 否 | false | 是否同步发布事件 |
控制类型
| 类型 | 说明 |
|---|---|
| QualifiedJudgment | 合格判断 - 根据配置的判断类型进行质量判定 |
| 其他类型 | 发布 SOP 控制事件 |
业务逻辑
执行流程
开始
│
▼
判断控制类型
│
├─► QualifiedJudgment(合格判断)
│ │
│ ├─► 获取 PLC 合格结果
│ ├─► 获取本机合格结果
│ │
│ └─► 根据判断类型计算最终结果
│ │
│ ├─► PLC 类型 → 使用 PLC 结果
│ ├─► Local 类型 → 使用本机结果
│ └─► Composite 类型 → 两者都合格才合格
│
└─► 其他类型
│
└─► 发布 SOP 控制事件
│
├─► 同步模式 → 等待事件处理完成
│
└─► 异步模式 → 立即返回
│
▼
结束
合格判断类型
| 判断类型 | 说明 |
|---|---|
| PLC | 使用 PLC 返回的合格信号 |
| Local | 使用本机计算的合格结果 |
| Composite | 综合判断,PLC 和本机都合格才合格 |
流程数据项
输入数据项
| 数据项 | 类型 | 说明 |
|---|---|---|
| ApplicationData | ProcessModel | 工艺模型(包含 QualifiedJudgmentType) |
| OutboundQualityValue | object | PLC 合格结果 |
| OutboundResultValue | object | 本机合格结果 |
输出数据项
| 数据项 | 类型 | 说明 |
|---|---|---|
| QualityResultValue | int | 最终质量结果(1=合格,2=不合格) |
依赖服务
| 服务接口 | 说明 |
|---|---|
| ILocalEventBus | 本地事件总线 |
使用示例
合格判断配置
<SopControlActivity Name="SOP合格判断">
<ControlType>QualifiedJudgment</ControlType>
</SopControlActivity>
事件发布配置(同步)
<SopControlActivity Name="SOP控制">
<ControlType>Start</ControlType>
<EventSynchronous>true</EventSynchronous>
</SopControlActivity>
事件发布配置(异步)
<SopControlActivity Name="SOP控制">
<ControlType>Complete</ControlType>
<EventSynchronous>false</EventSynchronous>
</SopControlActivity>
典型流程配置
合格判断流程
<ParameterCollectActivity Name="参数采集" />
<LocalQualificationJudgmentActivity Name="本机合格判断" />
<SopControlActivity Name="SOP合格判断">
<ControlType>QualifiedJudgment</ControlType>
</SopControlActivity>
<ConditionActivity Name="质量判断">
<Condition>Flow.DataItems["QualityResultValue"] == 1</Condition>
<TrueBranch>合格处理</TrueBranch>
<FalseBranch>不合格处理</FalseBranch>
</ConditionActivity>
SOP 事件控制流程
<SopControlActivity Name="SOP开始">
<ControlType>Start</ControlType>
<EventSynchronous>true</EventSynchronous>
</SopControlActivity>
<!-- 生产加工过程 -->
<SopControlActivity Name="SOP完成">
<ControlType>Complete</ControlType>
<EventSynchronous>false</EventSynchronous>
</SopControlActivity>
事件处理
SOP 控制事件通过 ILocalEventBus 发布,事件数据包含:
| 字段 | 类型 | 说明 |
|---|---|---|
| ControlType | SopControlType | 控制类型 |
| Name | string | 节点名称 |
| FlowItems | FlowItemCollection | 流程数据项集合 |
订阅事件示例:
public class SopControlEventHandler : ILocalEventHandler<SopControlEto>
{
public Task HandleEventAsync(SopControlEto eventData)
{
// 处理 SOP 控制事件
var controlType = eventData.ControlType;
var flowItems = eventData.FlowItems;
// ...
return Task.CompletedTask;
}
}
相关节点
- LocalQualificationJudgmentActivity - 本机合格判断
- PLCQualificationJudgmentActivity - PLC 合格判断
- ParameterSaveActivity - 过程参数存储
- ProcessBusinessActivity - 工序业务活动基类
注意事项
- 合格判断类型在工艺模型的
QualifiedJudgmentType中配置 - 同步事件会等待所有事件处理器执行完成
- 异步事件会立即返回,不等待处理完成
- 事件发布会包含当前流程的所有数据项