diff --git a/Docs/开发文档.md b/Docs/开发文档.md index 1355166..8475c3f 100644 --- a/Docs/开发文档.md +++ b/Docs/开发文档.md @@ -1,6 +1,6 @@ # 固态功率控制器动态参数测试系统 — 开发文档 -> 版本 v1.1 | 技术栈:**C# + WPF + .NET 8** | 口径:**以当前仓库代码为准** +> 版本 v1.3 | 更新:**2026-07-08 14:58:50 +08:00** | 技术栈:**C# + WPF + .NET 8** | 口径:**以当前仓库代码为准** > > 本文档描述当前仓库的真实结构、配置方式、核心流程和维护约定。 > 若文档与代码冲突,以代码实现为准,并应同步回写本文档。 @@ -12,7 +12,7 @@ 对本项目进行新增、修改、排障时,默认遵守以下原则: 1. **分层隔离优先**:UI 只依赖 ViewModel / Service / Logic,不直接依赖具体设备驱动。 -2. **接口先行**:SSPC、电源、负载、DAQ 一律经 `SSPCTester.Devices.Interfaces` 暴露,真假驱动由配置决定。 +2. **接口先行**:SSPC、电源、负载、DAQ、安全 DIO 一律经 `SSPCTester.Devices.Interfaces` 暴露,真假驱动由配置决定。 3. **按设备粒度切换 Mock/Real**:当前不再是“一个全局 `MockMode` 管全部设备”,而是每类设备都有自己的 `UseMock`。 4. **配置分层加载**:程序先读内置默认值,再读 `appsettings.json`,最后读 `%LOCALAPPDATA%\SSPCTester\settings.json`。 5. **测试态独占**:进入测试后只展示当前项目,禁止切换其他项目,设备连接由测试态独占。 @@ -29,7 +29,7 @@ - 基础通断状态 - 开启/关断曲线与时间参数 - 功率损耗与效率 -- 保护功能演示结果 +- 保护功能测试结果 ### 1.2 当前测试台硬件 @@ -37,9 +37,10 @@ |---|---|---|---| | 工控机 | Windows x64 | 运行 WPF 主程序 | 已支持 | | 被测件 SSPC | 24 路 | 控制 24 路导通/关断 | 已有 `SspcModbus` | -| 程控电源 | UDP5080-100 | 输入端电压/电流读取 | 已有真实驱动,控制命令保留接口 | -| 可编程负载 | IT8733P / IT8702P | 输出端电压/电流/功率读取 | 已有真实驱动 | +| 程控电源 | UDP5080-100 | 输入端电压/电流读取、输出开关控制 | 已有真实驱动 | +| 可编程负载 | IT8733P / IT8702P | 输出端电压/电流/功率读取、输入开关控制 | 已有真实驱动 | | 高速采集卡 | PCIe8586 | 曲线波形采集 | 已有 `Pcie8586Daq` | +| 安全 DIO 卡 | PCI2312 | 急停输入读取、报警灯输出控制 | 已有 `Pci2312SafetyDio` | | 示波器 | Tektronix MDO3024 | 线下校准基准 | 不纳入软件控制 | ### 1.3 当前实现事实 @@ -47,7 +48,8 @@ - SSPC 24 路通过 **3 个 Modbus 模块 × 每模块 8 路** 映射。 - 采集卡实现已经统一为 **PCIe8586**,不再使用旧文档中的 `PCIe9318` 命名。 - 真假设备切换已经演进为 **每类设备独立 `UseMock`**。 -- 主程序启动后会按配置自动连接 SSPC、电源、负载、DAQ。 +- 主程序启动后会按配置自动连接 SSPC、电源、负载、DAQ、PCI2312。 +- 新增设备安全监控链路:后台轮询 PCI2312 急停输入,触发后接通报警输出,并向 SSPC、电源、负载发送安全关断指令。 - 根目录脚本 `run.ps1` / `publish.ps1` 已是当前标准运行入口。 --- @@ -71,9 +73,33 @@ | 基础测试 | 24 路逐路开/关、读电压电流、判定稳态关断 | 已实现 | | 开启与关断曲线 | 支持开通/关断波形采集、指标计算、独立曲线视窗、波形落盘 | 已实现 | | 功率损耗 | 使用 UDP5080 读输入端,IT87xx 读输出端功率/电压/电流 | 已实现 | -| 保护功能 | UI、数据结构和演示结果生成已完成,真实联动未接 | 框架完成 | +| 保护功能 | 固定保护项、自动获取/人工观测数据记录、人工判别结果 | 已实现 | -### 2.2 指标口径 +### 2.2 设备安全与急停报警 + +当前代码新增了独立于“保护功能测试页”的**运行时设备安全链路**: + +- 硬件连接:`PCI2312` 通过厂商 `PCI2312_64.dll` 以 P/Invoke 方式接入,使用 DI 通道读取急停状态,使用 DO 通道控制报警灯。 +- 后台监控:`SafetyMonitorService.Start()` 在主窗口初始化后启动,按 `Devices:Pci2312:PollIntervalMs` 周期轮询急停输入。 +- 硬件急停:当配置的 DI 通道达到有效电平时,程序写入报警 DO,并依次执行 SSPC 全通道关断、电源输出关闭、负载输入关闭。 +- 软件急停:主窗口顶部“报警急停”按钮调用 `TriggerSoftwareEmergencyAsync()`,走同一套报警灯和设备关断链路。 +- 状态重置:报警灯点亮后按钮变为“状态重置”。若硬件急停 DI 仍有效,重置会被拒绝;DI 复位后才关闭报警输出并恢复监控状态。 + +控制链路如下: + +```text +PCI2312 DI 急停输入 / UI 软件急停按钮 +-> SafetyMonitorService +-> PCI2312 DO 报警灯输出 +-> ISspc.TurnOffAsync(1..24) +-> IPowerSupply.OutputAsync(false) // UDP5080 :OUTput OFF +-> ILoad.InputAsync(false) // IT8702P INP OFF +-> UI 状态、日志和报警灯图标同步刷新 +``` + +注意:这是软件侧联动安全链路,用于快速下发关断和报警指令;现场仍应保留硬件级急停/互锁作为最终安全边界。 + +### 2.3 指标口径 当前计算与判定主要围绕以下指标: @@ -82,7 +108,7 @@ - `1.5` 上升/下降时间:10%~90% 或 90%~10% 时间 - `1.9` 电压降:`Vin - Vout` - `1.10 / 1.13` 功率损耗、效率 -- `1.14+` 保护功能相关故障时间与演示状态 +- `1.14+` 保护功能相关触发条件、实测/观测值与人工判别结果 阈值定义和最终判断以 `Project.CurveThresholds` 与各页结果模型为准。 @@ -98,6 +124,8 @@ | DI / Host | `Microsoft.Extensions.Hosting` | 启动时装配所有服务 | | Modbus | `NModbus` | SSPC 串口控制 | | 串口 | `System.IO.Ports` | SSPC/部分设备底层通信 | +| TCP Socket | `System.Net.Sockets.TcpClient` | UDP5080 / IT87xx SCPI-RAW 通信 | +| 原生驱动 | P/Invoke + 厂商 DLL | PCIe8586 / PCI2312 接入 | | 波形绘制 | `ScottPlot` / `ScottPlot.WPF` | 曲线页与报告插图 | | 报告 | `QuestPDF` + `DocumentFormat.OpenXml` | PDF 与 Word 双实现 | | Web 预览 | `Microsoft.Web.WebView2` | 报告页 PDF 预览 | @@ -137,7 +165,7 @@ SSPCTester.sln │ ├── Storage/ # 项目与波形持久化 │ └── Models/ # 项目、结果、阈值、枚举 ├── SSPCTester.Devices/ # 设备抽象与驱动 -│ ├── Interfaces/ # ISspc / IPowerSupply / ILoad / IDaq +│ ├── Interfaces/ # ISspc / IPowerSupply / ILoad / IDaq / ISafetyDio │ ├── Drivers/Mock/ # Mock 驱动 │ ├── Drivers/Real/ # 真设备驱动 │ ├── Drivers/ConfigurableDevices.cs # 按设备切换 Mock/Real @@ -177,10 +205,11 @@ SSPCTester.sln - `Devices:PowerSupply:UseMock` - `Devices:Load:UseMock` - `Devices:Daq:UseMock` +- `Devices:Pci2312:UseMock` `Devices:MockMode` 仅保留兼容旧配置用途,不应再作为新逻辑入口。 -### 5.3 当前 `appsettings.json` 示例 +### 5.3 当前 `appsettings.json` 节选 ```json { @@ -209,9 +238,26 @@ SSPCTester.sln "UseMock": false, "AutoConnect": true, "LogicalDeviceId": 0, - "ChannelCount": 4, - "PreTriggerMs": 10, - "PostTriggerMs": 40 + "ChannelCount": 1, + "InputRange": "PlusMinus5V", + "ClockDivider": 1000, + "PreTriggerMs": 3, + "PostTriggerMs": 100, + "Channels": [ + { "PhysicalChannel": 0, "Role": "OutputVoltage", "Name": "输出电压", "Scale": 1.0, "Offset": 0.0, "IsCalibrated": true }, + { "PhysicalChannel": 1, "Role": "Unconfigured", "Name": "CH1", "Scale": 1.0, "Offset": 0.0, "IsCalibrated": false } + ] + }, + "Pci2312": { + "Enabled": true, + "UseMock": false, + "AutoConnect": true, + "DeviceId": 0, + "EmergencyInputChannel": 0, + "EmergencyInputActiveHigh": true, + "AlarmOutputChannel": 0, + "AlarmOutputActiveHigh": true, + "PollIntervalMs": 100 } }, "Storage": { @@ -306,6 +352,25 @@ public interface IDaq : IDeviceConnection `CaptureAroundActionAsync()` 是当前曲线测试的核心接口: 先进入预采集,再在触发点附近执行开关动作,以得到统一对齐的波形。 +### 6.6 安全 DIO + +```csharp +public interface ISafetyDio : IDeviceConnection +{ + Task ReadInputAsync(int channel, CancellationToken ct = default); + Task WriteOutputAsync(int channel, bool on, CancellationToken ct = default); +} +``` + +当前真实实现为 `Pci2312SafetyDio`: + +- `ConnectAsync()` 调用 `PCI2312_CreateDevice(DeviceId)` 创建设备句柄。 +- `ReadInputAsync(channel)` 调用 `PCI2312_GetDeviceDI()` 读取 0~15 路 DI。 +- `WriteOutputAsync(channel, on)` 维护 16 路 DO 状态数组,并调用 `PCI2312_SetDeviceDO()` 一次性写出。 +- `DisconnectAsync()` 调用 `PCI2312_ReleaseDevice()` 释放句柄。 + +`ConfigurableSafetyDio` 按 `Devices:Pci2312:UseMock` 在 `MockSafetyDio` 与 `Pci2312SafetyDio` 间切换。PCI2312 是否参与自动连接由 `Devices:Pci2312:Enabled` 和 `Devices:Pci2312:AutoConnect` 共同决定。 + --- ## 7. 核心业务逻辑 @@ -332,6 +397,8 @@ public interface ITestModule `TestRunner` 依据 `Project.Selection` 串行执行模块。 +设备安全监控不属于 `ITestModule`,不会进入项目测试结果,也不会由 `TestRunner` 调度;它由 UI 层 `SafetyMonitorService` 在程序运行期持续维护。 + ### 7.2 浏览态 / 测试态 当前程序已实现两种应用状态: @@ -402,14 +469,68 @@ TurnOnAsync(ch) ### 7.6 保护功能 -当前保护功能页和逻辑层是**演示框架**: +当前保护功能页和逻辑层已经按固定保护项落地,结果由 `ProtectRow` 持久化。`ProtectTestPlan` 负责初始化和刷新固定测试项: -- UI 已完成 -- 结果模型已完成 -- `ProtectTest` 目前生成演示数据 -- 未接真实故障触发与真实曲线采集链路 +- `跳闸`:触发条件默认 `1.5×额定电流` +- `短路`:触发条件默认 `输出短路` +- `过温`:触发条件默认 `≥85℃` +- `过压`:触发条件默认 `≥32V` +- `欠压`:触发条件默认 `≤22V` +- `限流`:触发条件默认 `≥1.2A` -### 7.7 报告 +保护功能数据分为两类: + +- **自动获取**:对 `跳闸`、`过压`、`欠压`、`限流` 等可由电源读数支撑的项目,页面提供“测”按钮,调用 `IPowerSupply.ReadAsync()` 获取当前电压/电流并写入 `MeasuredValue`。 +- **人工观测**:对 `短路`、`过温` 等需要现场动作、仪表或人员观察的项目,由操作人员在 `MeasuredValue`、`Trigger` 等字段中填写观测记录。 + +判定口径: + +- 最终判别标准为**人工判别**,不由程序自动计算合格/不合格。 +- `JudgeMode` 默认值为 `人工判别`。 +- `Status` 由操作人员在表格中选择 `合格` / `不合格` / `未判定`。 +- `ProtectTest.RunAsync()` 只负责刷新测量值和进度状态;若某项已经被人工判定为 `Pass` 或 `Fail`,运行批量测试时会保留该人工判定结果。 + +### 7.7 设备安全监控 + +`SafetyMonitorService` 是当前急停/报警链路的中心,依赖: + +- `ISafetyDio`:读取急停 DI、写报警灯 DO。 +- `ISspc`:触发急停后逐路执行 `TurnOffAsync(1..24)`。 +- `IPowerSupply`:触发急停后执行 `OutputAsync(false)`,真实 UDP5080 命令为 `:OUTput OFF`。 +- `ILoad`:触发急停后执行 `InputAsync(false)`,真实 IT8702P 命令为 `INP OFF`。 +- `UiLogSink`:写入 UI 日志,便于现场追踪急停动作。 + +启动链路: + +```text +App.ConfigureServices() +-> 注册 MockSafetyDio / Pci2312SafetyDio / ConfigurableSafetyDio +-> 注册 SafetyMonitorService +-> MainViewModel.Initialize() +-> ConnectConfiguredDevicesAsync() +-> SafetyMonitorService.Start() +``` + +运行链路: + +```text +Timer(PollIntervalMs,代码中限制 50~10000ms) +-> 自动连接 PCI2312(若启用 AutoConnect) +-> ReadInputAsync(EmergencyInputChannel) +-> 按 EmergencyInputActiveHigh 解释有效电平 +-> 触发 HandleEmergencyAsync() +``` + +急停处理具有防重入保护:`_gate` 和 `_handlingEmergency` 避免重复并发关断。每个设备的关断失败会单独记录日志,不阻断后续设备的关断尝试。 + +主窗口顶部状态区会展示: + +- 报警灯动态图标:绑定 `AlarmLampActive` +- 急停/重置按钮:绑定 `ToggleEmergencyAlarmCommand` +- 安全状态文本:来自 `SafetyMonitorService.StatusText / DetailText` +- 设备面板中的 `报警/急停` 连接状态:来自 `ISafetyDio.IsConnected` + +### 7.8 报告 当前报告支持: @@ -522,6 +643,7 @@ PowerShell -ExecutionPolicy Bypass -File .\publish.ps1 - 当前脚本明确没有走 WPF 单文件发布默认方案 - 发布时会检查 `ACTS1000_64.dll` 是否存在 +- PCI2312 真设备模式还需要 `PCI2312_64.dll` 可由进程加载;当前发布脚本未做该 DLL 的存在性检查 ### 9.4 运行环境 @@ -530,6 +652,7 @@ PowerShell -ExecutionPolicy Bypass -File .\publish.ps1 - Windows x64 - .NET 8 SDK x64 - WebView2 Runtime +- 真卡模式下的 PCIe8586 / PCI2312 厂商驱动与 x64 DLL 若只运行现成发布版,则至少需要满足发布产物依赖和本机驱动/DLL 条件。 @@ -542,17 +665,18 @@ PowerShell -ExecutionPolicy Bypass -File .\publish.ps1 - WPF 主程序骨架、主题资源、页面导航 - 浏览态 / 测试态切换 - 项目新建、加载、保存 -- 基础测试、曲线测试、功率损耗、保护功能页 +- 基础测试、曲线测试、功率损耗、保护功能页和结果记录 - PDF / Word 报告生成 - 真/假设备可按设备粒度切换 -- 实际 SSPC / 电源 / 负载 / PCIe8586 驱动接入代码 +- 实际 SSPC / 电源 / 负载 / PCIe8586 / PCI2312 驱动接入代码 +- PCI2312 急停输入轮询、报警输出、软件急停、状态重置和设备关断联动 ### 10.2 待统一 / 待完善 -- 保护功能仍为演示逻辑,未接真实测试链路 - 功率损耗旧版 `PowerTestLegacy` 仍在仓库,后续应明确去留 - 曲线弹窗窗口已实现,但当前主页面尚未提供入口按钮 - 报告生成对新旧曲线视窗字段的使用口径后续建议统一 +- PCI2312 真设备链路需要在现场确认 DI/DO 接线、电平有效性、报警灯供电方式和 DLL 随发布产物部署方式 --- @@ -561,9 +685,12 @@ PowerShell -ExecutionPolicy Bypass -File .\publish.ps1 1. **DAQ 仍是最高风险点**:厂商 DLL、设备 ID、采样参数、输入量程和触发时序都依赖现场。 2. **Modbus 地址和端口仍需现场核实**:虽然当前实现已支持 3 模块映射,但设备地址/串口号应视现场配置为准。 3. **电源与负载真实驱动已接入,但控制命令支持度需按实物验证**。 -4. **所有长流程应贯穿 `CancellationToken`**,中止后优先保证设备回到安全状态。 -5. **示波器不纳入软件控制**,仅作为线下校准基准。 -6. **任何涉及数据模型持久化格式的修改,都要考虑旧项目兼容**。 +4. **PCI2312 急停报警链路依赖现场接线和 DLL 部署**:DI/DO 通道号、高/低有效配置、报警灯供电、`PCI2312_64.dll` 位数和搜索路径都必须逐项核实。 +5. **软件安全链路不能替代硬件安全回路**:`SafetyMonitorService` 通过轮询和软件命令下发关断,适合作为上位机联动保护;最终急停/互锁仍应由硬件电气回路兜底。 +6. **状态重置必须确认急停输入已复位**:当前代码在 DI 仍有效时拒绝关闭报警灯,避免误复位。 +7. **所有长流程应贯穿 `CancellationToken`**,中止后优先保证设备回到安全状态。 +8. **示波器不纳入软件控制**,仅作为线下校准基准。 +9. **任何涉及数据模型持久化格式的修改,都要考虑旧项目兼容**。 --- @@ -573,4 +700,5 @@ PowerShell -ExecutionPolicy Bypass -File .\publish.ps1 2. 改项目结构前,先检查 `run.ps1`、`publish.ps1`、`Seed`、测试项目是否受影响。 3. 改曲线页前,注意当前已经有“主页面 + 弹窗 + 报告图”的三处视窗相关逻辑。 4. 改报告前,确认 `ReportViewModel`、`Logic/Report`、`WebView2` 预览链路同时保持可用。 -5. 若发现文档内容再次与代码偏离,应优先更新本文档,而不是继续在过时约束上开发。 +5. 改设备安全链路前,先确认 `ISafetyDio`、`Pci2312SafetyDio`、`ConfigurableSafetyDio`、`SafetyMonitorService`、主窗口急停按钮和设置页 PCI2312 配置同步调整。 +6. 若发现文档内容再次与代码偏离,应优先更新本文档,而不是继续在过时约束上开发。 diff --git a/Docs/用户使用手册-lin.docx b/Docs/用户使用手册-lin.docx deleted file mode 100644 index 53ed0d0..0000000 Binary files a/Docs/用户使用手册-lin.docx and /dev/null differ diff --git a/Docs/用户使用手册.docx b/Docs/用户使用手册.docx deleted file mode 100644 index 6d27b6a..0000000 Binary files a/Docs/用户使用手册.docx and /dev/null differ diff --git a/Docs/用户使用手册.md b/Docs/用户使用手册.md deleted file mode 100644 index 3bab33b..0000000 --- a/Docs/用户使用手册.md +++ /dev/null @@ -1,2148 +0,0 @@ ---- -title: "固态功率控制器(SSPC)动态参数检测系统用户使用手册" -subtitle: "SSPCTester v1.0" -author: "SPC-DynaTest 项目组" -date: "2026-06-25" -lang: zh-CN -toc-title: "目 录" ---- - -# 文档信息 - -| 项目 | 内容 | -| ------------ | ------------------------------------------------------------ | -| 文档名称 | 固态功率控制器(SSPC)动态参数检测系统用户使用手册 | -| 适用软件 | SSPCTester v1.0 | -| 文档编号 | SPC-DT-UM-001 | -| 适用读者 | 现场测试人员、质量评审人员 | -| 文档版本 | V1.0 | -| 发布日期 | 2026-06-25 | -| 编制 / 审核 / 批准 | (由现场负责人签署) | - -**修订记录** - -| 版本 | 日期 | 修订内容 | 修订人 | -| ---- | ---------- | -------------- | ------ | -| V1.0 | 2026-06-25 | 首次正式发布 | | - ---- - -# 阅读约定 - -为方便阅读,本手册使用以下统一约定。 - -**字体与样式** - -- `等宽字体` 表示文件路径、命令、配置键、寄存器地址等技术内容。 -- **粗体** 表示界面上的按钮、菜单或控件名称,例如 **开始测试**。 -- *斜体* 用于术语首次出现时的标识。 - -**信息提示** - -> **【提示】** 用于补充说明或操作建议。 - -> **【注意】** 用于强调可能影响测试结果或数据准确性的事项。 - -> **【警告】** 用于强调可能造成人身伤害、设备损坏或不可恢复后果的事项。 - -**插图占位** - -本手册中以 `[插图:XXX]` 的形式标注界面截图位置。正式发布前由现场人员补充对应截图。 - -**通道编号约定** - -本系统所有"通道号"均指**物理插位**,编号为 1–24。Modbus 从站地址、线圈号、寄存器偏移仅在底层通信中使用,用户无需关心。 - ---- - -\newpage - -# 第 1 章 产品概述 - -## 1.1 产品简介 - -**固态功率控制器(SSPC)动态参数检测系统**(以下简称"本系统"或 SSPCTester)是一套面向 24 路固态功率控制器的自动化检测平台,用于在生产、入厂复检、定型试验等环节,对 SSPC 的动态特性、功率损耗、保护功能等关键参数进行自动化测量、判定与报告输出。 - -软件采用 **C# / WPF / .NET 8** 架构,运行于 Windows x64 平台。配合外部高速数据采集卡、程控电源、可编程电子负载、Modbus-RTU 控制板等硬件,实现对被测件 24 路通道的逐路加电、波形采集、参数计算与合格判定。 - -## 1.2 适用范围 - -本系统适用于以下使用场景: - -- 24 路结构的固态功率控制器(SSPC)成品测试; -- 同结构组件的型式试验、抽样验收、出厂检验; -- 现场维修后的功能复检; -- 设计阶段对开关特性的对比验证。 - -## 1.3 主要功能特性 - -| 功能模块 | 主要能力 | -| ---------------- | ------------------------------------------------------------------------ | -| **基础测试** | 24 路通道逐路或一键导通/关断,实时读取电压电流,自动判定通断是否正常 | -| **开启与关断曲线** | 高速采集卡同步采样开关过程波形,自动计算开启时间、上升时间、关断时间、下降时间 | -| **功率损耗测试** | 同时采集输入/输出两端的电压电流,计算电压降、功率损耗与转换效率 | -| **保护功能演示** | 支持跳闸、短路、过温、过压、欠压、限流共 6 类保护项目的演示与记录 | -| **项目管理** | 以"被测件 = 项目"为单位组织测试数据,支持历史项目浏览与重测 | -| **报告生成** | 一键生成 PDF 格式专业测试报告,含封面、综合判定、各模块数据及波形 | -| **设备管理** | 集中管理 SSPC 控制板、程控电源、可编程负载、高速采集卡的连接、参数与标定 | -| **模拟模式** | 提供完整 Mock 驱动,无需真实硬件即可演练与培训 | - -## 1.4 系统组成 - -本系统由"软件 + 硬件"两部分构成。 - -**软件部分** - -- SSPCTester.UI:基于 WPF 的主程序(`SSPCTester.UI.exe`); -- SSPCTester.Logic:业务逻辑层(测试流程、计算、报告生成、项目存储); -- SSPCTester.Devices:设备抽象与驱动层(含 Mock 与真实驱动)。 - -**硬件部分** - -| 部件 | 推荐型号 | 用途 | 通讯方式 | -| ---------------- | ----------------------- | ------------------------------------------ | ----------------- | -| 工业控制计算机 | x86_64 工控机 | 运行 SSPCTester、安装 PCIe 采集卡 | — | -| SSPC 测控板 | 24 路 Modbus-RTU 控制板 | 控制 24 路继电器开关,回采电压/电流 | Modbus-RTU 串口 | -| 程控电源 | UDP5080-100 | 给 SSPC 供电(电压/电流可调) | LAN / SOCKET 5025 | -| 直流电子负载 | IT8702P | 模拟 SSPC 输出端的负载 | LAN / Socket 30000 | -| 高速数据采集卡 | PCIe8586(ACTS 系列) | 同步采集 SSPC 开关瞬态电压/电流波形 | PCIe | -| 串口扩展卡 | 8 口 UART | 提供 SSPC 控制板使用的 COM 端口 | PCIe / PCI | - -[插图:系统整体硬件连接示意图] - -## 1.5 技术规格摘要 - -| 项目 | 规格 | -| ------------ | ----------------------------------------------------------------- | -| 测试通道数 | 24(物理插位 1–24) | -| 采样率 | 高速采集卡 100 MHz / 可分频,典型 100 kHz | -| 采集时长 | 单次开/关瞬态典型 50 ms(PreTrigger 10 ms + PostTrigger 40 ms) | -| 电压量程 | SSPC 端 0 – 100 V;采集卡 ±5 V / ±1 V(可选) | -| 电流量程 | SSPC 端 ±60 A | -| 通讯协议 | Modbus-RTU(SSPC),SOCKET / SCPI(电源、负载),厂商 API(采集卡)| -| 判定输出 | 合格 / 不合格 / 已测 / 未测 | -| 报告格式 | PDF(A4,含封面、数据表、波形图、综合判定) | -| 项目数据格式 | JSON + 二进制波形(`.bin` + `.json` 元数据) | - -## 1.6 运行环境要求 - -| 项目 | 最低要求 | 推荐 | -| -------- | --------------------------------------- | ----------------------------- | -| 操作系统 | Windows 10 x64(1909 及以后) | Windows 11 x64 | -| 运行时 | .NET 8 Desktop Runtime(自包含部署可免装)| .NET 8 | -| CPU | 4 核 2.0 GHz | 6 核及以上 | -| 内存 | 4 GB | 8 GB | -| 硬盘 | 5 GB 可用空间 | 20 GB SSD | -| 扩展槽 | 1 × PCIe(采集卡)+ 1 × PCIe/PCI(串口扩展)| 同左 | -| 网络 | 1 × 千兆以太网(电源 / 负载所在网段) | 千兆以太网 + 独立交换机 | -| 显示器 | 1920 × 1080 | 1920 × 1080 及以上 | -| 权限 | 当前用户对 `%LOCALAPPDATA%` 有写权限 | 同左 | - ---- - -\newpage - -# 第 2 章 安全注意事项与作业前检查 - -> **【警告】** 本系统在测试过程中可能向被测件施加最高 100 V 直流电压、最大 60 A 电流。所有作业必须遵循下列安全规范,由经培训的人员执行。 - -## 2.1 一般安全要求 - -1. **培训资质**:操作人员应接受电气安全与本系统操作培训,熟悉急停位置与紧急断电流程。 -2. **个人防护**:作业时穿戴防静电手腕带、绝缘手套;带电换接电缆严禁徒手操作。 -3. **设备接地**:工控机、SSPC 工装、程控电源、电子负载机壳必须可靠接保护地(PE),接地电阻 ≤ 4 Ω。 -4. **环境要求**:作业环境温度 5 ℃ – 40 ℃、相对湿度 ≤ 75 %、无导电粉尘与腐蚀性气体。 -5. **急停**:测试台应配置就近可达的红色急停按钮,能在 1 秒内切断电源至 SSPC 与电子负载。 - -## 2.2 高压与高电流防护 - -- 程控电源输出电压 ≥ 36 V 时,应视为危险电压,禁止在带电状态下接触输出端子。 -- 电子负载在大电流回吸状态下,输入端子温升较高,断电后应等待 ≥ 60 秒再触摸。 -- 测试电缆截面积应与最大测试电流匹配(建议 60 A 段使用 ≥ 10 mm² 多股铜线)。 - -## 2.3 ESD 与设备保护 - -- 拔插 SSPC 被测件前,必须先停止测试、断开程控电源输出。 -- 高速采集卡与 SSPC 信号端禁止热插拔;必须在工控机断电状态下安装。 -- 同一被测件不应在带电状态下重复插拔工装座,避免触点电弧。 - -## 2.4 作业前检查清单 - -每次开机测试前,按以下顺序检查并签字确认。 - -| 序号 | 检查项 | 标准 | 确认 | -| ---- | ------------------------------------------------------------ | ---------------------------- | ---- | -| 1 | 工装座、被测件外观、端子 | 无变形、无烧蚀、无松动 | □ | -| 2 | 测试电缆、信号线 | 绝缘完好、无破皮、连接牢靠 | □ | -| 3 | 接地线导通 | 电阻 ≤ 4 Ω | □ | -| 4 | 程控电源初始设定 | 输出关闭、电压电流上限符合规程 | □ | -| 5 | 电子负载初始设定 | 输入关闭、模式为 CC、电流 0 A | □ | -| 6 | 急停按钮 | 弹起、可用 | □ | -| 7 | 工控机电源、UPS 状态 | 正常 | □ | -| 8 | 软件版本 | 与受控版本一致 | □ | -| 9 | `device-profile.json` 校验和 | 与发布记录一致 | □ | -| 10 | 上次测试残留状态 | 已清理;已断电 | □ | - -## 2.5 异常处置原则 - -发生以下任一情况,应立即按"先切电源、后查软件"的顺序处置: - -- 被测件冒烟、异味、温度异常升高; -- 程控电源、电子负载出现报警; -- 测试中电流持续超出软件设定上限; -- 工控机死机或软件无响应。 - -处置步骤: - -1. **拍下急停按钮**,切断 SSPC 供电与负载回路; -2. 关闭程控电源主开关; -3. 待设备冷却后,断开被测件,记录现象与时间; -4. 由维护人员排查根因,必要时联系研发支持。 - -[插图:操作台急停按钮与设备布置示意] - ---- - -\newpage - -# 第 3 章 硬件接线与首次使用 - -## 3.1 设备布置 - -推荐的测试台布置如下: - -[插图:测试台俯视布置图] - -- **左侧**:程控电源 UDP5080-100、可编程电子负载 IT8702P; -- **中部**:被测件 SSPC 工装座,背面引出 24 路接线端子; -- **右侧**:工控机(含 PCIe8586 采集卡与串口扩展卡)、显示器; -- **正面**:急停按钮、状态指示灯。 - -## 3.2 SSPC 控制板接线 - -SSPC 控制板包含三部分接线: - -1. **主功率回路**(程控电源 → SSPC 输入端 → 24 路输出 → 24 个负载端子); -2. **Modbus-RTU 控制串口**(串口扩展卡 → SSPC 控制板的 RS-485 接口); -3. **采集卡引线**(采集卡 4 路差分输入 → SSPC 测试点)。 - -**主功率回路连接** - -| 端子 | 连接对象 | 备注 | -| ---------- | ------------------------------ | --------------------- | -| `V+_IN` | 程控电源 + | 主供电正端 | -| `V-_IN` | 程控电源 − | 主供电负端 | -| `CH1`–`CH24` | 各路输出 → 负载切换矩阵 → 电子负载 | 单路最大 60 A | -| `GND` | 共地 | 与电源、负载共地 | - -> **【注意】** 务必在 **程控电源输出关闭、电子负载输入关闭** 状态下接线。 - -**控制串口连接** - -| 工控机端 | SSPC 控制板端 | -| -------------- | ------------- | -| 串口扩展卡某 COM 口(如 COM1) | RS-485 A / B / GND | - -> **【提示】** 该 COM 口名称将在软件中配置为 `Devices.Sspc.PortName`。 - -## 3.3 程控电源 UDP5080-100 接线 - -UDP5080-100 通过 **LAN(TCP/IP SOCKET,端口 5025)** 与工控机通信。 - -| 项目 | 推荐值 | -| ---------- | ----------------------- | -| IP 地址 | `192.168.6.5` | -| 端口 | `5025` | -| 协议 | TCP/IP SOCKET(SCPI 风格命令) | -| 子网 | `255.255.255.0` | -| 默认网关 | `192.168.6.1`(或留空) | - -接线步骤: - -1. 将 UDP5080 后面板 LAN 口连接到工控机网卡或同网段交换机; -2. 通过电源前面板菜单设置上表 IP; -3. 在工控机执行 `ping 192.168.6.5`,应正常响应; -4. 主功率端子按 3.2 节接到 SSPC 输入端。 - -[插图:UDP5080-100 LAN 配置界面] - -## 3.4 直流电子负载 IT8702P 接线 - -IT8702P 通过 **LAN(Socket,端口 30000)** 与工控机通信。 - -| 项目 | 推荐值 | -| ---------- | ----------------------- | -| IP 地址 | `192.168.200.100` | -| 端口 | `30000` | -| 协议 | TCP/IP Socket | -| 子网 | `255.255.255.0` | - -接线步骤: - -1. 通过负载前面板系统菜单配置 IP; -2. 工控机 `ping 192.168.200.100` 验证; -3. 负载输入端 +/- 接至 SSPC 输出回路(与被测通道串联); -4. 负载默认工作模式为恒流 CC,最大电流应不超过被测通道额定值。 - -> **【提示】** 若 UDP5080 与 IT8702P 不在同一网段,可在工控机配置两块网卡或为同一网卡添加两个 IP(路由表无需修改)。 - -## 3.5 PCIe8586 高速采集卡通道分配 - -PCIe8586 用于采集 SSPC 开关瞬态波形以及功率损耗的输入端电压。默认 4 通道配置如下: - -| 物理通道 | 角色 (Role) | 推荐用途 | 量程 | -| -------- | ---------------- | ---------------- | ------ | -| CH0 | `OutputVoltage` | SSPC 输出端电压 | ±5 V | -| CH1 | `OutputCurrent` | SSPC 输出端电流 | ±5 V | -| CH2 | `InputVoltage` | SSPC 输入端电压 | ±5 V | -| CH3 | `InputCurrent` | SSPC 输入端电流 | ±5 V | - -> **【注意】** 采集卡量程为低压差分输入,被测 28 V 主回路必须经过**外部分压/电流互感器调理**后,再接入采集卡,并在软件设置中进行**标定**(详见 6.6 节)。 - -[插图:采集卡接线与外部调理板示意] - -## 3.6 COM 端口分配 - -| 设备 | 推荐 COM 口 | 默认波特率 | -| --------------- | ----------- | ---------- | -| SSPC 控制板 | COM1 | 9600 | -| 程控电源(备用) | COM2 | 9600 | -| 电子负载(备用) | COM3 | 9600 | - -> **【提示】** 程控电源与电子负载默认采用 LAN 通信;预留 COM 仅用于备份或现场临时调试。 - -## 3.7 首次上电顺序 - -按以下顺序通电,可避免感性负载尖峰冲击: - -1. 接通工控机 UPS; -2. 启动工控机,登录 Windows; -3. 接通串口扩展卡所在电源(如独立); -4. 通电程控电源(输出保持关闭); -5. 通电电子负载(输入保持关闭); -6. 启动 SSPCTester 软件(详见第 4 章); -7. 由软件 **连接所有设备**,确认 4 个设备绿灯均亮; -8. 在系统设置或首次使用页面中确认通信参数无误; -9. 进入项目信息页,开始首次测试。 - -## 3.8 首次使用前的软件检查 - -| 序号 | 检查项 | 结果 | -| ---- | ----------------------------------------------------- | ---- | -| 1 | `Config\device-profile.json` 存在且校验通过 | □ | -| 2 | 设置页四设备 IP/COM 口与现场实际一致 | □ | -| 3 | 设置页 **Mock 模式** 全部关闭 | □ | -| 4 | 采集卡 4 路通道角色、Scale/Offset 已标定,IsCalibrated 勾选 | □ | -| 5 | 项目数据路径、报告路径已确认存在并可写 | □ | - ---- - -\newpage - -# 第 4 章 软件安装与启动 - -## 4.1 安装包结构 - -软件以**绿色发布**方式提供,无需安装程序。典型目录结构: - -``` -SSPCTester\ -├── SSPCTester.UI.exe ← 主程序 -├── SSPCTester.UI.deps.json -├── SSPCTester.UI.runtimeconfig.json -├── appsettings.json ← 出厂默认配置 -├── Config\ -│ └── device-profile.json ← Modbus 24 路映射 -├── LatoFont\ ← 报告字体 -├── zh-Hans\、zh-Hant\、ja\、… ← 本地化资源 -└── *.dll ← 运行时依赖 -``` - -## 4.2 部署步骤 - -1. 将完整发布目录解压/拷贝到工控机本地磁盘(推荐 `C:\SSPCTester\`)。**不要**部署到只读目录或网络盘。 -2. 确认 `Config\device-profile.json` 存在且与现场 SSPC 控制板配置一致。 -3. 右键 `SSPCTester.UI.exe` → 属性 → 解除锁定(如系统提示)。 -4. 首次运行建议以"普通用户"启动,确保对 `%LOCALAPPDATA%\SSPCTester\` 目录有写权限。 - -> **【提示】** 升级时直接覆盖发布目录;**用户数据**(项目、报告、用户设置)保存在 `%LOCALAPPDATA%\SSPCTester\`,不会被覆盖。 - -## 4.3 关键文件清单 - -| 文件 / 目录 | 用途 | -| ----------------------------------------------------- | ------------------------------------------ | -| `SSPCTester.UI.exe` | 主程序入口 | -| `appsettings.json` | 出厂默认配置 | -| `Config\device-profile.json` | Modbus 协议与 24 路映射(关键配置文件) | -| `%LOCALAPPDATA%\SSPCTester\settings.json` | 当前用户在设置页保存的硬件配置 | -| `%LOCALAPPDATA%\SSPCTester\Projects\` | 项目数据根目录 | -| `%LOCALAPPDATA%\SSPCTester\Reports\` | 报告默认输出目录 | -| `%LOCALAPPDATA%\SSPCTester\Logs\app-YYYYMMDD.log` | 应用日志(按天滚动,保留 7 天) | - -## 4.4 启动方式 - -**方式 A — 双击启动(推荐)** - -直接双击 `SSPCTester.UI.exe`。 - -**方式 B — 通过启动脚本** - -在解决方案根目录下使用 `run.ps1`: - -```powershell -PowerShell.exe -ExecutionPolicy Bypass -File .\run.ps1 -``` - -`run.ps1` 默认启动 `publish\win-x64\SSPCTester.UI.exe`,并将工作目录设为发布目录,确保读取 `appsettings.json` 与 `Config\device-profile.json`。 - -## 4.5 启动顺序说明 - -软件启动时按下列顺序工作: - -1. 读取 `appsettings.json` 出厂默认配置; -2. 叠加用户本地配置 `%LOCALAPPDATA%\SSPCTester\settings.json`(若存在); -3. 初始化日志系统(Serilog → 文件 + UI 日志面板); -4. 构造依赖注入容器,注册四类设备驱动(Mock + 真实); -5. 创建主窗体并加载历史项目列表; -6. 若 `AutoConnect=true`,后台依次连接 4 类设备; -7. 主窗体显示,进入"浏览态"。 - -## 4.6 首次启动检查 - -软件启动后,主界面顶部应能看到 **设备连接面板**(详见 5.3)。检查项: - -- 4 个设备指示灯(SSPC、电源、负载、采集卡)显示连接状态; -- 任意一个未连接时,可点击 **连接全部**; -- 底部日志面板应能看到启动信息(蓝色 INFO 行)。 - -[插图:主窗体首次启动时的全貌] - -## 4.7 退出软件 - -通过主窗体右上角 **关闭** 按钮退出。退出时软件自动: - -1. 保存当前用户设置到 `%LOCALAPPDATA%\SSPCTester\settings.json`; -2. 依次断开 SSPC、电源、负载、采集卡; -3. 若 `Sspc.CloseAllRelaysOnDisconnect=true`,先全部关断 24 路继电器; -4. 关闭日志文件。 - -> **【注意】** 严禁通过任务管理器强制结束进程;强制结束可能导致继电器停留在通态、波形文件不完整。 - ---- - -\newpage - -# 第 5 章 主界面总览 - -## 5.1 整体布局 - -启动后,主界面分为四个区域: - -``` -┌──────────────────────────────────────────────────────────┐ -│ 顶部:标题栏 + 设备连接面板(折叠/展开)+ 设置按钮 │ -├──────────────┬───────────────────────────────────────────┤ -│ 侧栏:项目树 │ 内容区:根据状态切换不同页面 │ -│ │ - 首页 / 项目信息 / 测试主页 / 报告 / 设置 │ -├──────────────┴───────────────────────────────────────────┤ -│ 底部:日志面板(最近 500 条,可滚动) │ -└──────────────────────────────────────────────────────────┘ -``` - -[插图:主界面整体布局] - -## 5.2 浏览态与测试态 - -软件存在两种工作状态: - -| 状态 | 触发 | 侧栏项目树 | 顶部状态条 | -| -------------- | ------------------- | --------------------- | -------------------- | -| **浏览态** | 默认;测试完成或中止 | 显示全部项目,可自由切换 | 无 | -| **测试态** | 点击 **开始测试** | **仅显示当前项目** | 显示橙色"测试进行中" | - -> **【设计说明】** 测试期间设备被独占,隐藏其他项目可避免误操作。 - -## 5.3 设备连接面板 - -位于标题栏右下方。展开后包含: - -| 控件 | 含义 | -| ------------------- | ------------------------------------------------------ | -| SSPC 指示 | 绿=已连接、灰=未连接;下方文本显示"Mock"或"真实" | -| 电源指示 | 同上 | -| 负载指示 | 同上 | -| 采集卡指示 | 同上 | -| **连接全部** | 同时连接所有未连接的设备 | -| **断开全部** | 同时断开所有已连接的设备 | -| **打开设置页** | 快速进入第 6 章描述的设置页 | - -[插图:设备连接面板展开状态] - -## 5.4 侧栏项目树 - -侧栏列出当前所有项目。每个项目展开后有三个子节点: - -- **项目信息**:被测件与现场信息编辑(第 8 章); -- **测试主页**:四个测试模块的 Tab 容器(第 9–12 章); -- **报告页**:生成测试报告(第 13 章)。 - -**操作** - -- 单击项目名:选中并显示项目概况; -- 双击项目名:直接打开"项目信息"页; -- 单击子节点:切换到对应页面。 - -[插图:侧栏项目树] - -## 5.5 内容区页面切换 - -| 入口 | 显示页面 | -| -------------------- | ---------------------- | -| 启动后默认 | 首页(最近项目列表) | -| 点击 **新建项目** | 新建项目对话框 → 项目信息 | -| 项目树 → 项目信息 | 项目信息页 | -| 项目信息 → 开始测试 | 测试主页(标签页容器) | -| 项目树 → 报告页 | 报告页 | -| 标题栏 → 设置 | 设置页 | - -## 5.6 日志面板 - -底部日志面板展示最近 500 条事件,按时间倒序滚动。 - -| 等级 | 颜色 | 含义示例 | -| ------------ | ----- | --------------------------------- | -| Info(信息) | 黑/蓝 | 启动、连接成功、保存设置 | -| Success(成功)| 绿色 | 测试合格、报告生成成功 | -| Warning(警告)| 橙色 | 配置缺失、单次重试、未标定通道 | -| Error(错误)| 红色 | 通信失败、CRC 错误、文件写入失败 | - -> **【提示】** 详细历史日志请查看 `%LOCALAPPDATA%\SSPCTester\Logs\app-YYYYMMDD.log`。 - -## 5.7 颜色与图标约定 - -测试结果在表格、徽标、状态条中统一使用以下四种状态: - -| 图标 / 文本 | 颜色 | 含义 | -| ----------- | ------------- | ------------------------------------------ | -| ● 合格 | 绿 `#2e9e5b` | 所有判定项通过 | -| ● 不合格 | 红 `#d23b3b` | 任一判定项失败 | -| ● 测试中 | 蓝 `#1a73c4` | 当前正在采集 / 等待响应 | -| ● 已测 | 蓝 `#1a73c4` | 已采集但本模块无合格判定(如功率损耗) | -| ○ 未测 | 灰 `#8a929d` | 尚未执行 | - -数值(电压、电流、时间)一律使用等宽字体显示,确保小数点对齐。 - ---- - -\newpage - -# 第 6 章 系统设置 - -设置页用于配置硬件连接参数、采集卡通道、报告与项目存储路径。所有修改在点击 **保存并重新连接** 后写入用户配置文件,并尝试重新连接受影响的设备。 - -[插图:系统设置页全貌] - -## 6.1 进入设置页 - -- 标题栏右侧 **设置** 按钮;或 -- 设备连接面板 → **打开设置**。 - -## 6.2 SSPC Modbus 配置 - -| 字段 | 含义 | -| ------------------------------ | -------------------------------------------------------------------- | -| **使用 Mock** | 勾选后改用模拟驱动,无需真实串口。培训/演练时使用 | -| **启动时自动连接** | 软件启动后是否自动尝试连接 | -| **断开时全部关断** | 软件退出或断开 SSPC 时,是否自动写入全部 24 路 OFF 命令 | -| **记录原始帧** | 在日志中记录每一帧 Modbus 收发,便于排障 | -| **端口名 (PortName)** | 串口名,下拉框列出系统可用 COM 口;也可手工填写 | -| **波特率 (BaudRate)** | 默认 9600 | -| **数据位 / 校验 / 停止位** | 默认 8 / None / One | -| **读超时 (ReadTimeoutMs)** | 默认 500 ms | -| **重试次数 (Retry)** | 默认 2 | -| **设备 Profile 路径** | 默认 `Config/device-profile.json` | -| **连接 / 测试** 按钮 | 触发实际连接并显示结果 | -| **断开** 按钮 | 主动断开连接 | -| **状态** | 实时显示 "已连接" / "未连接" / "连接失败" 等 | - -> **【注意】** 若 **使用 Mock = false** 但 **PortName** 在系统中不存在,连接会失败并在日志中显示 "端口不存在"。请先在 Windows "设备管理器 → 端口" 中确认实际 COM 号。 - -## 6.3 程控电源 UDP5080-100 配置 - -| 字段 | 含义 | -| --------------------- | ------------------------------------- | -| **使用 Mock** | 模拟模式 | -| **启动时自动连接** | 是否自启动连接 | -| **IP 地址** | 默认 `192.168.6.5` | -| **端口** | 默认 `5025`(SOCKET / SCPI) | -| **测试连接** 按钮 | 建立 TCP 连接并发送身份查询,验证可达性 | -| **状态** | "已连接" / "未连接" / "超时" | - -> **【提示】** 测试连接成功后,软件会在日志中显示电源型号字符串,可据此确认对端硬件。 - -## 6.4 直流电子负载 IT8702P 配置 - -| 字段 | 含义 | -| --------------------- | ------------------------------------- | -| **使用 Mock** | 模拟模式 | -| **启动时自动连接** | 是否自启动连接 | -| **IP 地址** | 默认 `192.168.200.100` | -| **端口** | 默认 `30000` | -| **测试连接** 按钮 | 验证可达性 | -| **状态** | 同上 | - -## 6.5 PCIe8586 高速采集卡配置 - -| 字段 | 含义 | -| ----------------------------- | ----------------------------------------------------- | -| **使用 Mock** | 模拟驱动,生成逼真的 RC 上升/下降波形 | -| **启动时自动连接** | 是否自启动连接 | -| **设备列表** | 下拉框显示当前枚举到的物理采集卡(含逻辑 ID 与序列号) | -| **刷新设备** | 重新枚举 | -| **连接 / 测试** 按钮 | 打开选定卡并执行一次自检 | -| **通道数 (ChannelCount)** | 1 / 2 / 4 / 8 | -| **量程 (InputRange)** | `PlusMinus5V`(±5V)或 `PlusMinus1V`(±1V) | -| **时钟分频 (ClockDivider)** | 基准 100 MHz,分频后即采样率(如 1000 → 100 kHz) | -| **实际采样率** | 自动计算 = 100 MHz ÷ 时钟分频 | -| **Pre-Trigger (ms)** | 触发前采样窗口,默认 10 ms | -| **Post-Trigger (ms)** | 触发后采样窗口,默认 40 ms | -| **总采集时长** | = Pre + Post(默认 50 ms) | - -> **【注意】** 28 V 主功率信号必须经过外部分压或互感器调理后才能接入采集卡。请勿直接接入超出 ±5 V 量程的信号,否则可能损坏前端 AD。 - -## 6.6 采集卡通道角色与标定 - -采集卡配置区下方的通道表(DataGrid),每行对应一个物理通道: - -| 列 | 说明 | -| ----------------- | ------------------------------------------------------------------------- | -| **CH** | 物理通道号 0–7 | -| **Role** | 通道角色,决定该通道在测试中的用途: | -| | - `OutputVoltage`:SSPC 输出端电压(曲线测试必需 / 功率损耗输入端电压来源) | -| | - `OutputCurrent`:SSPC 输出端电流 | -| | - `InputVoltage`:SSPC 输入端电压(备用) | -| | - `InputCurrent`:SSPC 输入端电流(备用) | -| | - `Unconfigured`:未配置,不参与任何测试 | -| **Name** | 显示名称,可自定义中文 | -| **Scale** | 标定系数 K(工程值 = K × 采样值 + Offset) | -| **Offset** | 标定偏置 B | -| **IsCalibrated** | 是否已标定。**未勾选时,依赖该通道的真实测试会被阻止** | - -**典型标定流程** - -1. 拆除被测件,将基准信号源接入 CH0; -2. 注入已知电压 Vref(如 28.00 V); -3. 在工程值 = K × x + B 中: - - 取两个不同 Vref 值,记下采集卡读数 x₁ 与 x₂; - - 解方程:K = (Vref1 − Vref2) / (x₁ − x₂),B = Vref1 − K·x₁; -4. 填写到表格对应行,勾选 **IsCalibrated**; -5. 点击 **保存并重新连接**。 - -> **【提示】** 重新插拔分压板或更换电缆后,应重新标定。建议每三个月进行一次例行复检。 - -## 6.7 报告设置 - -| 字段 | 含义 | -| ---------- | ------------------------------------------------- | -| **保存路径** | 报告默认输出目录,默认 `%LOCALAPPDATA%\SSPCTester\Reports` | -| **浏览** | 弹出目录选择对话框 | -| **格式** | 单选;当前仅支持 PDF(Word 选项已灰显,后续版本提供) | - -## 6.8 项目数据路径 - -| 字段 | 含义 | -| ------------- | ----------------------------------------------------- | -| **项目根目录** | 所有项目存放位置,默认 `%LOCALAPPDATA%\SSPCTester\Projects` | -| **浏览** | 选择目录 | - -> **【注意】** 修改后已有项目不会自动迁移,请先手动将旧目录中的 `project.json` 与 `curves` 等内容复制到新路径,再重新启动软件。 - -## 6.9 "保存并重新连接" - -页面底部的统一保存按钮。点击后: - -1. 将所有控件值序列化到 `%LOCALAPPDATA%\SSPCTester\settings.json`; -2. 调用所有受影响设备的"断开 → 重新连接"流程; -3. 在日志面板输出每个设备的最终状态。 - -> **【提示】** 设置页修改不影响发布目录中的 `appsettings.json`。如需调整出厂默认值,请由维护人员单独修改 `appsettings.json` 并重新分发。 - -## 6.10 配置文件优先级 - -``` -出厂默认 (appsettings.json) - ↓ 覆盖 -用户配置 (%LOCALAPPDATA%\SSPCTester\settings.json) - ↓ 覆盖 -本次运行的临时修改(未保存) -``` - -> **【提示】** 若希望"恢复出厂",可直接删除 `%LOCALAPPDATA%\SSPCTester\settings.json`,下次启动时自动读取 `appsettings.json` 重建。 - ---- - -\newpage - -# 第 7 章 项目管理 - -## 7.1 项目概念 - -本系统以"**一个被测件 = 一个项目**"组织数据。一个项目内可以包含多次测试运行,但只保留最近一次完整的结果集;如需历史比对,建议另建项目并在项目名中包含序列号。 - -每个项目都对应磁盘上一个目录,结构如下: - -``` -%LOCALAPPDATA%\SSPCTester\Projects\ -└── {项目名}\ - ├── project.json ← 项目元数据 + 各模块结果 - ├── curves\ ← 曲线测试的波形原始数据 - │ ├── CH01_on_20260618_153022234.bin - │ ├── CH01_on_20260618_153022234.json - │ ├── CH01_off_20260618_153023876.bin - │ └── CH01_off_20260618_153023876.json - └── report.pdf ← 最近一次生成的报告 -``` - -## 7.2 新建项目 - -从以下任一入口打开 **新建项目** 对话框: - -- 首页右上角 **新建项目** 按钮; -- 首页空状态 **新建项目** 提示按钮; -- 侧栏底部 **+** 按钮。 - -[插图:新建项目对话框] - -| 字段 | 必填 | 说明 | -| --------------- | ---- | ------------------------------------------ | -| **项目名称** | ✓ | 唯一;用于磁盘目录名(会自动去除非法字符) | -| **被测件编号** | ✓ | 例如 `SSPC-2026-001` | -| **型号** | | 被测件型号 | -| **测试人员** | | 默认登录用户名,可手工修改 | - -点击 **创建** 后: - -1. 在项目根目录下创建 `{项目名}` 目录; -2. 写入初始 `project.json`; -3. 自动跳转到该项目的"项目信息"页(第 8 章)。 - -> **【注意】** 项目名一旦创建不可重命名(会导致旧报告中的报告编号与目录失配)。如需更名,请新建项目并手工迁移数据。 - -## 7.3 打开历史项目 - -**方式 A — 首页最近项目表** - -首页表格列出全部项目,列含义: - -| 列 | 含义 | -| --------------- | --------------------------------------------- | -| **项目名称** | 项目目录名 | -| **被测件编号** | 来自 `project.json` 中的 `Dut.SerialNumber` | -| **最近测试时间** | `LastTestedAt`,无则显示 "—" | -| **综合判定** | 合格 / 不合格 / 已测 / 未测 徽标 | -| **操作** | **打开** 按钮 | - -- 单击行 → 选中项目; -- 双击行 → 打开"项目信息"页; -- 点击 **打开** → 打开"项目信息"页。 - -**方式 B — 侧栏项目树** - -侧栏列出全部项目,单击项目名展开 3 个子节点,单击子节点即可进入对应页面。 - -## 7.4 删除 / 备份项目 - -软件本身不提供"删除项目"按钮,避免误操作。 - -- **备份**:直接拷贝 `%LOCALAPPDATA%\SSPCTester\Projects\{项目名}\` 目录到归档位置; -- **删除**:在 Windows 资源管理器中删除对应项目目录,下次启动后该项目从列表中消失。 - -> **【提示】** 已生成的 PDF 报告位于该项目目录内,如需保留请在删除项目前另存。 - -## 7.5 项目命名建议 - -为便于查找与统计,建议项目命名包含: - -``` -{产品型号}-{被测件编号}-{日期或批次} -``` - -例如:`SSPC-24P-A001-20260625`、`SSPC-A001-LOT2026Q2-003`。 - ---- - -\newpage - -# 第 8 章 项目信息与测试参数配置 - -打开项目后默认进入"项目信息"页。本页用于完善被测件资料、记录测试环境、勾选要执行的测试项。 - -[插图:项目信息页全貌] - -## 8.1 被测件信息 - -| 字段 | 含义 | -| ------------- | ------------------------------------------ | -| **设备名称** | 例如 "24 路固态功率控制器" | -| **型号** | 产品型号 | -| **编号** | 被测件序列号 / 单号;建议唯一 | -| **生产厂家** | 被测件来源 | - -## 8.2 测试现场信息 - -| 字段 | 含义 | -| ---------------- | ---------------------------------------------------------------------- | -| **测试人员** | 操作员姓名 | -| **测试日期** | 日期选择器,默认当天 | -| **环境温度 (℃)** | 建议 23 ± 5 | -| **相对湿度 (%)** | 建议 ≤ 75 | -| **大气压 (kPa)** | 建议 86 – 106 | -| **备注** | 多行文本,可记录特殊条件、被测件状态、临时设备替换等 | - -> **【注意】** 环境参数会随报告一并输出,建议按现场实测填写。 - -## 8.3 测试项选择 - -页面下方的 4 个复选框对应四大测试模块: - -| 复选框 | 对应模块 | 章节 | -| --------------- | ---------------------- | ----- | -| **基础测试** | 24 路开/关与稳定性 | 第 9 章 | -| **开启与关断曲线** | 高速波形采集与时间指标 | 第 10 章 | -| **功率损耗** | 输入/输出双端功率测量 | 第 11 章 | -| **保护功能** | 6 类保护演示 | 第 12 章 | - -> **【提示】** 这里的勾选影响两处: -> -> 1. 进入测试主页后,未勾选模块的 Tab 仍可点开但不会进入"必测"流程; -> 2. 报告生成时,可选择仅输出已勾选模块的章节(详见第 13 章)。 - -## 8.4 开始测试 - -页面右下角 **开始测试** 按钮。点击后: - -1. 软件切换到"测试态"; -2. 侧栏只保留当前项目; -3. 顶部出现橙色"测试进行中"状态条; -4. 内容区切换到"测试主页"(标签页容器),默认显示"基础测试"。 - -> **【注意】** 测试态期间,无法切换到其他项目;如需中止,点击顶部状态条的 **中止** 按钮。中止后已采集数据保留,未执行模块状态保持"未测"。 - -[插图:测试主页(标签页容器)默认视图] - ---- - -\newpage - -# 第 9 章 基础测试 - -**基础测试**用于验证 SSPC 24 路通道的开/关功能和稳定性。它是后续曲线、功率、保护测试的前提:基础不通过,后续模块通常也无法获得有效数据。 - -[插图:基础测试 Tab 页全貌] - -## 9.1 测试目的 - -- 验证每一路继电器能否按命令导通; -- 验证导通后能否读到有效电压、电流; -- 验证关断命令后输出端能否回零并稳定; -- 给出每路通道的合格 / 不合格判定。 - -## 9.2 界面布局 - -页面自上而下分为三层: - -1. **统计条**(顶部一行):已完成 X / 24、合格 X、不合格 X、未测 X; -2. **操作区**(右上角):刷新频率(2 Hz / 5 Hz)、**清空结果**、**一键测试全部**; -3. **通道表格**(主区域):24 行,每行对应一路通道。 - -| 列 | 含义 | -| ----------- | ------------------------------------------ | -| **CH** | 通道号(1–24) | -| **V** | 当前/最近一次导通时的电压(V) | -| **A** | 当前/最近一次导通时的电流(A) | -| **关断电压** | 关断命令稳定后的电压(V) | -| **状态** | 合格 / 不合格 / 测试中 / 未测 徽标 | -| **操作** | 行内 **开** / **关** 按钮 | - -## 9.3 单通道开/关流程 - -**步骤 1:点击某行的 "开"** - -软件执行: - -1. 向 SSPC 控制板发送对应物理插位的 ON 命令(Modbus 功能码 0x05,写入 0xFF00); -2. 等待响应回声并刷新该行的电压、电流; -3. 启动后台轮询任务,按"刷新频率"(2 Hz 或 5 Hz)持续读取该通道测量。 - -**步骤 2:观察读数** - -- **V** 列应稳定在被测件额定电压附近(如 28 V); -- **A** 列应等于电子负载设定值(如 1 A); -- 若读数明显偏离,可点击 **关** 终止;并检查接线、负载、电源。 - -**步骤 3:点击该行的 "关"** - -软件执行: - -1. 停止后台轮询; -2. 发送 OFF 命令(功能码 0x05,写入 0x0000); -3. 进入稳定等待:在 2 秒超时内,连续读取该通道电压; -4. 当电压 < 0.5 V 且**连续 2 次**满足该条件时,认为已稳定关断; -5. 综合开通时与关断时的结果,给出 **合格 / 不合格** 判定。 - -## 9.4 一键测试全部 - -点击右上角 **一键测试全部** 按钮,软件将自动对 CH1–CH24 依次执行"开 → 短暂稳定 → 关 → 稳定判定",并在每路完成后立刻刷新该行状态与顶部统计。 - -> **【提示】** 一键测试期间,**统计条** 实时累加;按 **中止** 可在当前通道完成后停止。 - -## 9.5 刷新频率说明 - -| 频率 | 适用 | -| -------- | ------------------------------------------------------ | -| **2 Hz** | 默认。CPU 占用低,适合 24 路并行场景或老旧工控机 | -| **5 Hz** | 更细腻的读数动态显示,适合验证负载阶跃响应或观察波动 | - -> **【注意】** 刷新频率仅影响 UI 显示;判定逻辑仍以 SSPC 控制板返回的离散测量为准。 - -## 9.6 判定准则 - -| 判定结果 | 条件 | -| ---------- | -------------------------------------------------------------------- | -| **合格** | 通信无错误 ✓ 且 导通电压 > 1.0 V ✓ 且 关断稳定(连续 2 次电压 < 0.5 V)✓ | -| **不合格** | 任一条件不满足 | -| **测试中** | 已发出 ON / OFF 命令,正在等待稳定 | -| **未测** | 尚未点击 **开** | - -稳定等待超时 **2 秒**;超时后视为不合格。 - -> **【提示】** 若被测件存在续流回路或大容性负载,关断后电压回零可能超过 2 秒,应在硬件侧补加放电电阻或在维护版本中调整阈值。 - -## 9.7 清空结果 - -**清空结果** 按钮会将当前表格中所有行的状态恢复为"未测",电压、电流清零。**已写入项目的结果不会立即被清除**,仅在下次"开始测试"或退出/重进项目时同步。 - -## 9.8 常见现象解释 - -| 现象 | 可能原因 | 处理 | -| ----------------------------- | ----------------------------------------- | ----------------------------------- | -| 导通 V 列读到 0 V | 程控电源未输出 / 主回路断线 | 检查电源面板状态、主回路 | -| 关断 V 列长期保持 1–2 V | 续流回路 / 负载电感效应 | 加放电电阻或延长稳定窗口 | -| 行状态长期为"测试中" | SSPC 控制板未响应 / 串口被其他程序占用 | 查看日志中的 Modbus 帧 / 重启软件 | -| 行状态翻红,但电压正常 | 关断稳定未满足(电压 ≥ 0.5 V 或 2 秒超时) | 见上一行 | -| 行状态翻红,电压全 0 | 通道实际未接负载或主电源关闭 | 检查接线 | - ---- - -\newpage - -# 第 10 章 开启与关断曲线测试 - -**曲线测试**通过高速采集卡同步采样 SSPC 开关瞬态,自动计算 4 个关键时间参数:**开启时间、上升时间、关断时间、下降时间**。本模块对应指标 1.1 – 1.6。 - -[插图:曲线测试 Tab 页全貌] - -## 10.1 测试目的 - -| 参数 | 定义 | -| ------------ | -------------------------------------------------------------------- | -| **开启时间** | 控制信号发出 → 输出电压达到 90% Vmax 的时间 | -| **上升时间** | 输出电压由 10% Vmax 上升到 90% Vmax 的时间 | -| **关断时间** | 控制信号撤销 → 输出电压降至 10% Vmax 的时间 | -| **下降时间** | 输出电压由 90% Vmax 下降到 10% Vmax 的时间 | - -其中 Vmax 取**采集波形电压样点 95 百分位的均值**,自动剔除瞬态尖峰。 - -## 10.2 界面布局 - -页面自上而下分为四区: - -1. **标题与说明**:模块名 + 测试基准说明; -2. **左侧参数卡**:通道选择、4 个阈值、**采集当前通道**、**在新窗口查看曲线**; -3. **右侧波形区**:上下两个波形控件——**开启曲线**(上升)与 **关断曲线**(下降); -4. **底部结果表**:CH / 开启时间 / 上升时间 / 关断时间 / 下降时间 / 状态。 - -[插图:曲线测试左右分栏视图] - -## 10.3 阈值设置 - -阈值用于判定时间参数是否合格。出厂默认值: - -| 阈值 | 默认值 | 含义 | -| ----------------- | ------ | -------------------------- | -| `MaxOnTimeMs` | 50.0 ms | 开启时间上限 | -| `MaxRiseTimeMs` | 3.0 ms | 上升时间上限 | -| `MaxOffTimeMs` | 50.0 ms | 关断时间上限 | -| `MaxFallTimeMs` | 3.0 ms | 下降时间上限 | - -> **【提示】** 阈值随项目保存(位于 `project.json` 的 `CurveThresholds` 字段),可针对不同型号被测件调整。 - -## 10.4 采集流程 - -点击 **采集当前通道** 后,软件自动执行以下步骤: - -1. **前置校验**: - - 若采集卡为真实硬件,检查至少有一个 `OutputVoltage` 角色且已标定的通道; - - 若校验失败,弹出提示并终止; -2. **置初态**:发送 OFF 命令并等待稳定(避免起点电压不稳定); -3. **开启曲线采集**: - - 启动采集卡,Pre-Trigger = 10 ms,Post-Trigger = 40 ms(共 50 ms); - - 在采集开始后 10 ms(PreTrigger 时刻)发送 ON 命令; - - 采集结束后取得"上升波形"`risingCurve`; -4. **计算上升指标**: - - $V_{max} = \text{p95}(v[i])$ - - 开启时间 = 首次 v(t) ≥ 0.9 Vmax 的时间 − 触发时刻 - - 上升时间 = (首次 v ≥ 0.9 Vmax) − (首次 v ≥ 0.1 Vmax) -5. **间歇 100 ms**; -6. **关断曲线采集**:同上,但触发时发送 OFF 命令;得到"下降波形"`fallingCurve`; -7. **计算下降指标**: - - 关断时间 = 首次 v(t) ≤ 0.1 Vmax 的时间 − 触发时刻 - - 下降时间 = (首次 v ≤ 0.1 Vmax) − (首次 v ≤ 0.9 Vmax) -8. **持久化**:波形数据保存到 `Projects\{项目名}\curves\` 目录; -9. **更新 UI**:表格新增/刷新行、绘制波形、给出 **合格 / 不合格** 判定。 - -> **【注意】** 时间基准取自 Modbus 命令的**发送时刻**,并非硬件级别的触发同步。因此,对硬件同步精度有更高要求的场合,需要使用外部触发信号配合上位机 GPIO 调用。 - -## 10.5 波形显示 - -每个波形控件展示: - -- **电压曲线**:蓝色(开启)或红色(关断); -- **网格**:浅灰,时间间隔自适应; -- **阈值辅助线**:90% Vmax 与 10% Vmax(虚线); -- **触发点标记**:纵向短线; -- **悬停光标**(鼠标移入时):显示当前点 t / V 数值。 - -支持鼠标滚轮缩放、左键拖动平移、双击复位。 - -点击 **在新窗口查看曲线** 可弹出独立全屏窗口,便于打印或截图。 - -[插图:曲线放大窗口] - -## 10.6 波形文件存储 - -每次采集都会保存两组文件(一组对应上升、一组对应下降): - -| 文件类型 | 命名样例 | 内容 | -| -------- | ----------------------------------------- | ----------------------------------- | -| `.bin` | `CH01_on_20260618_153022234.bin` | float32 小端序,多通道交错样点流 | -| `.json` | `CH01_on_20260618_153022234.json` | 采样率、触发时刻、通道角色、标定参数 | - -> **【提示】** 波形原始数据由报告生成器读取并嵌入 PDF。如需在第三方工具中复盘,可用 Python / MATLAB 按元数据中描述的格式解析。 - -## 10.7 判定准则 - -| 判定结果 | 条件 | -| ---------- | ----------------------------------------------------------------- | -| **合格** | 4 个时间指标均 ≤ 阈值 ✓ 且 数值有效(非 NaN) ✓ | -| **不合格** | 任一指标超阈值,或采样数据异常(Vmax 过低、波形不收敛) | -| **测试中** | 正在采集 | -| **未测** | 当前通道未采集 | - -## 10.8 注意事项 - -- 采集卡必须配置一个 **`OutputVoltage` 角色且已标定** 的通道,否则真实硬件下采集会被拒绝; -- 当负载为大容性时,下降时间可能显著加大,应在工程上对阈值进行评估; -- 采集前确认负载已连接,否则 Vmax 取不到有效幅值; -- 高速采集对噪声敏感,连接线缆应尽量短,避免与强电流回路并行。 - ---- - -\newpage - -# 第 11 章 功率损耗测试 - -**功率损耗测试**同时测量 SSPC 输入端与输出端的电压、电流,计算电压降、功率损耗、效率。本模块对应指标 1.7 – 1.10、1.13。 - -[插图:功率损耗测试 Tab 页全貌] - -## 11.1 测试目的 - -- 在固定工作点下,测得 SSPC 的输入功率 Pin 和输出功率 Pout; -- 计算电压降 ΔV、功率损耗 Ploss、效率 η; -- 为器件选型、热设计、电源容量评估提供数据依据。 - -## 11.2 界面布局 - -页面自上而下分为三区: - -1. **左侧参数卡**:通道选择、采集次数、采集间隔、**测量当前通道**; -2. **中部实时读数卡**:Vin / Iin / Pin、Vout / Iout / Pout、损耗 / 效率; -3. **底部汇总表**:CH / Vin / Iin / Pin / Vout / Iout / Pout / 损耗 / 效率 / 状态。 - -## 11.3 参数说明 - -| 参数 | 默认值 | 说明 | -| ------------------ | ------ | ------------------------------------- | -| **采集次数 (N)** | 5 | 单次测量内连续采样 N 次,取算术平均 | -| **采集间隔 (ms)** | 100 | 相邻两次采样的间隔 | - -总采样耗时 ≈ N × 间隔 = 500 ms(默认)。 - -## 11.4 数据来源 - -| 物理量 | 来源 | -| ------------ | -------------------------------------------------------------------- | -| **Vout** | SSPC 控制板 Modbus 测量(继电器端电压回路) | -| **Iout** | SSPC 控制板 Modbus 测量(电流互感器 / Hall 元件回路) | -| **Vin** | 高速采集卡的 `OutputVoltage` 角色通道瞬时值(外部分压后) | -| **Iin** | 等于 Iout(SSPC 为串联开关,主回路电流不分支) | - -> **【注意】** "输入端电压"在采集卡上挂在 `OutputVoltage` 角色通道,这是历史遗留命名。它实际指向 SSPC 输入端的测点。维护人员可在采集卡通道表中将 `Name` 字段改为"输入电压",但 `Role` 必须保持 `OutputVoltage`。 - -## 11.5 测量流程 - -点击 **测量当前通道**,软件执行: - -1. SSPC 打开指定通道; -2. 等待 50 ms 稳定; -3. 循环 N 次: - - 读 SSPC Modbus 测量:得到 Vout、Iout; - - 读采集卡 `OutputVoltage` 通道瞬时值:得到 Vin; - - 累加 → 间隔 IntervalMs; -4. 取平均:$\bar{V}_{in}$、$\bar{V}_{out}$、$\bar{I}$; -5. 计算衍生量并刷新实时读数 + 汇总表: - -$$ -\Delta V = \bar{V}_{in} - \bar{V}_{out} -$$ - -$$ -P_{in} = \bar{V}_{in} \cdot \bar{I},\quad P_{out} = \bar{V}_{out} \cdot \bar{I} -$$ - -$$ -P_{loss} = P_{in} - P_{out} -$$ - -$$ -\eta = \dfrac{P_{out}}{P_{in}} \times 100\% -$$ - -6. SSPC 关断该通道。 - -## 11.6 结果状态 - -| 状态 | 含义 | -| -------- | --------------------------------------------------- | -| **已测** | 已完成采集并计算了完整指标。本模块**不给出合格/不合格**判定,由质量人员对照规范评估 | -| **测试中** | 正在采集 | -| **未测** | 尚未点击 **测量当前通道** | - -> **【提示】** 若需要"自动判定",可在维护版本中在 `PowerLossRow` 中接入阈值(例如 ΔV ≤ 0.5 V、η ≥ 99 %)。 - -## 11.7 常见误差源 - -| 误差源 | 影响 | 缓解 | -| --------------------------------- | -------------------------- | ------------------------------- | -| 采样数过少(N ≤ 2) | 噪声未平均掉,η 抖动 | 增大 N 到 10 以上 | -| 负载未稳定(刚切换工作点) | 电压电流瞬态 | 采集前确认负载已稳定 ≥ 100 ms | -| 采集卡通道未标定 / Scale 偏差 | Vin 漂移 | 重新标定 | -| Modbus 电流量程精度低于实际范围 | I 分辨率不足 | 选择匹配量程的设备 Profile | -| 共模噪声进入分压板 | Vin 抖动 | 调理板加滤波 / 调整接地 | - -## 11.8 注意事项 - -- 采集卡必须有 **`OutputVoltage` 角色且已标定** 的通道,否则真实硬件下采集会被拒绝; -- 测量期间不应同时执行基础测试或曲线测试,以免竞争 SSPC 串口; -- 对效率极高(η > 99.5 %)的器件,建议提升 N 与间隔,必要时使用更高精度电流测量配置。 - ---- - -\newpage - -# 第 12 章 保护功能测试 - -**保护功能测试**用于演示 SSPC 的 6 类保护:跳闸、短路、过温、过压、欠压、限流。本模块对应指标 1.14、1.17、1.19、1.21 – 1.23。 - -> **【说明】** 当前版本保护功能采用 **演示框架**,不会真正向被测件施加破坏性故障,仅展示"如何在系统中记录与呈现保护结果"。实际故障注入需要外部专用工装,由后续版本接入。 - -[插图:保护功能测试 Tab 页全貌] - -## 12.1 测试目的 - -- 验证软件框架对 6 类保护项的记录、展示能力; -- 为后续接入真实故障注入设备建立结果数据格式; -- 形成"演示报告",配合质量评审展示规程符合性。 - -## 12.2 界面布局 - -| 区域 | 内容 | -| ---------------- | ----------------------------------------------------- | -| **顶部警告条** | 提示"当前模块为框架占位,不执行真实故障注入" | -| **左侧参数卡** | 6 个保护项复选框 + 4 个阈值输入 + **生成演示结果** | -| **右侧波形占位** | 显示"框架占位"提示 | -| **底部结果表** | 保护类型 / 触发条件 / 关断时间 / 结果 | - -## 12.3 保护项与默认触发条件 - -| 复选框 | 保护类型 | 触发条件 | 关断时间参考 | -| ------------- | -------- | ------------------------------------- | ------------ | -| **跳闸** | Trip | 电流 ≥ 1.5 × 额定电流,持续 t > 50 ms | < 80 ms | -| **短路** | Short | 输出负载阻抗 ≤ 1 mΩ | < 10 ms | -| **过温** | OverTemp | 器件温度 ≥ 85 ℃ | < 200 ms | -| **过压** | OverVolt | Vin ≥ 阈值(默认 32 V) | < 50 ms | -| **欠压** | UnderVolt | Vin ≤ 阈值(默认 22 V) | < 50 ms | -| **限流** | Limit | I ≥ 阈值(默认 1.2 A) | < 30 ms | - -## 12.4 阈值参数 - -| 阈值 | 默认值 | 说明 | -| ---------------------- | ------ | -------------- | -| **过压阈值 (V)** | 32.0 | OverVolt 触发 | -| **欠压阈值 (V)** | 22.0 | UnderVolt 触发 | -| **过流阈值 (A)** | 1.2 | Limit 触发 | -| **过温阈值 (℃)** | 85.0 | OverTemp 触发 | - -## 12.5 生成演示结果 - -1. 勾选要演示的保护项; -2. 必要时修改阈值; -3. 点击 **生成演示结果**; -4. 结果表自动填充每个勾选项的演示数据(关断时间在合理范围内随机模拟,状态固定为 Pass)。 - -## 12.6 结果表字段 - -| 列 | 含义 | -| -------------- | ------------------------------------------ | -| **保护类型** | Trip / Short / OverTemp / ... | -| **触发条件** | 文本描述(如 "I ≥ 1.5 × Irated") | -| **关断时间 (ms)** | 演示数据,符合 12.3 表的参考范围 | -| **结果** | Pass(演示模式恒为 Pass) | - -## 12.7 注意事项 - -- 演示结果**不代表被测件真实保护性能**,不可作为型式试验依据; -- 报告输出包含本模块时,应在备注栏注明"保护项为框架演示数据"; -- 后续接入真实故障注入硬件时,本表字段保持兼容,只是结果来源改变。 - ---- - -\newpage - -# 第 13 章 测试报告 - -完成一项或多项测试后,使用本模块生成 PDF 报告。 - -[插图:测试报告页全貌] - -## 13.1 进入报告页 - -- 侧栏 → 项目 → **报告页**; -- 或者完成全部测试后,软件提示"前往报告页"。 - -## 13.2 报告内容勾选 - -| 复选框 | 内容 | -| --------------------- | ----------------------------------- | -| **封面 + 综合判定** | 必选;包含报告标题、被测件信息、综合判定徽标、签名区 | -| **基础测试** | 是否包含基础测试 24 行表格 | -| **开启与关断曲线** | 是否包含曲线测试表格与嵌入波形图 | -| **功率损耗** | 是否包含功率损耗汇总表 | -| **保护功能** | 是否包含保护功能结果表 | - -## 13.3 文件名与路径 - -| 字段 | 说明 | -| ----------- | ---------------------------------------------------- | -| **文件名** | 默认 `项目名_YYYYMMDD.pdf`,可手工修改 | -| **保存路径** | 默认取自系统设置的报告路径;可点击 **浏览** 修改 | -| **上次输出路径** | 显示最近一次生成的完整文件路径,可点击 **打开文件夹** | - -**建议文件名格式** - -``` -{项目名}_{被测件编号}_{YYYYMMDD}.pdf -``` - -例如:`SSPC-A001_SSPC-2026-001_20260625.pdf`。 - -## 13.4 生成报告流程 - -1. 勾选要包含的章节; -2. 修改文件名(如需要); -3. 点击 **生成报告**; -4. 软件依次: - - 调用 `ProjectStore.SaveAsync` 持久化最新项目数据; - - 调用 `ReportGenerator.Generate` 用 QuestPDF 渲染 PDF; - - 写入目标路径; - - 在日志面板与"上次输出路径"显示结果。 -5. 点击 **打开文件夹** 可直接定位到 PDF。 - -## 13.5 报告结构 - -报告统一采用 A4 纸张、深蓝标题、表格化展示。 - -**封面** - -- 报告标题("固态功率控制器动态参数测试报告") -- 报告编号:`SPC-YYYYMMDD-XXXXX`(自动生成) -- 产品信息:名称、型号、编号、生产厂家 -- 测试日期、测试人员 -- 编制 / 审核 / 批准 签名区(空格供手工签字) - -**报告体** - -| 章节 | 内容 | -| ---------------- | -------------------------------------------------------------------- | -| 被测件 + 现场信息 | 双栏表格 | -| 基础测试 | 24 行 × 4 列(CH / V / A / 状态) | -| 曲线测试 | N 行 × 5 列(CH + 4 时间指标 + 状态),每行后附上升与下降波形图 | -| 功率损耗 | N 行 × 9 列(CH / Vin / Iin / Pin / Vout / Iout / Pout / 损耗 / 效率) | -| 保护功能 | 6 行(保护类型 / 触发条件 / 关断时间 / 结果) | -| 综合判定 | 大号徽标 + 文字结论 | - -**页眉 / 页脚** - -- 页眉:报告编号 + 项目名称 -- 页脚:页码 X / Y + 生成时间 - -## 13.6 综合判定逻辑 - -综合判定根据项目中所有结果集(`BasicResults`、`CurveResults`、`PowerResults`、`ProtectResults`)的状态取最差值: - -| 优先级(从高到低) | 综合判定 | -| ---------- | -------- | -| 1. 任一不合格 | 不合格 | -| 2. 全部合格 | 合格 | -| 3. 有测量但无判据 | 已测 | -| 4. 仍在执行 | 进行中 | -| 5. 全部未执行 | 未测 | - -> **【提示】** 功率损耗模块只产生"已测"状态,不会拉低综合判定;保护功能演示数据为 Pass,不会拉低综合判定。 - -## 13.7 报告样张 - -[插图:测试报告封面样张] - -[插图:测试报告内页(基础测试表格)] - -[插图:测试报告内页(曲线测试 + 波形图)] - -## 13.8 注意事项 - -- 报告生成依赖项目目录写权限;如遇 "拒绝访问" 错误,请检查路径或换到本地用户目录; -- 若曲线测试章节波形丢失(`curves/` 目录文件被外部清理),报告中对应位置会显示"波形数据缺失"; -- 当前仅支持 PDF;后续会提供 Word/DOCX 输出。 - ---- - -\newpage - -# 第 14 章 端到端操作演练 - -本章以"新建项目 → 完成四项测试 → 生成报告"为主线,给出一次完整的现场操作演练,便于新员工快速上手。 - -> **【场景设定】** 被测件为某型号 24 路 SSPC,序列号 `SSPC-2026-001`,常温常压环境,由测试员 **张三** 执行。 - -## 14.1 准备 - -### 14.1.1 硬件准备 - -1. 按 3.1 节布置完成; -2. 程控电源 UDP5080-100 已通过 LAN 接入工控机网卡,可 `ping 192.168.6.5`; -3. 电子负载 IT8702P 已通过 LAN 接入工控机第二张网卡(或同一网卡多 IP),可 `ping 192.168.200.100`; -4. SSPC 控制板已通过 RS-485 接入 `COM1`; -5. 采集卡 4 路通道按 3.5 节接线并完成标定; -6. 急停按钮就位、UPS 正常; -7. 被测件已上电(程控电源仍**保持输出关闭**)。 - -### 14.1.2 软件启动 - -1. 双击 `C:\SSPCTester\SSPCTester.UI.exe`; -2. 进入主界面后展开设备连接面板; -3. 点击 **连接全部**; -4. 等待 4 个设备指示灯依次变绿; -5. 若任一设备未连接,进入 **设置** 检查 6.2 – 6.5 节描述的参数。 - -## 14.2 新建项目 - -1. 首页 → **新建项目**; -2. 填写: - - 项目名称:`SSPC-A001-20260625` - - 被测件编号:`SSPC-2026-001` - - 型号:`SSPC-24P-A` - - 测试人员:`张三` -3. 点击 **创建**; -4. 软件跳转至"项目信息"页。 - -## 14.3 填写项目信息 - -| 字段 | 填入 | -| -------- | -------------------------- | -| 设备名称 | 24 路固态功率控制器 | -| 型号 | SSPC-24P-A | -| 编号 | SSPC-2026-001 | -| 生产厂家 | XX 公司 | -| 测试人员 | 张三 | -| 测试日期 | 2026-06-25 | -| 环境温度 | 23 | -| 相对湿度 | 55 | -| 大气压 | 101 | -| 备注 | 入厂复检;常温常压 | - -勾选全部 4 项测试: - -- ✓ 基础测试 -- ✓ 开启与关断曲线 -- ✓ 功率损耗 -- ✓ 保护功能 - -[插图:项目信息页填写完成状态] - -## 14.4 开始测试 - -1. 点击右下 **开始测试**; -2. 软件切换到测试态,顶部出现橙色"测试进行中"; -3. 默认显示"基础测试"Tab。 - -## 14.5 执行基础测试 - -1. 在程控电源前面板设置:电压 28 V、限流 5 A、**开输出**; -2. 在电子负载前面板设置:CC 模式、电流 1.0 A、**开输入**; -3. 在软件中将刷新频率选择为 **2 Hz**; -4. 点击 **一键测试全部**; -5. 观察统计条:已完成 X / 24 持续递增; -6. 等待 24 路全部完成(典型 60 – 90 秒); -7. 检查统计:合格 24、不合格 0;如有不合格行,记录通道号并按 15.3 节排查。 - -[插图:基础测试完成后的 24 行表格] - -## 14.6 执行曲线测试 - -1. 切换到 **开启与关断曲线** Tab; -2. 阈值保持默认(5 / 3 / 5 / 3 ms); -3. 选择通道:`CH1`; -4. 点击 **采集当前通道**; -5. 等待约 200 – 300 ms,开启与关断波形依次显示; -6. 检查时间参数是否落在阈值内(默认全部 < 5 ms); -7. 改选 `CH2`、`CH3`、`CH4`,重复采集; -8. 必要时点击 **在新窗口查看曲线** 进行复核; - -> **【提示】** 实际验收一般覆盖 24 路全部;本节为节约篇幅仅演示 4 路。 - -[插图:曲线测试 4 路完成后的视图] - -## 14.7 执行功率损耗测试 - -1. 切换到 **功率损耗** Tab; -2. 参数保持默认(采集 5 次、间隔 100 ms); -3. 选择通道:`CH1`,点击 **测量当前通道**; -4. 中部实时读数显示: - - Vin ≈ 28.05 V,Iin ≈ 1.000 A - - Vout ≈ 27.92 V,Iout ≈ 1.000 A - - 损耗 ≈ 0.13 W,效率 ≈ 99.54 % -5. 表格新增 CH1 一行; -6. 切换 `CH2`、`CH3`、`CH4`,重复测量。 - -[插图:功率损耗测试完成后的实时读数与汇总表] - -## 14.8 生成保护功能演示结果 - -1. 切换到 **保护功能** Tab; -2. 勾选全部 6 项保护; -3. 阈值保持默认; -4. 点击 **生成演示结果**; -5. 表格出现 6 行 Pass 状态记录。 - -## 14.9 生成报告 - -1. 中止测试或等待四模块完成后,软件回到浏览态; -2. 侧栏 → 项目 → **报告页**; -3. 勾选全部章节; -4. 文件名修改为 `SSPC-A001_SSPC-2026-001_20260625.pdf`; -5. 点击 **生成报告**; -6. 等待 2 – 5 秒,日志面板提示"报告生成成功"; -7. 点击 **打开文件夹**,确认 PDF 已生成; -8. 双击 PDF 复核内容:封面、各章节表格、波形图、综合判定徽标。 - -[插图:报告页生成成功提示] - -## 14.10 收尾 - -1. 在软件中点击 **断开全部**; -2. 关闭电子负载输入、程控电源输出; -3. 退出软件(顶部 × 按钮,软件自动保存设置并断开设备); -4. 关闭电子负载主电源、程控电源主电源; -5. 拔下被测件; -6. 整理工装与电缆。 - ---- - -\newpage - -# 第 15 章 故障排除与常见问题 - -本章按"启动 → 设备连接 → 测量 → 判定 → 报告 → 性能"的故障类别整理,每条均给出现象、可能原因、处理步骤。 - -## 15.1 启动类故障 - -### 15.1.1 双击 `.exe` 无任何反应 - -| 可能原因 | 处理 | -| ----------------------------------------- | ------------------------------------------------------- | -| 缺少 .NET 8 Desktop Runtime | 安装 .NET 8 Desktop Runtime;或使用自包含发布版本 | -| 文件被解压锁定 | 右键 `.exe` → 属性 → **解除锁定** | -| 杀毒软件拦截 | 在杀毒软件中将发布目录加入信任名单 | -| 用户权限不足 | 以普通用户启动;不要使用"以管理员身份运行" | - -### 15.1.2 启动后立即崩溃;日志提示 device-profile.json 加载失败 - -| 可能原因 | 处理 | -| ----------------------------------------- | ------------------------------------------------------- | -| `Config\device-profile.json` 缺失 | 从发布包中恢复该文件 | -| 文件被改成非 UTF-8 或语法错误 | 用 VS Code 打开校验 JSON 语法 | -| `schemaVersion` 不是 `"1.0"` | 与现场 SSPC 控制板版本不匹配;联系维护人员获取匹配版本 | -| 24 路 `physicalSlot` 不连续 / 寄存器偏移重复 | 用比对工具检查与原始发布版本的差异 | - -### 15.1.3 启动后日志中提示"用户设置加载失败,使用默认配置" - -| 可能原因 | 处理 | -| ----------------------------------------- | ------------------------------------------------------- | -| `%LOCALAPPDATA%\SSPCTester\settings.json` 损坏 | 删除该文件,软件下次启动自动重建 | - -## 15.2 设备连接类故障 - -### 15.2.1 SSPC 连接失败 / 状态显示"未连接" - -**现象**:基础测试点击 **开** 无反应,日志显示 `SerialPort: 端口不存在` 或 `Modbus: 读超时`。 - -| 可能原因 | 处理 | -| ----------------------------------------- | ------------------------------------------------------- | -| **PortName 不存在** | 设置 → SSPC → 端口名 改为系统实际的 COM 号 | -| 串口被其他程序占用 | 关闭串口调试助手 / 串口监视工具 | -| 串口扩展卡驱动未正常加载 | 重启工控机;必要时重装驱动 | -| 设备 Profile 路径填错 | 改回默认 `Config/device-profile.json` | -| `UseMock = false` 但 SSPC 控制板未通电 | 通电 SSPC 控制板 | -| 波特率 / 校验位与现场不符 | 改为现场实际参数(默认 9600 8-N-1) | - -### 15.2.2 电源 UDP5080 连接失败 - -**现象**:设备指示灯灰色;日志显示 `Socket connect 192.168.6.5:5025 timeout`。 - -| 可能原因 | 处理 | -| ------------------ | ----------------------------------------------- | -| IP 不通 | 工控机执行 `ping 192.168.6.5`;检查网卡 IP 在同网段 | -| 网线 / 交换机故障 | 重插网线,更换网口 | -| 电源前面板未启用 LAN | 进入电源系统菜单确认 LAN 已启用 | -| 防火墙拦截 5025 端口 | 在 Windows 防火墙允许 SSPCTester.UI.exe | - -### 15.2.3 电子负载 IT8702P 连接失败 - -| 可能原因 | 处理 | -| ---------------------- | --------------------------------------------------- | -| IP 不通 | 同 15.2.2 | -| 端口非 30000 | 修改设置或更新负载侧端口 | -| 负载前面板未开启 LAN | 系统菜单启用 LAN | -| 负载主电源未开 / 急停按下 | 排查硬件 | - -### 15.2.4 PCIe8586 采集卡连接失败 - -| 可能原因 | 处理 | -| ----------------------------------- | ----------------------------------------------------- | -| 采集卡未在 PCIe 槽中识别 | 关机重插;BIOS 中检查 PCIe 槽状态 | -| 厂商驱动 (`ACTS1000_64.dll`) 缺失 | 从厂商驱动包重新安装 | -| 选错逻辑 ID | 设置 → 采集卡 → **刷新设备** → 重新选择 | -| 工控机系统时间与采集卡时钟不一致 | 同步系统时间;重启采集卡 | -| 采集卡前端进入保护 | 检查输入信号是否超量程,断电 30 秒后重连 | - -## 15.3 测量类异常 - -### 15.3.1 基础测试"继电器无反应" - -> **现场最常见故障。** - -| 可能原因 | 处理 | -| ------------------------------------------ | ------------------------------------------------------- | -| 设置中 SSPC `UseMock = false`,但 `PortName` 不存在 | 改为正确 COM 口 | -| 串口波特率与控制板不一致 | 改为现场实际波特率 | -| 主电源未开 | 通电 | -| SSPC 控制板掉电 | 检查 24 V 供电 | -| `device-profile.json` 的从站地址与现场不符 | 由维护人员校对 | - -### 15.3.2 功率测试读数全为 0 - -| 可能原因 | 处理 | -| ---------------------------------------------- | --------------------------------------------- | -| 采集卡处于 Mock 模式 | 设置 → 采集卡 → 关闭 Mock | -| 采集卡通道没有 `OutputVoltage` 角色 / 未标定 | 设置 → 通道表 → 配置 + 标定 | -| Scale = 0 或未填 | 重新计算并填写 Scale / Offset | -| 外部分压板未通电 | 通电 | -| Modbus 读取的电压 / 电流寄存器返回 0 | 检查负载电流是否真的为 0 | - -### 15.3.3 曲线测试报错"未找到已标定的 OutputVoltage 通道" - -| 可能原因 | 处理 | -| ---------------------------------------------- | --------------------------------------------- | -| 采集卡通道 Role 全为 `Unconfigured` | 设置 → 至少配置一个 `OutputVoltage` | -| 已配置但 `IsCalibrated = false` | 按 6.6 节完成标定并勾选 | - -### 15.3.4 曲线时间指标显示 NaN 或异常大 - -| 可能原因 | 处理 | -| ---------------------------------------------------------- | --------------------------------------------- | -| Vmax 取不到(电压幅值过小) | 检查负载是否接通、量程是否合适 | -| 波形未在采集窗口内完成跳变(开/关时间 > 50 ms) | 增大 PostTriggerMs | -| 采集卡通道接错位置 / 极性反 | 重新接线 | -| 噪声极大导致首次过阈值误判 | 检查地线 / 屏蔽 / 缩短线缆 | - -### 15.3.5 基础测试"关断电压"列长期偏高 - -| 可能原因 | 处理 | -| ---------------------- | --------------------------------------------- | -| 续流回路 / 电感储能 | 加放电电阻 | -| 测量端有偏置 | 用万用表复核 SSPC 输出端实际电压 | -| Modbus 测量量程偏差 | 校对 `device-profile.json` 中 `voltage.range` | - -## 15.4 判定类异常 - -### 15.4.1 全部 24 路基础测试不合格 - -- 多半为 SSPC 通信不通;先按 15.3.1 排查。 - -### 15.4.2 曲线测试个别通道偏慢 - -| 可能原因 | 处理 | -| ------------------------------ | ------------------------------------- | -| 该通道实际开关速度慢 | 记录并由质量评审决定 | -| 该通道接线接触不良 | 紧固接线 | -| 采集卡端外部调理板老化 | 由维护人员复检调理板 | - -### 15.4.3 多次重测结果不一致 - -| 可能原因 | 处理 | -| ------------------------------ | ------------------------------------- | -| 电源 / 负载未稳定 | 测前等待 ≥ 100 ms | -| 噪声较大 | 检查接地 / 屏蔽 / 远离强电源 | -| 室温 / 器件温度大幅变化 | 控制环境条件 | - -## 15.5 报告生成失败 - -| 可能原因 | 处理 | -| --------------------------------- | ------------------------------------------- | -| 报告路径无写权限 | 改到 `%LOCALAPPDATA%` 内 / 当前用户文档目录 | -| 文件名包含非法字符(`*`, `?`, `:`) | 修改文件名 | -| 同名文件被 Word/Adobe Reader 打开 | 关闭打开该 PDF 的程序 | -| 曲线波形文件 (`curves\`) 被外部清理 | 重新执行曲线测试或在备注中说明 | - -## 15.6 性能与稳定性 - -### 15.6.1 一键测试 24 路过慢 - -| 可能原因 | 处理 | -| ------------------------- | ------------------------------------------ | -| 单路稳定等待 2 秒被频繁触发 | 检查负载是否过容性 | -| 串口超时 + 重试 2 次 | 检查串口稳定性 | -| 工控机 CPU 占用过高 | 关闭无关程序 | - -### 15.6.2 高刷新频率下 UI 卡顿 - -- 将刷新频率改回 2 Hz; -- 关闭日志面板的实时滚动; -- 升级工控机内存到 8 GB+。 - -### 15.6.3 长时间运行后日志面板"刷不动" - -- 日志面板上限 500 条;超出后自动丢弃旧条目,属正常现象; -- 历史日志在文件中完整保留。 - ---- - -\newpage - -# 第 16 章 维护与日志 - -## 16.1 日志位置 - -| 类别 | 位置 | 说明 | -| ---------- | ----------------------------------------------------- | ---------------------------------------- | -| 应用日志 | `%LOCALAPPDATA%\SSPCTester\Logs\app-YYYYMMDD.log` | 按天滚动,自动保留最近 7 天 | -| UI 日志 | 主界面底部日志面板 | 最近 500 条;重启后清空 | -| 项目日志 | `Projects\{项目名}\project.json` 末尾的事件字段 | 仅记录关键事件 | - -> **【提示】** 报障时请同时附 `app-YYYYMMDD.log` 与对应项目目录。 - -## 16.2 项目数据备份 - -**何时备份** - -- 现场验收前后; -- 软件升级前; -- 月度归档。 - -**备份方法** - -将 `%LOCALAPPDATA%\SSPCTester\Projects\` 整个目录复制到外部归档存储(移动硬盘 / NAS / 归档服务器)。 - -**还原方法** - -将归档目录还原到目标工控机的同路径下,启动软件即可在首页列表中看到。 - -## 16.3 配置升级 - -### 16.3.1 升级 `appsettings.json` - -- 出厂默认配置升级一般跟随 `SSPCTester.UI.exe` 升级一起发布; -- 用户在设置页保存过的值不会被覆盖(位于 `%LOCALAPPDATA%`)。 - -### 16.3.2 升级 `device-profile.json` - -> **【注意】** 该文件直接决定 24 路通道与硬件的映射关系,必须由授权维护人员替换。 - -升级步骤: - -1. 对原文件取 SHA256 校验值并归档; -2. 停止 SSPCTester; -3. 将新文件替换到 `Config\device-profile.json`; -4. 启动 SSPCTester,确认日志中显示"profile 加载成功,schemaVersion 1.0,channels 24"; -5. 用 **基础测试 → 一键测试全部** 复核 24 路与现场实际配对正确。 - -## 16.4 软件升级流程 - -1. 下载新版本发布包(zip); -2. 备份 `%LOCALAPPDATA%\SSPCTester\` 整目录; -3. 退出 SSPCTester; -4. 将旧版发布目录改名(保留以便回滚); -5. 解压新版到原路径; -6. 启动 SSPCTester,检查版本号; -7. 在设置页确认参数; -8. 进行一次基础测试回归。 - -## 16.5 例行检查表 - -| 周期 | 检查项 | -| ---- | ------------------------------------------------------------ | -| 每日 | 接地、急停、电源、负载初始状态 | -| 每周 | 设置页 Mock 模式、版本号、磁盘剩余空间 | -| 每月 | `app-*.log` 中错误统计;归档项目目录 | -| 每季 | 采集卡通道标定复检(详见 6.6 节);接插件检查 | -| 每年 | 程控电源 / 电子负载送计量校准;操作员资格复审 | - -## 16.6 联系与支持 - -- 软件技术支持:SPC-DynaTest 项目组 -- 现场维护:由用户单位维修部门负责 -- 厂商接口:UDP5080-100、IT8702P、PCIe8586 厂商技术支持热线 - ---- - -\newpage - -# 附录 A 23 项指标完整定义表 - -> **说明**:本附录列出 SSPC 动态参数测试的 23 项标准指标。表格指明每项指标的定义、典型测试方法、判定准则,以及在本软件中的覆盖位置。"软件位置"列指向本手册中对应章节,"未实现"表示当前版本由人工评估。 - -| 编号 | 中文名 | 单位 | 定义 | 测试方法 | 判定准则 | 软件位置 | -| ---- | ------------------ | ---- | ----------------------------------------------------------------- | --------------------------------------------------------- | ------------------------------------- | --------------- | -| 1.1 | 开启时间 | ms | 控制信号有效 → 输出电压上升到 90% Vmax 的时间 | 高速采集 + 上升沿百分位检测 | ≤ MaxOnTimeMs(默认 50) | 第 10 章 | -| 1.2 | 关闭时间 | ms | 控制信号撤销 → 输出电压下降到 10% Vmax 的时间 | 高速采集 + 下降沿百分位检测 | ≤ MaxOffTimeMs(默认 50) | 第 10 章 | -| 1.3 | 控制延迟时间 | ms | 控制端电平变化 → 内部驱动信号到达 | 厂商方法;本软件等同于"开启时间"近似 | 由型号规范确定 | 第 10 章(近似) | -| 1.4 | 释放延迟时间 | ms | 控制端撤销 → 内部驱动撤销 | 同上 | 由型号规范确定 | 第 10 章(近似) | -| 1.5 | 负载电压上升/下降时间 | ms | 负载侧电压 10% – 90% Vmax 的过渡时间 | 高速采集 + 双阈值检测 | ≤ MaxRiseTimeMs / MaxFallTimeMs(默认 3)| 第 10 章 | -| 1.6 | 输出电压超调量 | % | 开启后稳态值与瞬态峰值之差与稳态值之比 | 高速采集 + 峰值/稳态计算 | 由规范确定 | 未实现(人工评估)| -| 1.7 | 通态电阻 Ron | mΩ | 稳态导通时,输出电流为 I 时的等效串联电阻 = (Vin − Vout) / I | 功率损耗模块测得 ΔV / I | ≤ 规范值 | 第 11 章 | -| 1.8 | 通态压降 ΔV | V | 稳态导通时,输入端 − 输出端电压差 | 功率损耗模块直接测得 | ≤ 规范值 | 第 11 章 | -| 1.9 | 电压降 | V | 同 1.8 ΔV | 同上 | ≤ 规范值 | 第 11 章 | -| 1.10 | 功率损耗 Ploss | W | Pin − Pout | 功率损耗模块直接计算 | ≤ 规范值 | 第 11 章 | -| 1.11 | 待机功耗 | W | 控制信号 OFF、输出无电流时器件自身消耗 | 厂商方法 | 由规范确定 | 未实现(人工评估)| -| 1.12 | 控制功耗 | W | 控制端电源消耗 | 厂商方法 | 由规范确定 | 未实现(人工评估)| -| 1.13 | 效率 η | % | Pout / Pin × 100% | 功率损耗模块直接计算 | ≥ 规范值 | 第 11 章 | -| 1.14 | 跳闸时间 | ms | 过流条件持续后 → 输出电压降至 10% Vmax 的时间 | 故障注入 + 高速采集(演示) | ≤ 规范值 | 第 12 章(演示) | -| 1.15 | I²t 容量 | A²·s | 跳闸前允许的电流平方积分 | 厂商方法 | 由规范确定 | 未实现 | -| 1.16 | 过载能力 | ×Irated | 允许短时承受的过载倍数 | 厂商方法 | 由规范确定 | 未实现 | -| 1.17 | 短路保护 | — | 输出阻抗 ≤ 1 mΩ 条件下能否正常保护 | 故障注入(演示) | 保护动作,结果 = Pass | 第 12 章(演示) | -| 1.18 | 短路分断能力 | A | 短路保护时允许的最大电流 | 厂商方法 | 由规范确定 | 未实现 | -| 1.19 | 过温保护 | ℃ | 温度达到阈值后器件断开 | 故障注入 / 加热实验 | 保护动作,结果 = Pass | 第 12 章(演示) | -| 1.20 | 温升 | ℃ | 长期工作下结温与环温之差 | 厂商方法 | 由规范确定 | 未实现 | -| 1.21 | 过压保护 | V | Vin ≥ 阈值后器件断开 | 故障注入 | 保护动作 | 第 12 章(演示) | -| 1.22 | 欠压保护 | V | Vin ≤ 阈值后器件断开或拒绝导通 | 故障注入 | 保护动作 | 第 12 章(演示) | -| 1.23 | 限流保护 | A | I ≥ 阈值后器件限流或断开 | 故障注入 | 保护动作 | 第 12 章(演示) | - -> **【提示】** 编号 1.3 / 1.4 / 1.6 / 1.11 / 1.12 / 1.15 / 1.16 / 1.18 / 1.20 在当前软件版本中由人工评估;后续版本将逐步纳入自动测试。 - -\newpage - -# 附录 B Modbus 通信参数参考 - -## B.1 串口参数 - -| 项目 | 值 | -| ------------ | ----------------- | -| 协议 | Modbus-RTU | -| 波特率 | 9600 | -| 数据位 | 8 | -| 校验 | None | -| 停止位 | 1 | -| 读超时 | 500 ms | -| 重试次数 | 2 | -| CRC | CRC16-Modbus(低字节在前) | - -## B.2 24 路继电器映射 - -> 物理插位为业务唯一编号。从站地址、线圈号仅在协议层使用。 - -| 物理插位 | 从站 | 线圈 | 物理插位 | 从站 | 线圈 | -| -------- | ---- | ---- | -------- | ---- | ---- | -| 1 | 1 | 7 | 13 | 2 | 3 | -| 2 | 1 | 6 | 14 | 2 | 2 | -| 3 | 1 | 5 | 15 | 2 | 1 | -| 4 | 1 | 4 | 16 | 2 | 0 | -| 5 | 1 | 3 | 17 | 3 | 7 | -| 6 | 1 | 2 | 18 | 3 | 6 | -| 7 | 1 | 1 | 19 | 3 | 5 | -| 8 | 1 | 0 | 20 | 3 | 4 | -| 9 | 2 | 7 | 21 | 3 | 3 | -| 10 | 2 | 6 | 22 | 3 | 2 | -| 11 | 2 | 5 | 23 | 3 | 1 | -| 12 | 2 | 4 | 24 | 3 | 0 | - -**写继电器**(功能码 0x05) - -| 字段 | 值 | -| -------- | -------- | -| 功能码 | 0x05 | -| 开启值 | 0xFF00 | -| 关闭值 | 0x0000 | - -## B.3 电压采集寄存器偏移 - -> 电压采集从站固定为 `4`,功能码 `0x03`,起始寄存器 `0`,寄存器数 `24`,量程 `100.0` V,公式 `B`:实际值 = DATA / 100。 - -| 物理插位 | 偏移 | 物理插位 | 偏移 | 物理插位 | 偏移 | 物理插位 | 偏移 | -| -------- | ---- | -------- | ---- | -------- | ---- | -------- | ---- | -| 1 | 0 | 7 | 6 | 13 | 12 | 19 | 18 | -| 2 | 1 | 8 | 7 | 14 | 13 | 20 | 19 | -| 3 | 2 | 9 | 8 | 15 | 14 | 21 | 20 | -| 4 | 3 | 10 | 9 | 16 | 15 | 22 | 21 | -| 5 | 4 | 11 | 10 | 17 | 16 | 23 | 22 | -| 6 | 5 | 12 | 11 | 18 | 17 | 24 | 23 | - -## B.4 电流采集寄存器偏移 - -> 电流采集从站固定为 `5`,功能码 `0x03`,起始寄存器 `0`,寄存器数 `24`,量程 `60.0` A,公式 `A`:实际值 = DATA / 10000 × 60,有符号 (Int16 二进制补码)。 - -| 物理插位 | 偏移 | 物理插位 | 偏移 | -| -------- | ---- | -------- | ---- | -| 1 | 4 | 13 | 2 | -| 2 | 19 | 14 | 21 | -| 3 | 5 | 15 | 3 | -| 4 | 18 | 16 | 20 | -| 5 | 6 | 17 | 8 | -| 6 | 17 | 18 | 15 | -| 7 | 7 | 19 | 9 | -| 8 | 16 | 20 | 14 | -| 9 | 0 | 21 | 10 | -| 10 | 23 | 22 | 13 | -| 11 | 1 | 23 | 11 | -| 12 | 22 | 24 | 12 | - -## B.5 CRC16-Modbus 校验 - -| 项目 | 值 | -| -------- | ------------------------------- | -| 多项式 | 0xA001(反向 0x8005) | -| 初值 | 0xFFFF | -| 字节序 | 低字节在前 | - -## B.6 数据公式 - -| 公式标识 | 计算式 | 适用 | -| -------- | ------------------------------- | ------------------ | -| A | 实际值 = DATA / 10000 × range | 电流(双向量程) | -| B | 实际值 = DATA / range | 电压(单向量程) | - -\newpage - -# 附录 C PCIe8586 采集卡技术参数 - -## C.1 硬件规格 - -| 项目 | 规格 | -| ---------- | -------------------------- | -| 形态 | PCIe x4 | -| 操作系统 | Windows x64 | -| 通道数 | 8(可配置启用 1 / 2 / 4 / 8)| -| 采样率 | 基准 100 MHz,可分频 | -| 量程 | ±5 V 或 ±1 V(软件可选) | -| 原始数据 | 16 位有符号 / 无符号码值 | -| DMA 布局 | 多通道交错(CH0[0]、CH1[0]、CH0[1]、CH1[1]…)| -| 同步触发 | 软件触发;可选外部触发 | -| 厂商 DLL | `ACTS1000_64.dll` | - -## C.2 调用顺序(参考) - -``` -EnumerateDevices → Open → Configure → Start → SoftwareTrigger - → Read Loop → Stop → ReleaseAD → Close -``` - -## C.3 通道角色枚举 - -| Role | 中文 | 用途 | -| ---------------- | ---------- | ------------------------------------ | -| `OutputVoltage` | 输出电压 | 曲线测试电压源;功率损耗输入端电压来源 | -| `OutputCurrent` | 输出电流 | 曲线测试电流参考 | -| `InputVoltage` | 输入电压 | 备用 | -| `InputCurrent` | 输入电流 | 备用 | -| `Unconfigured` | 未配置 | 该通道不参与任何测试 | - -## C.4 采样率换算 - -$$ -\text{ActualSampleRateHz} = \frac{100\,000\,000}{\text{ClockDivider}} -$$ - -| ClockDivider | 实际采样率 | -| -----------: | ----------- | -| 1 | 100 MHz | -| 10 | 10 MHz | -| 100 | 1 MHz | -| **1000** | **100 kHz** | -| 10000 | 10 kHz | - -> **【提示】** 100 kHz 已能满足 SSPC 毫秒级开关瞬态采样需求;更高采样率会显著增加数据量。 - -## C.5 触发与采集窗口 - -| 字段 | 默认 | 说明 | -| ---------------- | ---- | ------------------------------------------ | -| `PreTriggerMs` | 10 | 触发前采样时长(用于观察控制信号到达前波形) | -| `PostTriggerMs` | 40 | 触发后采样时长(观察整个开/关跳变过程) | -| 总时长 | 50 | Pre + Post | - -\newpage - -# 附录 D 程控电源 UDP5080-100 接入参数 - -## D.1 默认 LAN 参数 - -| 项目 | 值 | -| -------- | --------------- | -| 协议 | TCP/IP SOCKET | -| IP | `192.168.6.5` | -| 端口 | `5025` | -| 子网 | `255.255.255.0` | -| 命令风格 | SCPI | - -## D.2 SCPI 命令示例 - -| 操作 | 命令 | -| ------------ | ----------------------------- | -| 身份查询 | `*IDN?` | -| 设置电压 | `VOLT 28.0` | -| 设置限流 | `CURR 5.0` | -| 输出开启 | `OUTP ON` | -| 输出关闭 | `OUTP OFF` | -| 读电压 | `MEAS:VOLT?` | -| 读电流 | `MEAS:CURR?` | - -> **【提示】** 实际接入由 SSPCTester 内部驱动封装,用户无需在 UI 中手工发送 SCPI。 - -## D.3 注意事项 - -- 主回路连接前务必将 OUTP 设为 OFF; -- 修改 IP 后请刷新 ARP 或重启网卡; -- 长时间不使用时关闭 OUTP,延长寿命。 - -\newpage - -# 附录 E 直流电子负载 IT8702P 接入参数 - -## E.1 默认 LAN 参数 - -| 项目 | 值 | -| -------- | ------------------- | -| 协议 | TCP/IP Socket | -| IP | `192.168.200.100` | -| 端口 | `30000` | -| 子网 | `255.255.255.0` | - -## E.2 工作模式 - -| 模式 | 含义 | 应用示例 | -| ---- | ---------- | --------------------------------- | -| CC | 恒流 | 设置 1.0 A,模拟典型负载(默认) | -| CV | 恒压 | 不常用 | -| CR | 恒阻 | 配合特殊故障演示 | -| CP | 恒功率 | 配合特殊故障演示 | - -## E.3 注意事项 - -- 接入主回路前确保输入关闭; -- CC 模式下电流设置应不超过被测 SSPC 通道额定电流; -- 长时间大功率回吸前确认散热风道无遮挡。 - -\newpage - -# 附录 F 术语表 - -| 术语 | 中文 / 英文 | 解释 | -| -------------- | ---------------------- | -------------------------------------------------------------------- | -| SSPC | Solid-State Power Controller | 固态功率控制器,本系统的被测对象 | -| 物理插位 | Physical Slot | 24 路 SSPC 通道的业务编号,1 – 24 | -| 模块地址 | Slave Address | Modbus 协议中的从站编号(1 / 2 / 3) | -| 线圈 | Coil | Modbus 中可写的离散输出,功能码 0x05 | -| 寄存器 | Register | Modbus 中可读的 16 位数据单元,功能码 0x03 | -| 寄存器偏移 | Register Offset | 在 24 寄存器回包中的零基位置(0 – 23) | -| CRC | Cyclic Redundancy Check | 循环冗余校验,本系统使用 CRC16-Modbus | -| Modbus-RTU | — | 工业串行通信协议,本系统 SSPC 控制板使用 | -| 跳脱 / 跳闸 | Trip | 过流保护动作 | -| I²t | — | 电流平方积分,过流保护熔断特征量 | -| 额定电流 | Rated Current | 器件规定条件下可长期承受的最大电流 | -| 上升时间 | Rise Time | 信号从 10% 到 90% 幅值的时间 | -| 下降时间 | Fall Time | 信号从 90% 到 10% 幅值的时间 | -| 电压降 | Voltage Drop | 输入端 − 输出端电压之差 | -| 功率损耗 | Power Loss | 输入功率 − 输出功率 | -| 效率 | Efficiency | 输出功率 / 输入功率 | -| DAQ | Data Acquisition | 数据采集,特指本系统的 PCIe8586 高速采集卡 | -| 触发 | Trigger | 采集卡开始记录数据的同步信号 | -| 浏览态 | Browsing Mode | 默认状态,可自由切换项目 | -| 测试态 | Testing Mode | 测试进行中,设备独占 | -| 综合判定 | Overall Status | 所有结果状态的最差值 | -| Mock | — | 模拟驱动,用于无硬件环境下的演练 | -| Profile | Device Profile | 设备描述文件,本系统指 `device-profile.json` | - -\newpage - -# 附录 G 配置文件样本 - -## G.1 `appsettings.json`(节选) - -```json -{ - "Devices": { - "MockMode": false, - "Sspc": { - "UseMock": false, - "AutoConnect": true, - "PortName": "COM1", - "BaudRate": 9600, - "DataBits": 8, - "Parity": "None", - "StopBits": "One", - "ReadTimeoutMs": 500, - "Retry": 2, - "DeviceProfilePath": "Config/device-profile.json", - "CloseAllRelaysOnDisconnect": true, - "LogRawFrames": true, - "ModuleAddresses": [ 1, 2, 3 ], - "ChannelsPerModule": 8 - }, - "PowerSupply": { - "UseMock": false, - "AutoConnect": true, - "IpAddress": "192.168.6.5", - "Port": 5025 - }, - "Load": { - "UseMock": false, - "AutoConnect": true, - "IpAddress": "192.168.200.100", - "Port": 30000 - }, - "Daq": { - "UseMock": false, - "AutoConnect": true, - "LogicalDeviceId": 0, - "ChannelCount": 4, - "InputRange": "PlusMinus5V", - "ClockDivider": 1000, - "PreTriggerMs": 10, - "PostTriggerMs": 40, - "Channels": [ - { "PhysicalChannel": 0, "Role": "OutputVoltage", "Name": "输出电压", "Scale": 1.0, "Offset": 0.0, "IsCalibrated": true }, - { "PhysicalChannel": 1, "Role": "OutputCurrent", "Name": "输出电流", "Scale": 1.0, "Offset": 0.0, "IsCalibrated": true }, - { "PhysicalChannel": 2, "Role": "InputVoltage", "Name": "输入电压", "Scale": 1.0, "Offset": 0.0, "IsCalibrated": true }, - { "PhysicalChannel": 3, "Role": "InputCurrent", "Name": "输入电流", "Scale": 1.0, "Offset": 0.0, "IsCalibrated": true } - ] - } - }, - "Storage": { - "ProjectsRoot": "%LOCALAPPDATA%\\SSPCTester\\Projects" - }, - "Report": { - "SavePath": "%LOCALAPPDATA%\\SSPCTester\\Reports", - "Format": "Pdf" - } -} -``` - -## G.2 `device-profile.json`(简化样例,仅前 4 路) - -```json -{ - "schemaVersion": "1.0", - "profileId": "spc-dynatest-modbus-24ch", - "serialDefaults": { - "baudRate": 9600, "dataBits": 8, "parity": "None", - "stopBits": 1, "readTimeoutMs": 500, "retry": 2, - "protocol": "ModbusRTU" - }, - "frame": { - "registerBytes": 2, "dataByteOrder": "BigEndian", - "crc": "CRC16Modbus", "crcByteOrder": "LittleEndian" - }, - "relay": { - "functionCodeWrite": 5, - "onValue": "0xFF00", "offValue": "0x0000" - }, - "voltage": { - "slave": 4, "functionCodeRead": 3, - "startRegister": 0, "registerCount": 24, - "range": 100.0, "unit": "V", - "formula": "B", "signed": false - }, - "current": { - "slave": 5, "functionCodeRead": 3, - "startRegister": 0, "registerCount": 24, - "range": 60.0, "unit": "A", - "formula": "A", "signed": true - }, - "channels": [ - { "physicalSlot": 1, "relay": { "slave": 1, "coil": 7 }, - "voltage": { "registerOffset": 0 }, "current": { "registerOffset": 4 } }, - { "physicalSlot": 2, "relay": { "slave": 1, "coil": 6 }, - "voltage": { "registerOffset": 1 }, "current": { "registerOffset": 19 } }, - { "physicalSlot": 3, "relay": { "slave": 1, "coil": 5 }, - "voltage": { "registerOffset": 2 }, "current": { "registerOffset": 5 } }, - { "physicalSlot": 4, "relay": { "slave": 1, "coil": 4 }, - "voltage": { "registerOffset": 3 }, "current": { "registerOffset": 18 } } - // …其余 20 行省略 - ] -} -``` - -\newpage - -# 附录 H 文件目录与默认路径速查 - -| 类型 | 路径 | -| ---------------- | ------------------------------------------------------------- | -| 主程序 | `<安装目录>\SSPCTester.UI.exe` | -| 出厂配置 | `<安装目录>\appsettings.json` | -| Modbus 映射 | `<安装目录>\Config\device-profile.json` | -| 用户设置 | `%LOCALAPPDATA%\SSPCTester\settings.json` | -| 项目数据 | `%LOCALAPPDATA%\SSPCTester\Projects\` | -| 报告输出 | `%LOCALAPPDATA%\SSPCTester\Reports\` | -| 应用日志 | `%LOCALAPPDATA%\SSPCTester\Logs\app-YYYYMMDD.log` | -| 单项目目录 | `Projects\{项目名}\` | -| 单项目元数据 | `Projects\{项目名}\project.json` | -| 单项目波形 | `Projects\{项目名}\curves\CH{nn}_{on|off}_{时间戳}.{bin|json}` | -| 单项目报告 | `Projects\{项目名}\report.pdf` | - -`<安装目录>` 推荐 `C:\SSPCTester\`。`%LOCALAPPDATA%` 通常为 `C:\Users\<用户名>\AppData\Local`。 - -\newpage - -# 附录 I 修订记录 - -| 版本 | 日期 | 修订内容 | 修订人 | 审核 / 批准 | -| ----- | ---------- | ----------------- | -------- | ----------- | -| V1.0 | 2026-06-25 | 首次正式发布 | | | -| | | | | | -| | | | | | - ---- - -**— 文档结束 —** -