624 lines
13 KiB
Markdown
624 lines
13 KiB
Markdown
# 测量函数
|
||
|
||
## 目录
|
||
|
||
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
|