Files
CalibratorLauncher/procedures/FUNCTION_GUIDE.md
2026-01-02 19:20:35 +09:00

624 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 测量函数
## 目录
1. [电阻测量函数](#电阻测量函数)
2. [电压测量函数](#电压测量函数)
3. [电流测量函数](#电流测量函数)
4. [频率测量函数](#频率测量函数)
5. [数字输入函数](#数字输入函数)
6. [绝缘测试函数](#绝缘测试函数)
7. [数据采集函数](#数据采集函数)
---
## 电阻测量函数
### 1. RESISTANCE_4WIRE - 4 线制电阻测量
**功能描述**:高精度 4 线制电阻测量,返回 7 个测量值。
**适用场景**精密电阻测量RTD 温度传感器检测。
**返回值数量**7 个
- R1/2, R1/3, R1/4
- R2/3, R2/4, R3/4
- R/4wires
**YAML 配置示例**
```yaml
testActions:
measureResistance4Wire:
id: measureResistance4Wire
name: 4线制电阻测量
mode: auto
functionType: RESISTANCE_4WIRE
channel: input1
functionParameters: {}
dataFields:
- tableRef: '#/tables/resistanceTable'
cells:
- row: sensor1
column: r12
- row: sensor1
column: r13
- row: sensor1
column: r14
- row: sensor1
column: r23
- row: sensor1
column: r24
- row: sensor1
column: r34
- row: sensor1
column: r4wires
```
**注意事项**
- 必须指定 `channel` (input1 或 input2)
- `functionParameters` 为空对象 `{}`
- `dataFields` 必须包含 7 个单元格,顺序固定
---
### 2. RESISTANCE_3WIRE - 3 线制电阻测量
**功能描述**3 线制电阻测量,返回 3 个测量值。
**适用场景**3 线制 RTD 温度传感器检测。
**返回值数量**3 个
- R2/3, R2/4, R3/4
**YAML 配置示例**
```yaml
testActions:
measureResistance3Wire:
id: measureResistance3Wire
name: 3线制电阻测量
mode: auto
functionType: RESISTANCE_3WIRE
channel: input1
functionParameters: {}
dataFields:
- tableRef: '#/tables/resistanceTable'
cells:
- row: sensor1
column: r23
- row: sensor1
column: r24
- row: sensor1
column: r34
```
**注意事项**
- 必须指定 `channel`
- `functionParameters` 为空对象 `{}`
- `dataFields` 必须包含 3 个单元格,顺序固定
---
### 3. RESISTANCE_2WIRE - 2 线制电阻测量
**功能描述**2 线制电阻测量,返回 1 个测量值。
**适用场景**简单电阻测量2 线制传感器。
**返回值数量**1 个
- R1/2
**YAML 配置示例**
```yaml
testActions:
measureResistance2Wire:
id: measureResistance2Wire
name: 2线制电阻测量
mode: auto
functionType: RESISTANCE_2WIRE
channel: input1
functionParameters: {}
dataFields:
- tableRef: '#/tables/resistanceTable'
cells:
- row: sensor1
column: resistance
```
**注意事项**
- 必须指定 `channel`
- `functionParameters` 为空对象 `{}`
- `dataFields` 包含 1 个单元格
---
## 电压测量函数
### 4. VOLTAGE_AC - 交流电压测量
**功能描述**:交流电压测量,返回 RMS 电压、峰值电压和频率。
**适用场景**:交流电源检测,信号分析。
**返回值数量**3 个
- RMS 电压 (有效值)
- 峰值电压
- 频率
**YAML 配置示例**
```yaml
testActions:
measureACVoltage:
id: measureACVoltage
name: 交流电压测量
mode: auto
functionType: VOLTAGE_AC
channel: input1
functionParameters: {}
dataFields:
- tableRef: '#/tables/voltageTable'
cells:
- row: measurement1
column: rmsVoltage
- row: measurement1
column: peakVoltage
- row: measurement1
column: frequency
```
**注意事项**
- 必须指定 `channel`
- `functionParameters` 为空对象 `{}`
- `dataFields` 必须包含 3 个单元格,顺序固定
---
### 5. VOLTAGE_V - 直流电压测量 (伏特)
**功能描述**:直流电压测量,单位为伏特(V)。
**适用场景**:直流电源检测,信号电压测量。
**返回值数量**1 个
- 电压值 (V)
**YAML 配置示例**
```yaml
testActions:
measureDCVoltage:
id: measureDCVoltage
name: 直流电压测量
mode: auto
functionType: VOLTAGE_V
channel: input1
functionParameters: {}
dataFields:
- tableRef: '#/tables/voltageTable'
cells:
- row: measurement1
column: voltage
```
**注意事项**
- 必须指定 `channel`
- `functionParameters` 为空对象 `{}`
- `dataFields` 包含 1 个单元格
---
### 6. VOLTAGE_MV - 直流电压测量 (毫伏)
**功能描述**:直流电压测量,单位为毫伏(mV)。
**适用场景**:微小信号测量,传感器输出检测。
**返回值数量**1 个
- 电压值 (mV)
**YAML 配置示例**
```yaml
testActions:
measureMillivolt:
id: measureMillivolt
name: 毫伏电压测量
mode: auto
functionType: VOLTAGE_MV
channel: input1
functionParameters: {}
dataFields:
- tableRef: '#/tables/voltageTable'
cells:
- row: measurement1
column: millivolt
```
**注意事项**
- 必须指定 `channel`
- `functionParameters` 为空对象 `{}`
- `dataFields` 包含 1 个单元格
---
## 电流测量函数
### 7. CURRENT_MA - 直流电流测量 (毫安)
**功能描述**:直流电流测量,单位为毫安(mA)。
**适用场景**回路电流检测4-20mA 信号测量。
**返回值数量**1 个
- 电流值 (mA)
**YAML 配置示例**
```yaml
testActions:
measureCurrent:
id: measureCurrent
name: 电流测量
mode: auto
functionType: CURRENT_MA
channel: input1
functionParameters: {}
dataFields:
- tableRef: '#/tables/currentTable'
cells:
- row: measurement1
column: current
```
**注意事项**
- 必须指定 `channel`
- `functionParameters` 为空对象 `{}`
- `dataFields` 包含 1 个单元格
---
## 频率测量函数
### 8. FREQUENCY - 频率测量
**功能描述**:信号频率测量,单位为 Hz。
**适用场景**:交流信号频率检测,脉冲频率测量。
**返回值数量**1 个
- 频率值 (Hz)
**YAML 配置示例**
dat
testActions:
measureFrequency:
id: measureFrequency
name: 频率测量
mode: auto
functionType: FREQUENCY
channel: input1
functionParameters: {}
dataFields: - tableRef: '#/tables/frequencyTable'
cells: - row: measurement1
column: frequency
````
**注意事项**
- 必须指定 `channel`
- `functionParameters` 为空对象 `{}`
- `dataFields` 包含1个单元格
---
## 数字输入函数
### 9. DIGITAL_INPUT - 数字输入读取
**功能描述**:读取数字输入状态,返回布尔值。
**适用场景**:开关状态检测,数字信号读取。
**返回值数量**1个
- 状态值 (true/false)
**YAML 配置示例**
```yaml
testActions:
readDigitalInput:
id: readDigitalInput
name: 数字输入读取
mode: auto
functionType: DIGITAL_INPUT
channel: input1
functionParameters: {}
dataFields:
- tableRef: '#/tables/digitalTable'
cells:
- row: input1
column: state
````
**注意事项**
- 必须指定 `channel`
- `functionParameters` 为空对象 `{}`
- `dataFields` 包含 1 个单元格
- 表格字段类型应设置为 `boolean`
---
## 绝缘测试函数
### 10. INSULATION - 绝缘电阻测试
**功能描述**:绝缘电阻测试,返回绝缘电阻值(MΩ)。
**适用场景**:电气设备绝缘检测,传感器绝缘测试。
**返回值数量**1 个
- 绝缘电阻 (MΩ)
**YAML 配置示例**
```yaml
testActions:
insulationTest:
id: insulationTest
name: 绝缘测试
mode: auto
functionType: INSULATION
channel: input1
functionParameters:
testVoltage: 50
testTime: 20
dischargeTime: 5
dataFields:
- tableRef: '#/tables/insulationTable'
cells:
- row: sensor1
column: insulation
```
**functionParameters 参数说明**
- `testVoltage`: 测试电压 (V)
- `testTime`: 测试时间 (秒)
- `dischargeTime`: 放电时间 (秒)
**注意事项**
- 必须指定 `channel`
- `functionParameters` 可以指定测试参数,也可以使用空对象 `{}`
- `dataFields` 包含 1 个单元格
---
## 数据采集函数
### 11. DATA_ACQUISITION - 通用数据采集
**功能描述**:从上位机或 DCS 系统采集多个参数的数据。
**适用场景**:批量读取传感器数据、报警状态、系统参数等。
**返回值数量**:可变,与参数列表数量相同
**YAML 配置示例**
```yaml
testActions:
acquireData:
id: acquireData
name: 数据采集
mode: auto
functionType: DATA_ACQUISITION
functionParameters:
- RCP030MT
- RCP033MT
- RCP031MT
- RCP034MT
dataFields:
- tableRef: '#/tables/dataTable'
cells:
- row: RCP030MT
column: value
- row: RCP033MT
column: value
- row: RCP031MT
column: value
- row: RCP034MT
column: value
```
**functionParameters 参数说明**
- 参数为数组形式,每个元素是要采集的数据标识符
- 返回值顺序与参数顺序一致
- 支持任意数量的参数
**数据类型识别**
- 包含 "MT" 的参数:识别为温度传感器,返回温度值
- 包含 "AA" 的参数:识别为报警状态,返回 "有报警" 或 "无报警"
- 其他参数:返回通用数值
**注意事项**
- **不需要**指定 `channel`
- `functionParameters` 为数组,不能为空
- `dataFields` 中的单元格数量必须与参数数量一致
---
### 12. DATA_ACQUISITION_WITH_VALIDATION - 带验证的数据采集
**功能描述**:从上位机采集数据,并返回每个数据的验证结果。
**适用场景**:需要服务器端验证的数据采集。
**返回值数量**:参数数量的 2 倍 (每个参数返回:值 + 验证结果)
**YAML 配置示例**
```yaml
testActions:
acquireDataWithValidation:
id: acquireDataWithValidation
name: 带验证的数据采集
mode: auto
functionType: DATA_ACQUISITION_WITH_VALIDATION
functionParameters:
- RCP030MT
- RCP033MT
dataFields:
- tableRef: '#/tables/dataTable'
cells:
- row: RCP030MT
column: value
- row: RCP030MT
column: valid
- row: RCP033MT
column: value
- row: RCP033MT
column: valid
```
**functionParameters 参数说明**
- 参数为数组形式,每个元素是要采集的数据标识符
- 每个参数返回 2 个值:数据值和验证结果
**返回值格式**
- 第 1 个值:第 1 个参数的数据值
- 第 2 个值:第 1 个参数的验证结果 (true/false)
- 第 3 个值:第 2 个参数的数据值
- 第 4 个值:第 2 个参数的验证结果 (true/false)
- 以此类推...
**注意事项**
- **不需要**指定 `channel`
- `functionParameters` 为数组,不能为空
- `dataFields` 中的单元格数量必须是参数数量的 2 倍
- 验证结果字段类型应设置为 `boolean`
---
## 字段映射
### 基本规则
**dataFields 是一个 fieldSelector 数组,每个 fieldSelector 可以是:**
1. **包含 cells 的对象** - 用于 Grid 表格,通过 `row` 和 `column` 定位
2. **包含 fields 的对象** - 用于 Form 表格,直接指定字段 ID
3. **ignore 对象** - `ignore: true` 用于跳过不需要的返回值
**注意**
- 每个 fieldSelector 中的 cells 或 fields 可以包含多个项
- **所有 fieldSelector 消耗的返回值总数必须与函数返回值数量相等**
- 包含 cells 的 fieldSelector消耗 cells 数组长度个返回值
- 包含 fields 的 fieldSelector消耗 fields 数组长度个返回值
- ignore 的 fieldSelector消耗 1 个返回值
- 可以在同一个 dataFields 中混合使用不同类型的 fieldSelector
### Grid 类型表格 - 使用 cells
```yaml
dataFields:
- tableRef: '#/tables/gridTable'
cells:
- row: sensor1
column: value1
- row: sensor1
column: value2
```
### Form 类型表格 - 使用 fields
```yaml
dataFields:
- tableRef: '#/tables/formTable'
fields:
- field1
- field2
- field3
```
### 忽略返回值
如果函数返回 5 个值,但只需要其中 4 个,忽略第 3 个:
```yaml
dataFields:
- tableRef: '#/tables/gridTable'
cells:
- row: sensor1
column: value1
- row: sensor1
column: value2
- ignore: true # 忽略第3个返回值
- tableRef: '#/tables/gridTable'
cells:
- row: sensor1
column: value4
- row: sensor1
column: value5
```
### 混合使用
`ignore` 可以与 `cells` 和 `fields` 自由混合,不局限于单一类型:
```yaml
dataFields:
- tableRef: '#/tables/gridTable'
cells:
- row: sensor1
column: value1
- tableRef: '#/tables/formTable'
fields:
- field1
- field2
- ignore: true # 忽略第4个返回值
- tableRef: '#/tables/gridTable'
cells:
- row: sensor2
column: value5
- ignore: true # 忽略第6个返回值
- tableRef: '#/tables/formTable'
fields:
- field3
```
**说明**:上述示例处理 7 个返回值:
- 第 1 个 → gridTable 的 cell
- 第 2-3 个 → formTable 的 field1 和 field2
- 第 4 个 → 忽略
- 第 5 个 → gridTable 的 cell
- 第 6 个 → 忽略
- 第 7 个 → formTable 的 field3