first commit

This commit is contained in:
2026-01-02 19:20:35 +09:00
commit a10cb30c4a
94 changed files with 28609 additions and 0 deletions

View File

@@ -0,0 +1,623 @@
# 测量函数
## 目录
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