OutboundInitializeActivity - 出站初始化
概述
OutboundInitializeActivity 是一个 MES 专用的出站初始化节点,用于在产品出站时初始化各种状态变量、验证产品码有效性,并获取工单、产品型号、进站时间等关键信息。该节点是出站流程的起点,为后续的质量判定和追溯记录提供必要的上下文数据。
基本信息
| 属性 | 值 |
|---|---|
| 显示名称 | 出站初始化 |
| 类名 | OutboundInitializeActivity |
| 命名空间 | CMS.Plugin.MesSuite.Activitys |
| 基类 | ProcessBusinessActivity |
| 分类 | 工序步骤 |
| 排序 | 21 |
| 发布 | 是 |
配置说明
配置属性
| 属性名 | 显示名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|---|
| EntryFinishTaskName | 进站完成 | string | "进站结果下发" | 进站完成步骤的名称,用于获取进站时间 |
输入变量
| 变量名 | 常量 | 类型 | 说明 |
|---|---|---|---|
| SerialNumber | FlowItemCollection.SerialNumber | string | 产品序列号/产品码 |
| TrayCodeAssociationDescriptionValue | FlowItemCollection.TrayCodeAssociationDescriptionValue | string | 托盘码关联查询描述 |
| MaterialCodeAssociationDescriptionValue | FlowItemCollection.MaterialCodeAssociationDescriptionValue | string | 物料码关联查询描述 |
| OrderModel | FlowItemCollection.OrderModel | OrderModel | 工单模型(可选,已存在则复用) |
| ProductModel | FlowItemCollection.ProductModel | AssociationProductModel | 产品型号(可选,已存在则复用) |
| InboundWorkTypeValue | FlowItemCollection.InboundWorkTypeValue | int | 加工类型(可选,已存在则复用) |
输出变量
| 变量名 | 常量 | 类型 | 说明 |
|---|---|---|---|
| Outbound_FinishSignal | FlowItemCollection.OutboundFinishSignal | string | 出站结果 |
| Outbound_Description_Value | FlowItemCollection.OutboundDescriptionValue | string | 出站异常说明 |
| Outbound_ResultVariable_Value | FlowItemCollection.OutboundResultValue | string | 合格判断结果 |
| Outbound_QualityVariable_Value | FlowItemCollection.OutboundQualityValue | string | 设备加工结果 |
| Outbound_Completed_Signal | FlowItemCollection.OutboundCompletedSignal | int | 出站完成信号 |
| Inspection_ResultVariable_Value | FlowItemCollection.InspectionResultValue | string | 点检结果 |
| OrderModel | FlowItemCollection.OrderModel | OrderModel | 生产工单 |
| ProductModel | FlowItemCollection.ProductModel | AssociationProductModel | 产品型号 |
| Inbound_EntryTime | FlowItemCollection.InboundEntryTime | DateTime? | 进站时间 |
| Inbound_WorkType_Value | FlowItemCollection.InboundWorkTypeValue | int | 加工类型 |
业务逻辑
执行流程
┌─────────────────────────────────────────────────────────────┐
│ OutboundInitializeActivity │
├─────────────────────────────────────────────────────────────┤
│ EnterAsync - 初始化阶段 │
│ ├─ 初始化托盘码/物料码关联描述 │
│ ├─ 清空出站描述 │
│ ├─ 设置出站结果 = "未初始化" │
│ ├─ 设置合格判断 = "未初始化" │
│ ├─ 设置点检结果 = "未初始化" │
│ └─ 设置出站完成信号 = 1 │
├─────────────────────────────────────────────────────────────┤
│ ProcessAsync - 处理阶段 │
│ ├─ 检查产品码是否为空 │
│ │ └─ 为空 → 设置对应错误并返回 │
│ ├─ 设置出站结果 = OK │
│ ├─ 获取工单和产品信息 │
│ │ ├─ 优先使用已存在的数据 │
│ │ ├─ 从加工记录获取 │
│ │ ├─ 从配方应用获取 │
│ │ └─ 从当前工单获取 │
│ ├─ 检查点检标记 │
│ │ └─ 有点检 → 设置点检任务和产品 │
│ ├─ 设置加工类型 │
│ └─ 获取进站时间 │
└─────────────────────────────────────────────────────────────┘
数据获取优先级
工单和产品信息
- 已存在数据:优先使用流程上下文中已有的工单和产品信息
- 加工记录:从产品的加工记录中获取
- 配方应用:从当前工序的配方应用中获取
- 当前工单:从工序段的当前下发工单中获取
进站时间
- 流程上下文:优先使用已存在的进站时间
- 进站步骤:从指定的进站完成步骤获取开始时间
- 加工记录:从产品的加工记录中获取
加工类型
| 类型 | 值 | 说明 |
|---|---|---|
| Normal | WorkType.Normal.Value | 正常加工 |
| Inspection | WorkType.Inspection.Value | 点检 |
| Reset | WorkType.Reset.Value | 重置 |
使用示例
典型出站流程
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ 扫码/读取产品码 │────▶│OutboundInitialize│────▶│QualificationJudgment│
│ │ │ 出站初始化 │ │ 质量判定 │
└──────────────────┘ └──────────────────┘ └──────────────────┘
完整出站流程
┌──────────────────┐
│ 扫码节点 │
│ 设置 SerialNumber │
└────────┬─────────┘
│
▼
┌──────────────────┐
│OutboundInitialize│ ← 出站流程起点
│ 出站初始化 │
└────────┬─────────┘
│
▼
┌──────────────────┐
│QualificationJudgment│
│ 质量判定 │
└────────┬─────────┘
│
▼
┌──────────────────┐
│ParameterCollect │
│ 参数采集 │
└────────┬─────────┘
│
▼
┌──────────────────┐
│ 追溯记录保存 │
└──────────────────┘
流程配置示例
{
"Activities": [
{
"Name": "读取产品码",
"Type": "VariableReadActivity",
"VariableName": "SerialNumber"
},
{
"Name": "出站初始化",
"Type": "OutboundInitializeActivity",
"EntryFinishTaskName": "进站结果下发"
},
{
"Name": "检查出站结果",
"Type": "ConditionActivity",
"Condition": "Outbound_FinishSignal == 'OK'"
}
]
}
出站结果配置
| 结果名称 | 常量 | 说明 |
|---|---|---|
| OK | ExitResultConfig.OK | 出站成功 |
| NoProductEntry | ExitResultConfig.NoProductEntry | 无产品出站 |
| TrayCodeNotBoundProductCode | ExitResultConfig.TrayCodeNotBoundProductCode | 托盘码未绑定产品码 |
| MaterialCodeNotBoundProductCode | ExitResultConfig.MaterialCodeNotBoundProductCode | 物料码未绑定产品码 |
依赖服务
| 服务接口 | 说明 |
|---|---|
| IExitResultProvider | 出站结果配置服务 |
| IEntryResultProvider | 入站结果配置服务 |
| IAbnormalCauseProvider | 异常原因配置服务 |
| IOrderProvider | 工单服务,获取当前工单 |
| IProductProvider | 产品服务,获取产品信息 |
注意事项
- 流程起点:该节点通常是出站流程的第一个业务节点
- 产品码必填:产品码为空时会设置错误结果
- 进站步骤名称:确保
EntryFinishTaskName与实际进站步骤名称一致 - 数据复用:已存在的工单和产品信息会被复用,避免重复查询
- 点检处理:点检模式会自动设置点检任务和对应的产品信息
- 信号输出:出站完成信号可用于与 PLC 等设备通信
相关节点
- ProcessBusinessActivity - 工序业务活动基类
- InboundInitializeActivity - 进站初始化节点
- QualificationJudgmentActivity - 质量判定节点
- ParameterCollectActivity - 参数采集节点
最后更新时间: 2025-11-28