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

View File

@@ -0,0 +1,96 @@
# Mock Procedures 数据说明
## 文件位置
`procedures/mock_procedures.json`
## 数据结构
```json
{
"mockProcedures": [
{
"id": "规程ID",
"name": "规程名称",
"version": "版本号",
"description": "规程描述",
"taskGroups": [
{
"id": "任务组ID",
"name": "任务组名称",
"steps": [
{
"id": "步骤ID",
"type": "步骤类型",
"content": "步骤内容",
"status": "步骤状态",
"tableRefs": ["表格引用ID"],
"highlightFields": ["高亮字段ID"]
}
]
}
],
"tables": [
{
"id": "表格ID",
"name": "表格名称",
"description": "表格描述(可选)",
"columns": [
{
"id": "字段ID",
"name": "字段名称",
"type": "字段类型",
"unit": "单位(可选)",
"isRequired": false,
"isHighlighted": false
}
]
}
],
"totalSteps": 总步骤数(可选,会自动计算),
"completedSteps": 已完成步骤数(可选,会自动计算)
}
]
}
```
## 枚举值说明
### 步骤类型 (type)
- `Manual`: 手动步骤
- `Automatic`: 自动步骤
### 步骤状态 (status)
- `Pending`: 待执行
- `InProgress`: 执行中
- `Confirmed`: 已确认(手动)
- `Passed`: 已通过
- `Failed`: 未通过
- `Skipped`: 已跳过
### 字段类型 (type)
- `text`: 文本
- `numeric`: 数值
- `boolean`: 布尔值
## 使用说明
1. **添加新的 Mock 规程**:在 `mockProcedures` 数组中添加新对象
2. **修改现有规程**:直接编辑对应的 JSON 对象
3. **删除规程**:从数组中移除对应的对象
## 注意事项
- JSON 中的特殊字符(如 `<`, `>`, `&`, `"`, `'`)会被正确处理,无需转义
- 多行文本使用 `\n` 表示换行
- 如果不提供 `totalSteps``completedSteps`,系统会自动计算
- `tableRefs``highlightFields` 是可选字段
## 当前 Mock 数据
1. **LONG_NAME_TEST**: 超长名称测试
2. **NO_VERSION**: 无版本号测试
3. **SPECIAL_CHAR_<>{}[]**: 特殊字符测试
4. **EMPTY_DESC**: 空描述测试
5. **LONG_DESC**: 超长描述测试23个步骤3个任务组
6. **TEST-2024-12-31_V1.0**: 日期戳测试
7. **MULTILINE**: 多行文本测试

View File

@@ -0,0 +1,367 @@
{
"mockProcedures": [
{
"id": "LONG_NAME_TEST",
"name": "这是一个非常非常非常非常非常非常长的规程名称用于测试UI在处理超长名称时的显示效果和换行逻辑是否正常工作",
"version": "1.0.0-longname",
"description": "这个规程专门用于测试长名称和长描述的显示效果。在实际工程中规程名称可能会很长需要确保UI能够正确处理这种情况。",
"taskGroups": [
{
"id": "longTestGroup",
"name": "超长名称测试任务组",
"steps": [
{
"id": "longStep1",
"type": "Manual",
"content": "这是一个非常详细的步骤描述,包含了大量的文字说明。在实际测试过程中,可能需要详细说明每一个操作步骤,确保操作人员能够准确理解并执行。这种长描述可能会包含安全注意事项、操作顺序、参数设置等多方面的内容。操作要点:检查显示是否完整,文字是否能够正常换行,滚动条是否正常工作。",
"status": "Pending"
},
{
"id": "longStep2",
"type": "Manual",
"content": "第二个步骤的描述相对简短一些。继续测试各项功能是否正常。",
"status": "Pending"
}
]
}
],
"tables": []
},
{
"id": "NO_VERSION",
"name": "无版本号规程",
"version": "",
"description": "这个规程没有版本号,用于测试系统对缺失版本信息的处理能力",
"taskGroups": [
{
"id": "noVersionGroup",
"name": "测试任务组",
"steps": [
{
"id": "step1",
"type": "Manual",
"content": "执行基本测试步骤。检查系统是否能正常处理无版本规程。",
"status": "Pending"
}
]
}
],
"tables": []
},
{
"id": "SPECIAL_CHAR_<>{}[]",
"name": "特殊字符测试 <HTML> {JSON} [Array]",
"version": "2.0",
"description": "包含特殊字符: < > { } [ ] & \" ' 的规程测试HTML转义和显示",
"taskGroups": [
{
"id": "specialCharGroup",
"name": "特殊字符 <测试> 组",
"steps": [
{
"id": "specialStep1",
"type": "Manual",
"content": "测试内容: 检查 <标签> 和 {对象} 以及 [数组] 的显示。确认特殊字符 & \" ' 能正确显示。",
"status": "Pending"
},
{
"id": "specialStep2",
"type": "Manual",
"content": "XML标签测试: <root><child>内容</child></root>。检查是否被误解析为HTML。",
"status": "Pending"
}
]
}
],
"tables": []
},
{
"id": "EMPTY_DESC",
"name": "空描述测试",
"version": "1.0",
"description": "",
"taskGroups": [
{
"id": "emptyGroup",
"name": "任务组",
"steps": [
{
"id": "emptyStep1",
"type": "Manual",
"content": "",
"status": "Pending"
},
{
"id": "emptyStep2",
"type": "Manual",
"content": "正常步骤内容",
"status": "Pending"
}
]
}
],
"tables": []
},
{
"id": "LONG_DESC",
"name": "超长描述测试规程",
"version": "3.0.1",
"description": "这是一个包含大量步骤和详细描述的规程,用于测试系统在处理复杂规程时的性能和稳定性。\n规程包含多个任务组每个任务组包含多个步骤。\n这种规程通常用于复杂的校准或验证过程。",
"taskGroups": [
{
"id": "preparation",
"name": "准备阶段",
"steps": [
{
"id": "prep_step_1",
"type": "Manual",
"content": "准备步骤 1: 详细说明操作内容和注意事项。这是第 1 个步骤,需要仔细执行。",
"status": "Confirmed"
},
{
"id": "prep_step_2",
"type": "Manual",
"content": "准备步骤 2: 详细说明操作内容和注意事项。这是第 2 个步骤,需要仔细执行。",
"status": "Confirmed"
},
{
"id": "prep_step_3",
"type": "Manual",
"content": "准备步骤 3: 详细说明操作内容和注意事项。这是第 3 个步骤,需要仔细执行。",
"status": "Confirmed"
},
{
"id": "prep_step_4",
"type": "Manual",
"content": "准备步骤 4: 详细说明操作内容和注意事项。这是第 4 个步骤,需要仔细执行。",
"status": "Pending"
},
{
"id": "prep_step_5",
"type": "Manual",
"content": "准备步骤 5: 详细说明操作内容和注意事项。这是第 5 个步骤,需要仔细执行。",
"status": "Pending"
},
{
"id": "prep_step_6",
"type": "Manual",
"content": "准备步骤 6: 详细说明操作内容和注意事项。这是第 6 个步骤,需要仔细执行。",
"status": "Pending"
},
{
"id": "prep_step_7",
"type": "Manual",
"content": "准备步骤 7: 详细说明操作内容和注意事项。这是第 7 个步骤,需要仔细执行。",
"status": "Pending"
},
{
"id": "prep_step_8",
"type": "Manual",
"content": "准备步骤 8: 详细说明操作内容和注意事项。这是第 8 个步骤,需要仔细执行。",
"status": "Pending"
},
{
"id": "prep_step_9",
"type": "Manual",
"content": "准备步骤 9: 详细说明操作内容和注意事项。这是第 9 个步骤,需要仔细执行。",
"status": "Pending"
},
{
"id": "prep_step_10",
"type": "Manual",
"content": "准备步骤 10: 详细说明操作内容和注意事项。这是第 10 个步骤,需要仔细执行。",
"status": "Pending"
}
]
},
{
"id": "measurement",
"name": "测量阶段",
"steps": [
{
"id": "meas_step_1",
"type": "Automatic",
"content": "测量步骤 1: 进行精确的测量和数据采集。",
"status": "Pending"
},
{
"id": "meas_step_2",
"type": "Automatic",
"content": "测量步骤 2: 进行精确的测量和数据采集。",
"status": "Pending"
},
{
"id": "meas_step_3",
"type": "Automatic",
"content": "测量步骤 3: 进行精确的测量和数据采集。",
"status": "Pending"
},
{
"id": "meas_step_4",
"type": "Automatic",
"content": "测量步骤 4: 进行精确的测量和数据采集。",
"status": "Pending"
},
{
"id": "meas_step_5",
"type": "Automatic",
"content": "测量步骤 5: 进行精确的测量和数据采集。",
"status": "Pending"
},
{
"id": "meas_step_6",
"type": "Automatic",
"content": "测量步骤 6: 进行精确的测量和数据采集。",
"status": "Pending"
},
{
"id": "meas_step_7",
"type": "Automatic",
"content": "测量步骤 7: 进行精确的测量和数据采集。",
"status": "Pending"
},
{
"id": "meas_step_8",
"type": "Automatic",
"content": "测量步骤 8: 进行精确的测量和数据采集。",
"status": "Pending"
}
]
},
{
"id": "verification",
"name": "验证阶段",
"steps": [
{
"id": "verify_step_1",
"type": "Manual",
"content": "验证步骤 1: 确认测量结果的准确性和可靠性。",
"status": "Pending"
},
{
"id": "verify_step_2",
"type": "Manual",
"content": "验证步骤 2: 确认测量结果的准确性和可靠性。",
"status": "Pending"
},
{
"id": "verify_step_3",
"type": "Manual",
"content": "验证步骤 3: 确认测量结果的准确性和可靠性。",
"status": "Pending"
},
{
"id": "verify_step_4",
"type": "Manual",
"content": "验证步骤 4: 确认测量结果的准确性和可靠性。",
"status": "Pending"
},
{
"id": "verify_step_5",
"type": "Manual",
"content": "验证步骤 5: 确认测量结果的准确性和可靠性。",
"status": "Pending"
}
]
}
],
"tables": [],
"totalSteps": 23,
"completedSteps": 3
},
{
"id": "TEST-2024-12-31_V1.0",
"name": "日期戳测试规程 2024-12-31",
"version": "V1.0",
"description": "创建日期: 2024-12-31\n修订日期: 2024-12-31\n\n这个规程使用了日期戳命名格式用于测试系统对不同命名约定的支持。",
"taskGroups": [
{
"id": "dateTestGroup",
"name": "日期戳测试组",
"steps": [
{
"id": "dateStep1",
"type": "Manual",
"content": "检查日期格式显示: 2024-12-31。验证日期解析功能。",
"status": "Pending"
},
{
"id": "dateStep2",
"type": "Automatic",
"content": "测试时间戳: 2024-12-31 23:59:59。验证时间格式处理。",
"status": "Pending",
"tableRefs": [
"dateInfoTable"
]
}
]
}
],
"tables": [
{
"id": "dateInfoTable",
"name": "日期信息表",
"columns": [
{
"id": "createDate",
"name": "创建日期",
"type": "text"
},
{
"id": "modifyDate",
"name": "修改日期",
"type": "text"
}
]
}
]
},
{
"id": "MULTILINE",
"name": "多行文本测试",
"version": "1.0",
"description": "第一行描述\n第二行描述\n第三行描述\n\n这个规程用于测试多行文本的显示效果。\n包括:\n- 换行处理\n- 段落间距\n- 列表显示",
"taskGroups": [
{
"id": "multilineGroup",
"name": "多行测试组",
"steps": [
{
"id": "multilineStep1",
"type": "Manual",
"content": "步骤说明:\n1. 第一步操作\n2. 第二步操作\n3. 第三步操作\n\n注意事项:\n- 注意A\n- 注意B\n- 注意C\n\n按照上述步骤执行确保每一步都正确完成记录执行结果。",
"status": "Pending",
"tableRefs": [
"multilineTable"
]
},
{
"id": "multilineStep2",
"type": "Manual",
"content": "这是一个包含\n多行\n文本\n的步骤\n\n测试多行显示效果",
"status": "Pending"
}
]
}
],
"tables": [
{
"id": "multilineTable",
"name": "多行数据表",
"columns": [
{
"id": "description",
"name": "描述",
"type": "text"
},
{
"id": "notes",
"name": "备注\n(多行)",
"type": "text"
}
]
}
]
}
]
}

6009
procedures/rcp63.json Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,700 @@
testActions:
prereq_147: &prereq_147
id: prereq_147
document: '<p>在热停堆工况(热功率稳定),平均温度最大允许变化&lt;0.2℃若KIC中显示的三个环路平均温度变化AT&gt;0.2℃,则采取数据滑动平均方式,期间确保三个环路平均温度的滑动平均值最大最小值之差&lt;0.2℃、测量时间大于滑动周期。</p>'
mode: manual
dataFields:
- tableRef: '#/tables/manualConfirm'
fields: [confirm_147]
prereq_150: &prereq_150
id: prereq_150
document: '<p>三个蒸发器处于稳定状态,压力一致。</p>'
mode: manual
dataFields:
- tableRef: '#/tables/manualConfirm'
fields: [confirm_150]
prereq_43: &prereq_43
id: prereq_43
document: '<p>蒸汽发生器水位稳定。</p>'
mode: manual
dataFields:
- tableRef: '#/tables/manualConfirm'
fields: [confirm_43]
prereq_75: &prereq_75
id: prereq_75
document: '<p>RCV的一个下泄孔板投入运行确保测量期间无下泄孔板相关操作一回路温度保持稳定测量结果若超差需要分析下泄流量影响。</p>'
mode: manual
dataFields:
- tableRef: '#/tables/manualConfirm'
fields: [confirm_75]
prereq_92: &prereq_92
id: prereq_92
document: '<p>其它模式/工况下需进行相应的独立风险分析。</p>'
mode: manual
dataFields:
- tableRef: '#/tables/manualConfirm'
fields: [confirm_92]
pre_153: &pre_153
id: pre_153
document: '<p>本程序适用于热停堆(热功率稳定)工况下执行RCP63程序统一进行Sensor Check部分使用。</p>'
mode: manual
dataFields:
- tableRef: '#/tables/manualConfirm'
fields: [confirm_153]
pre_136: &pre_136
id: pre_136
document: '<p>执行前确认KIC中一回路三个环路平均温度变化量不超过0.2℃。</p>'
mode: auto
functionType: DATA_ACQUISITION_WITH_VALIDATION
functionParameters:
- RCP614KM
- RCP618KM
- RCP622KM
dataFields:
- tableRef: '#/tables/temperatureCheckTable'
fields: [loop1TempVariation, loop2TempVariation, loop3TempVariation]
pre_137: &pre_137
id: pre_137
document: '<p>若三环路平均温度变化超过0.2℃记录滑动周期、各环路滑动平均最大最小值之差及最短数据测量时间确认均满足≤0.2℃且测量时间&gt;滑动周期。</p>'
mode: auto
functionType: DATA_ACQUISITION_WITH_VALIDATION
functionParameters:
- RCP614KM
- RCP618KM
- RCP622KM
- RCP612KM
- RCP616KM
- RCP620KM
- RCP613KM
- RCP617KM
- RCP621KM
- RCP611KM
- RCP615KM
- RCP619KM
dataFields:
- tableRef: '#/tables/temperatureCheckTable'
fields: [loop1TempVariation, loop2TempVariation, loop3TempVariation]
pre_138: &pre_138
id: pre_138
document: '<p>确认 RPR、RPN上无相关的试验检修工作。</p>'
mode: manual
dataFields:
- tableRef: '#/tables/manualConfirm'
fields: [confirm_138]
pre_139: &pre_139
id: pre_139
document: '<p>按附表1检查相关模拟量指示并记录确认结果满意。</p>'
mode: auto
functionType: DATA_ACQUISITION
functionParameters:
- RCP614KM
- RCP618KM
- RCP622KM
dataFields:
- tableRef: '#/tables/alarmCheckTable'
cells:
- row: RCP614KM
column: preInspectionStatus
- row: RCP618KM
column: preInspectionStatus
- row: RCP622KM
column: preInspectionStatus
pre_140: &pre_140
id: pre_140
document: '<p>试验前根据附表1报警清单检查报警确认无异常报警方可进行后续检查工作。</p>'
mode: auto
functionType: DATA_ACQUISITION
functionParameters:
- RCP455AA
- RPAB138AA
- RPAB167AA
- RPAB171AA
dataFields:
- tableRef: '#/tables/alarmCheckTable'
cells:
- row: RCP455AA
column: preInspectionStatus
- row: RPAB138AA
column: preInspectionStatus
- row: RPAB167AA
column: preInspectionStatus
- row: RPAB171AA
column: preInspectionStatus
x5KicReadingsPreCheck: &x5KicReadingsPreCheck
id: x5KicReadingsPreCheck
document: '<p>采集X5端子排拆前KIC指示值。</p>'
mode: auto
functionType: DATA_ACQUISITION
functionParameters:
- RCP030MT
- RCP033MT
dataFields:
- tableRef: '#/tables/kicReadingsTable'
cells:
- row: RCP030MT
column: preInspectionValue
- row: RCP033MT
column: preInspectionValue
x5KicReadingsPostCheck: &x5KicReadingsPostCheck
id: x5KicReadingsPostCheck
document: '<p>采集X5端子排恢复后KIC指示值。</p>'
mode: auto
functionType: DATA_ACQUISITION
functionParameters:
- RCP030MT
- RCP033MT
dataFields:
- tableRef: '#/tables/kicReadingsTable'
cells:
- row: RCP030MT
column: postInspectionValue
- row: RCP033MT
column: postInspectionValue
rcp030mtResistance: &rcp030mtResistance
id: rcp030mtResistance
mode: auto
functionType: RESISTANCE_4WIRE
channel: input1
functionParameters:
document: '<p><strong>测量位置:</strong>KCSO13AR/EB911/X5</p><p><strong>测量项目:</strong>R1/2, R1/3, R1/4, R2/3, R2/4, R3/4, R/4wires</p>'
dataFields:
- tableRef: '#/tables/resistanceMeasurementTable'
cells:
- row: RCP030MT
column: r12
- row: RCP030MT
column: r13
- row: RCP030MT
column: r14
- row: RCP030MT
column: r23
- row: RCP030MT
column: r24
- row: RCP030MT
column: r34
- row: RCP030MT
column: r4wires
uploadStrategy: inherit
rcp030mtInsulation: &rcp030mtInsulation
id: rcp030mtInsulation
mode: auto
functionType: INSULATION
channel: input1
functionParameters:
testVoltage: 50
testTime: 20
dischargeTime: 5
document: '<p><strong>测量位置:</strong>KCSO13AR/EB911/X5</p><p><strong>注意事项:</strong></p><ul><li>测试电压50V</li><li>测试时间不小于20秒</li><li>测量后探头对地放电</li></ul>'
dataFields:
- tableRef: '#/tables/resistanceMeasurementTable'
cells:
- row: RCP030MT
column: insulation
uploadStrategy: inherit
rcp033mtResistance: &rcp033mtResistance
id: rcp033mtResistance
mode: auto
functionType: RESISTANCE_4WIRE
channel: input1
functionParameters:
document: '<p><strong>测量位置:</strong>KCSO13AR/EB911/X5</p><p><strong>测量项目:</strong>R1/2, R1/3, R1/4, R2/3, R2/4, R3/4, R/4wires</p>'
dataFields:
- tableRef: '#/tables/resistanceMeasurementTable'
cells:
- row: RCP033MT
column: r12
- row: RCP033MT
column: r13
- row: RCP033MT
column: r14
- row: RCP033MT
column: r23
- row: RCP033MT
column: r24
- row: RCP033MT
column: r34
- row: RCP033MT
column: r4wires
uploadStrategy: inherit
rcp033mtInsulation: &rcp033mtInsulation
id: rcp033mtInsulation
mode: auto
functionType: INSULATION
channel: input1
functionParameters:
testVoltage: 50
testTime: 20
dischargeTime: 5
document: '<p><strong>测量位置:</strong>KCSO13AR/EB911/X5</p><p><strong>注意事项:</strong></p><ul><li>测试电压50V</li><li>测试时间不小于20秒</li><li>测量后探头对地放电</li><li>复归保险FB059 F11和F12</li></ul>'
dataFields:
- tableRef: '#/tables/resistanceMeasurementTable'
cells:
- row: RCP033MT
column: insulation
uploadStrategy: inherit
rcp031mtResistance: &rcp031mtResistance
id: rcp031mtResistance
mode: auto
functionType: RESISTANCE_4WIRE
channel: input1
functionParameters:
document: '<p><strong>测量位置:</strong>KCS013AR/EB911/X6</p><p><strong>测量项目:</strong>R1/2, R1/3, R1/4, R2/3, R2/4, R3/4, R/4wires</p>'
dataFields:
- tableRef: '#/tables/resistanceMeasurementTable'
cells:
- row: RCP031MT
column: r12
- row: RCP031MT
column: r13
- row: RCP031MT
column: r14
- row: RCP031MT
column: r23
- row: RCP031MT
column: r24
- row: RCP031MT
column: r34
- row: RCP031MT
column: r4wires
uploadStrategy: inherit
rcp031mtInsulation: &rcp031mtInsulation
id: rcp031mtInsulation
mode: auto
functionType: INSULATION
channel: input1
functionParameters:
testVoltage: 50
testTime: 20
dischargeTime: 5
document: '<p><strong>测量位置:</strong>KCS013AR/EB911/X6</p><p><strong>注意事项:</strong></p><ul><li>测试电压50V</li><li>测试时间不小于20秒</li><li>测量后探头对地放电</li></ul>'
dataFields:
- tableRef: '#/tables/resistanceMeasurementTable'
cells:
- row: RCP031MT
column: insulation
uploadStrategy: inherit
rcp034mtResistance: &rcp034mtResistance
id: rcp034mtResistance
mode: auto
functionType: RESISTANCE_4WIRE
channel: input1
functionParameters:
document: '<p><strong>测量位置:</strong>KCS013AR/EB911/X6</p><p><strong>测量项目:</strong>R1/2, R1/3, R1/4, R2/3, R2/4, R3/4, R/4wires</p>'
dataFields:
- tableRef: '#/tables/resistanceMeasurementTable'
cells:
- row: RCP034MT
column: r12
- row: RCP034MT
column: r13
- row: RCP034MT
column: r14
- row: RCP034MT
column: r23
- row: RCP034MT
column: r24
- row: RCP034MT
column: r34
- row: RCP034MT
column: r4wires
uploadStrategy: inherit
rcp034mtInsulation: &rcp034mtInsulation
id: rcp034mtInsulation
mode: auto
functionType: INSULATION
channel: input1
functionParameters:
testVoltage: 50
testTime: 20
dischargeTime: 5
document: '<p><strong>测量位置:</strong>KCS013AR/EB911/X6</p><p><strong>注意事项:</strong></p><ul><li>测试电压50V</li><li>测试时间不小于20秒</li><li>测量后探头对地放电</li></ul>'
dataFields:
- tableRef: '#/tables/resistanceMeasurementTable'
cells:
- row: RCP034MT
column: insulation
uploadStrategy: inherit
rcp043mtResistance: &rcp043mtResistance
id: rcp043mtResistance
mode: auto
functionType: RESISTANCE_3WIRE
channel: input1
functionParameters:
document: '<p><strong>测量位置:</strong>KCSO13AR/EB902/X1</p><p><strong>测量项目:</strong>R2/3, R2/4, R3/4</p><p><strong>注意:</strong>3线制传感器</p>'
dataFields:
- tableRef: '#/tables/resistanceMeasurementTable'
cells:
- row: RCP043MT
column: r23
- row: RCP043MT
column: r24
- row: RCP043MT
column: r34
uploadStrategy: inherit
rcp043mtInsulation: &rcp043mtInsulation
id: rcp043mtInsulation
mode: auto
functionType: INSULATION
channel: input1
functionParameters:
testVoltage: 50
testTime: 20
dischargeTime: 5
document: '<p><strong>测量位置:</strong>KCSO13AR/EB902/X1</p><p><strong>注意事项:</strong></p><ul><li>测试电压50V</li><li>测试时间不小于20秒</li><li>测量后探头对地放电</li></ul>'
dataFields:
- tableRef: '#/tables/resistanceMeasurementTable'
cells:
- row: RCP043MT
column: insulation
uploadStrategy: inherit
rcp044mtResistance: &rcp044mtResistance
id: rcp044mtResistance
mode: auto
functionType: RESISTANCE_3WIRE
channel: input1
functionParameters:
document: '<p><strong>测量位置:</strong>KCSO13AR/EB902/X1</p><p><strong>测量项目:</strong>R2/3, R2/4, R3/4</p><p><strong>注意:</strong>3线制传感器</p>'
dataFields:
- tableRef: '#/tables/resistanceMeasurementTable'
cells:
- row: RCP044MT
column: r23
- row: RCP044MT
column: r24
- row: RCP044MT
column: r34
uploadStrategy: inherit
rcp044mtInsulation: &rcp044mtInsulation
id: rcp044mtInsulation
mode: auto
functionType: INSULATION
channel: input1
functionParameters:
testVoltage: 50
testTime: 20
dischargeTime: 5
document: '<p><strong>测量位置:</strong>KCSO13AR/EB902/X1</p><p><strong>注意事项:</strong></p><ul><li>测试电压50V</li><li>测试时间不小于20秒</li><li>测量后探头对地放电</li><li>复归保险FB005 F11和F12</li><li>请主控确认报警消除</li></ul>'
dataFields:
- tableRef: '#/tables/resistanceMeasurementTable'
cells:
- row: RCP044MT
column: insulation
uploadStrategy: inherit
testActivityGroups:
prerequisites: &prerequisites
id: prerequisites
name: 3.0先决条件
actions:
- *prereq_147
- *prereq_150
- *prereq_43
- *prereq_75
- *prereq_92
preInspectionChecks: &preInspectionChecks
id: preInspectionChecks
name: 5.1试验前状态说明和检查
tableRefs:
- '#/tables/temperatureCheckTable'
- '#/tables/alarmCheckTable'
actions:
- *pre_153
- *pre_136
- *pre_137
- *pre_138
- *pre_139
- *pre_140
protectionIGroup: &protectionIGroup
id: protectionIGroup
name: 5.2保护组传感器及线缆绝缘及电阻检查
tableRefs:
- '#/tables/kicReadingsTable'
- '#/tables/resistanceMeasurementTable'
actions:
- *x5KicReadingsPreCheck
- *rcp030mtResistance
- *rcp030mtInsulation
- *rcp033mtResistance
- *rcp033mtInsulation
- *x5KicReadingsPostCheck
testTaskGroups:
prerequisitesTask: &prerequisitesTask
id: prerequisitesTask
name: 3.0先决条件
stages:
- *prerequisites
preInspectionTask: &preInspectionTask
id: preInspectionTask
name: 5.1试验前状态说明和检查
stages:
- *preInspectionChecks
protectionITask: &protectionITask
id: protectionITask
name: 5.2保护组传感器及线缆绝缘及电阻检查
stages:
- *protectionIGroup
resultDisplays:
finalResultDisplay: &finalResultDisplay
id: finalResultDisplay
name: 实验结果汇总
document: '<p>显示本次实验的所有测量数据和检查结果</p>'
tableRefs:
- '#/tables/resistanceMeasurementTable'
- '#/tables/temperatureCheckTable'
- '#/tables/alarmCheckTable'
- '#/tables/kicReadingsTable'
procedure:
id: SIMPLE63
name: 范例 一回路温度传感器绝缘和连续性检查 TP RCP63
version: SIMPLE
activitySequence:
- *prerequisitesTask
- *preInspectionTask
- *protectionITask
- *finalResultDisplay
tables:
kicReadingsTable:
id: kicReadingsTable
name: KIC指示读数表
description: 检验前后的KIC指示读数
tableType: grid
isShared: true
uploadStrategy: onComplete
columnHeaders:
- id: preInspectionValue
name: 拆前数据
type: numeric
isRequired: true
unit: '℃'
- id: postInspectionValue
name: 拆后数据
type: numeric
isRequired: true
unit: '℃'
rowHeaders:
- id: RCP030MT
name: RCP030MT
- id: RCP033MT
name: RCP033MT
- id: RCP031MT
name: RCP031MT
- id: RCP034MT
name: RCP034MT
- id: RCP043MT
name: RCP043MT
- id: RCP044MT
name: RCP044MT
alarmCheckTable:
id: alarmCheckTable
name: 试验前后报警检查记录表
description: 依据TP RCP63的报警检查记录结构
tableType: grid
isShared: true
uploadStrategy: onComplete
columnHeaders:
- id: signal
name: 信号
type: text
isRequired: false
- id: description
name: 描述
type: text
isRequired: false
- id: location
name: 位置
type: text
isRequired: false
- id: normalState
name: 正常状态
type: text
isRequired: false
- id: eventTime
name: 出现时间
type: text
isRequired: false
- id: preInspectionStatus
name: 拆前状态
type: text
isRequired: true
- id: preInspectionStatusB
name: 拆前B列
type: text
isRequired: false
- id: postInspectionStatus
name: 拆后状态
type: text
isRequired: true
- id: postInspectionStatusB
name: 拆后B列
type: text
isRequired: false
rowHeaders:
- id: RCP455AA
name: RCP455AA
- id: RPAB138AA
name: RPA/B138AA
- id: RPAB167AA
name: RPA/B167AA
- id: RPAB171AA
name: RPA/B171AA
- id: RPA_B079AA
name: RPA/B079AA
- id: RPA_B039LA
name: RPA/B039LA
- id: RCP614KM
name: RCP614KM
- id: RCP618KM
name: RCP618KM
- id: RCP622KM
name: RCP622KM
manualConfirm:
id: manualConfirm
name: 人工确认
tableType: form
uploadStrategy: immediate
layoutConfig:
totalColumns: 12
fields:
- id: confirm_147
name: 确认 147
type: boolean
layoutConfig:
labelSpan: 4
valueSpan: 8
- id: confirm_150
name: 确认 150
type: boolean
layoutConfig:
labelSpan: 4
valueSpan: 8
- id: confirm_43
name: 确认 43
type: boolean
layoutConfig:
labelSpan: 4
valueSpan: 8
- id: confirm_75
name: 确认 75
type: boolean
layoutConfig:
labelSpan: 4
valueSpan: 8
- id: confirm_92
name: 确认 92
type: boolean
layoutConfig:
labelSpan: 4
valueSpan: 8
- id: confirm_153
name: 确认 153
type: boolean
layoutConfig:
labelSpan: 4
valueSpan: 8
- id: confirm_138
name: 确认 138
type: boolean
layoutConfig:
labelSpan: 4
valueSpan: 8
- id: confirm_142
name: 确认 142
type: boolean
layoutConfig:
labelSpan: 4
valueSpan: 8
resistanceMeasurementTable:
id: resistanceMeasurementTable
name: 电阻测量表
description: 传感器的电阻和绝缘测量数据
tableType: grid
uploadStrategy: onComplete
columnHeaders:
- id: r12
name: R1/2
type: numeric
isRequired: false
unit: Ω
- id: r13
name: R1/3
type: numeric
isRequired: false
unit: Ω
- id: r14
name: R1/4
type: numeric
isRequired: false
unit: Ω
- id: r23
name: R2/3
type: numeric
isRequired: true
unit: Ω
- id: r24
name: R2/4
type: numeric
isRequired: true
unit: Ω
- id: r34
name: R3/4
type: numeric
isRequired: true
unit: Ω
- id: r4wires
name: R/4wires
type: numeric
isRequired: false
unit: Ω
- id: insulation
name: Insulation
type: numeric
isRequired: true
unit:
rowHeaders:
- id: RCP030MT
name: RCP030MT
- id: RCP033MT
name: RCP033MT
- id: RCP031MT
name: RCP031MT
- id: RCP034MT
name: RCP034MT
- id: RCP043MT
name: RCP043MT
- id: RCP044MT
name: RCP044MT
temperatureCheckTable:
id: temperatureCheckTable
name: 环路温度检查表
description: 环路平均温度变化量检查
tableType: form
uploadStrategy: onComplete
layoutConfig:
totalColumns: 12
fields:
- id: loop1TempVariation
name: 一环路平均温度变化量
type: numeric
isRequired: true
unit: '℃'
layoutConfig:
labelSpan: 4
valueSpan: 8
order: 1
- id: loop2TempVariation
name: 二环路平均温度变化量
type: numeric
isRequired: true
unit: '℃'
layoutConfig:
labelSpan: 4
valueSpan: 8
order: 2
- id: loop3TempVariation
name: 三环路平均温度变化量
type: numeric
isRequired: true
unit: '℃'
layoutConfig:
labelSpan: 4
valueSpan: 8
order: 3

View File

@@ -0,0 +1,59 @@
procedure:
id: SIMPLE_TEST
name: 简单测试规程
version: '1.0'
document: |
<p>这是一个简单的测试规程,用于演示 ProcedurePlayer 的基本功能。</p>
<p>包含一个测试任务组和结果展示。</p>
activitySequence:
- id: testGroup1
name: 测试组1
document: '<p>执行基本测试</p>'
stages:
- id: stage1
name: 测试阶段
document: '<p>填写测试数据</p>'
tableRefs:
- '#/tables/testTable'
actions:
- id: action1
document: '<p>请在测试数据表中填写字段1和字段2。</p>'
mode: manual
dataFields:
- tableRef: '#/tables/testTable'
fields:
- field1
- field2
- id: resultDisplay
name: 结果展示
document: '<p>查看测试结果</p>'
tableRefs:
- '#/tables/testTable'
tables:
testTable:
id: testTable
name: 测试数据表
description: 简单的测试数据表
tableType: form
uploadStrategy: onComplete
layoutConfig:
totalColumns: 12
fields:
- id: field1
name: 测试字段1
type: text
isRequired: true
layoutConfig:
labelSpan: 4
valueSpan: 8
order: 1
- id: field2
name: 测试字段2
type: numeric
isRequired: true
unit: 'V'
layoutConfig:
labelSpan: 4
valueSpan: 8
order: 2