ParameterTransferActivity - 参数传递
概述
| 属性 | 值 |
|---|---|
| 节点名称 | 参数传递 |
| 节点描述 | 参数传递步骤 |
| 节点类型 | 业务节点 |
| 命名空间 | CMS.Plugin.MesSuite.Activitys |
| 程序集 | CMS.Plugin.MesSuite.Activitys |
| 分类 | 工序步骤 |
| 排序 | 1 |
| 发布 | 是 |
| 基类 | ProcessBusinessActivity |
功能说明
ParameterTransferActivity 是参数传递节点,用于监听触发信号变量,当触发信号变化时,将源变量的值传递到目标变量。该节点采用订阅模式,持续监听变量变化事件。
主要功能:
- 监听触发信号变量的变化
- 当触发信号为指定值时,读取源变量并写入目标变量
- 当触发信号复位时,复位目标变量和传递结果
- 支持多组参数传递配置
配置属性
| 属性名 | 显示名称 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
| TransferSuccessWriteValue | 传递成功下发值 | int | 否 | 1 | 传递成功时写入的值 |
| TransferFailWriteValue | 传递失败下发值 | int | 否 | 2 | 传递失败时写入的值 |
| IsRestVerificationResult | 复位传递结果 | bool | 否 | true | 触发信号复位时是否复位传递结果 |
| TransferRestWriteValue | 复位结果下发值 | int | 否 | 0 | 复位时写入的值 |
| ReadRetryCount | 读取重试次数 | int | 否 | 10 | 读取变量的重试次数 |
| ReadRetryDelay | 读取重试延时 | int | 否 | 500 | 读取重试延时(毫秒) |
| WriteRetryCount | 写入重试次数 | int | 否 | 10 | 写入变量的重试次数 |
| WriteRetryDelay | 写入重试延时 | int | 否 | 500 | 写入重试延时(毫秒) |
| StringTypesResetValue | 字符类型复位值 | string | 否 | string.Empty | 字符类型变量的复位值 |
| DecimalTypesResetValue | 数值类型复位值 | string | 否 | 0 | 数值类型变量的复位值 |
| OtherTypesResetValue | 其他类型复位值 | string | 否 | null | 其他类型变量的复位值 |
业务逻辑
执行流程
进入节点
│
▼
检查工位和功能是否启用
│
├─► 未启用 → 记录日志,返回
│
▼
获取参数传递配置列表
│
▼
创建变量监听通道
│
▼
订阅变量变化事件
│
▼
等待变量变化
│
├─► 触发信号 = 1 → 执行传递
│ │
│ ├─► 读取源变量
│ ├─► 写入目标变量
│ └─► 写入传递结果
│
└─► 触发信号 = 0 → 执行复位
│
├─► 复位传递结果
└─► 复位目标变量(可选)
参数传递配置
每组参数传递包含以下配置:
| 配置项 | 说明 |
|---|---|
| Name | 参数名称 |
| TransferSignal | 触发信号变量 |
| SourceVariable | 源变量(读取) |
| TargetVariable | 目标变量(写入) |
| TransferResult | 传递结果变量 |
触发信号值
| 信号值 | 动作 |
|---|---|
| 1 / true | 执行参数传递 |
| 0 / false | 执行复位(如果启用) |
流程数据项
输入数据项
| 数据项 | 类型 | 说明 |
|---|---|---|
| ApplicationData | ProcessModel | 工艺模型(包含参数传递配置) |
输 出数据项
| 数据项 | 类型 | 说明 |
|---|---|---|
| {参数名}_TransferVariable_Value | string | 传递的变量值 |
| {参数名}_TransferResult_Value | bool | 传递结果 |
| {参数名}_ParameterTransfer_Counter | int | 传递计数器 |
| {参数名}_ParameterTransfer_Result | DataItemCollection | 传递结果集合 |
依赖服务
| 服务接口 | 说明 |
|---|---|
| IVariableDataCache | 变量数据缓存 |
| IFlowVariableService | 流程变量服务 |
| IVariableTypeDeterminer | 变量类型判断器 |
| ILmesMetrics | LMES 指标服务 |
使用示例
基本配置
<ParameterTransferActivity Name="参数传递">
<TransferSuccessWriteValue>1</TransferSuccessWriteValue>
<TransferFailWriteValue>2</TransferFailWriteValue>
<IsRestVerificationResult>true</IsRestVerificationResult>
<TransferRestWriteValue>0</TransferRestWriteValue>
</ParameterTransferActivity>
自定义重试配置
<ParameterTransferActivity Name="参数传递">
<ReadRetryCount>5</ReadRetryCount>
<ReadRetryDelay>300</ReadRetryDelay>
<WriteRetryCount>5</WriteRetryCount>
<WriteRetryDelay>300</WriteRetryDelay>
</ParameterTransferActivity>
工艺模型配置
参数传递配置在工艺模型的 ParameterTransfers 中定义:
{
"ParameterTransfers": [
{
"Name": "产品码传递",
"TransferSignal": "Transfer_Trigger_1",
"SourceVariable": "PLC_SerialNumber",
"TargetVariable": "MES_SerialNumber",
"TransferResult": "Transfer_Result_1"
},
{
"Name": "工单号传递",
"TransferSignal": "Transfer_Trigger_2",
"SourceVariable": "PLC_OrderCode",
"TargetVariable": "MES_OrderCode",
"TransferResult": "Transfer_Result_2"
}
]
}
相关节点
- ParameterCollectActivity - 过程参数采集
- ParameterSaveActivity - 过程参数存储
- ProcessBusinessActivity - 工序业务活动基类
注意事项
- 该节点采用订阅模式,会持续监听变量变化
- 需要在工艺模型中配置参数传递列表
- 触发信号变量必须存在且可监听
- 复位功能会根据变量类型自动选择复位值
- 节点退出模式为手动(Manual),需要外部触发退出
- 流程取消时会自动取消订阅