# EthetcatTest **Repository Path**: YoungForm/EthetcatTest ## Basic Information - **Project Name**: EthetcatTest - **Description**: No description available - **Primary Language**: C# - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-12-29 - **Last Updated**: 2025-12-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ETG自检工具功能需求与实现规划 ## 一、项目概述 ### 1.1 项目定位 - **核心目标**:开发符合ETG官方标准的EtherCAT一致性测试工具,作为官方CTT(ET9400)的互补预测试解决方案 - **目标用户**:设备制造商、系统集成商、开发工程师 - **技术架构**:.NET后端 + React前端,支持Web远程访问和桌面应用 ### 1.2 标准对齐 - **核心规范**:ETG.7010 EtherCAT一致性指南(v1.2.3/v1.2.4) - **协议标准**:ETG.5000系列规范 - **物理层规范**:ETG.7000.2、ETG.1300 - **行业行规**:CiA402驱动器行规 - **安全协议**:FSoE(需ET9403授权) ## 二、功能需求分析 ### 2.1 核心功能模块 #### 2.1.1 协议一致性测试引擎 **功能需求**: - 状态机验证模块:检查Init→Pre-Oper→Safe-Oper→Oper状态转换 - 邮箱通信测试器:自动化测试CoE/SoE协议 - 设备标识验证:Vendor ID、Product Code等与ESI文件一致性检查 - ESI文件有效性验证:XML格式解析、同步管理器配置、PDO映射验证 **技术要求**: - 支持100BASE-TX全双工通信 - 实时监控EtherCAT帧传输 - 错误计数器监控(RX/TX错误、链路丢失) #### 2.1.2 配置与文件管理子系统 **功能需求**: - ESI文件解析器:XML格式解析,生成设备对象字典树状图 - SII/EEPROM编辑器:十六进制/表格双视图编辑,自动校验 - 对象字典验证工具:比对设备实际配置与ESI描述 - 差异对比工具:高亮显示不一致项,建议修正方案 **技术要求**: - 支持ETG标准ESI XML格式 - 实时配置校验 - 配置快照和历史版本管理 #### 2.1.3 性能与压力测试框架 **功能需求**: - 分布式时钟同步测试:亚微秒级(≤1µs)同步精度验证 - 长期稳定性测试:可配置数小时至数天的连续运行 - 总线负载测试:模拟不同网络负载条件 - 实时性能监控:通信周期稳定性、抖动分析 **技术要求**: - 配合CU2508实时扩展硬件(可选) - 支持纳秒级时间戳记录 - 性能趋势分析和报告生成 #### 2.1.4 诊断与问题定位系统 **功能需求**: - 错误关联分析:自动关联ETG规范条款,推荐修复方案 - 网络拓扑可视化:实时显示网络拓扑,标记异常节点 - 趋势对比仪表板:历史数据对比,突出性能退化 - Wireshark集成:PCAP文件导出,协议解码分析 **技术要求**: - 实时数据采集和存储 - 多维度数据分析 - 智能诊断算法 #### 2.1.5 自动化测试与CI/CD集成 **功能需求**: - CLI命令行接口:参数化调用,支持批量处理 - RESTful API:标准化Web服务接口 - TwinCAT集成模式:专用插件支持 - 分级测试流水线:代码提交→夜间构建→版本发布 **技术要求**: - 支持JSON/XML格式输出 - 质量门禁机制(通过率≥95%) - 自动化报告生成 #### 2.1.6 安全与FSoE扩展 **功能需求**: - FSoE安全测试:基于"黑色通道"原则,符合IEC 61508 SIL 3 - 安全容器验证:帧计数器、CRC校验 - 授权管理:ET9403扩展包授权验证 - 安全数据管理:受控输出,加密存储 **技术要求**: - 模块化授权体系 - 离线激活支持 - 审计追踪功能 ### 2.2 用户界面需求 #### 2.2.1 集中式仪表板 - 实时状态监控:网络拓扑图、主站/从站连接状态 - 测试进度显示:通过率饼图、失败项统计 - 一键式测试启动:拖拽ESI文件自动识别设备类型 - 多任务并行管理:同时开启多个测试会话 #### 2.2.2 配置管理界面 - ESI文件上传和解析:自动生成对象字典树状图 - SII/EEPROM可视化编辑:表格和十六进制双视图 - 差异对比工具:高亮显示不一致项 #### 2.2.3 测试执行界面 - 渐进式测试引导:智能测试序列排序 - 可中断执行:暂停/继续/重新开始 - 实时反馈:通信报文统计、错误计数器变化、时钟同步曲线 #### 2.2.4 结果呈现与报告 - 多层次报告系统:实时看板、详细报告、导出功能 - 支持格式:PDF、Excel、HTML、JSON、XML - 问题追踪集成:一键生成JIRA/GitLab Issue ### 2.3 非功能性需求 #### 2.3.1 性能要求 - 测试执行响应时间:<1秒 - 实时数据更新频率:≥10Hz - 支持并发测试会话:≥5个 - 报告生成时间:<30秒 #### 2.3.2 可靠性要求 - 系统可用性:≥99.5% - 数据完整性:100%保证 - 错误恢复机制:自动重试和故障转移 #### 2.3.3 安全性要求 - 用户权限分级管理 - 数据加密存储和传输 - 审计日志记录 - FSoE数据受控输出 #### 2.3.4 兼容性要求 - Windows 10/11支持 - 主流浏览器支持(Chrome/Edge/Firefox) - 100Mbit全双工网卡兼容 - Wireshark集成兼容 ## 三、技术架构设计 ### 3.1 系统架构 ``` ┌─────────────────────────────────────────────────┐ │ React前端应用 │ │ (仪表板/配置管理/测试执行/结果展示) │ └──────────────────┬──────────────────────────────┘ │ HTTP/WebSocket ┌──────────────────┴──────────────────────────────┐ │ .NET Core Web API │ │ (RESTful API / SignalR实时通信) │ └──────┬──────────────┬──────────────┬─────────────┘ │ │ │ ┌──────┴──────┐ ┌─────┴──────┐ ┌────┴──────┐ │ 测试引擎 │ │ 文件管理 │ │ 数据存储 │ │ 核心模块 │ │ 子系统 │ │ 服务 │ └──────┬──────┘ └─────┬──────┘ └────┬──────┘ │ │ │ ┌──────┴──────────────┴──────────────┴──────┐ │ EtherCAT协议栈 / 硬件接口层 │ │ (网络通信 / ESC控制器 / 实时扩展硬件) │ └─────────────────────────────────────────────┘ ``` ### 3.2 技术栈选型 #### 后端技术栈 - **框架**:.NET 6/7/8(长期支持版本) - **Web框架**:ASP.NET Core Web API - **实时通信**:SignalR - **ORM**:Entity Framework Core - **数据库**:SQL Server / PostgreSQL - **日志**:Serilog - **配置管理**:IConfiguration + appsettings.json - **依赖注入**:内置DI容器 #### 前端技术栈 - **框架**:React 18+ - **状态管理**:Redux Toolkit / Zustand - **UI组件库**:Ant Design / Material-UI - **图表库**:ECharts / Recharts - **网络请求**:Axios - **实时通信**:SignalR Client - **构建工具**:Vite / Create React App #### 集成工具 - **网络分析**:Wireshark API集成(PCAP导出) - **TwinCAT集成**:.NET COM组件 / ADS.NET库 - **CI/CD**:Jenkins / GitLab CI / Azure DevOps ### 3.3 核心模块设计 #### 3.3.1 协议测试引擎模块 ``` EtherCATTestEngine/ ├── StateMachine/ │ ├── StateValidator.cs # 状态机验证 │ └── StateTransitionTest.cs # 状态转换测试 ├── Mailbox/ │ ├── CoETester.cs # CoE通信测试 │ ├── SoETester.cs # SoE通信测试 │ └── MailboxProtocolHandler.cs # 邮箱协议处理 ├── DeviceIdentification/ │ ├── VendorIdValidator.cs # Vendor ID验证 │ └── ProductCodeValidator.cs # Product Code验证 └── ESI/ ├── ESIParser.cs # ESI文件解析 └── ESIValidator.cs # ESI有效性验证 ``` #### 3.3.2 配置管理模块 ``` ConfigurationManager/ ├── ESIParser/ │ ├── XMLParser.cs # XML解析 │ └── ObjectDictionaryBuilder.cs # 对象字典构建 ├── SIIEditor/ │ ├── EEPROMReader.cs # EEPROM读取 │ ├── EEPROMWriter.cs # EEPROM写入 │ └── SIIValidator.cs # SII数据验证 └── DiffTool/ ├── ConfigComparator.cs # 配置对比 └── FixSuggestionEngine.cs # 修复建议引擎 ``` #### 3.3.3 性能测试模块 ``` PerformanceTest/ ├── DistributedClock/ │ ├── DCSyncTester.cs # 分布式时钟同步测试 │ └── JitterAnalyzer.cs # 抖动分析 ├── StabilityTest/ │ ├── LongRunTest.cs # 长期稳定性测试 │ └── StressTest.cs # 压力测试 └── BusLoad/ ├── LoadSimulator.cs # 负载模拟 └── LoadAnalyzer.cs # 负载分析 ``` #### 3.3.4 数据存储模块 ``` DataAccess/ ├── Models/ │ ├── TestResult.cs # 测试结果模型 │ ├── DeviceConfig.cs # 设备配置模型 │ └── TestCase.cs # 测试用例模型 ├── Repositories/ │ ├── TestResultRepository.cs # 测试结果仓储 │ └── ConfigRepository.cs # 配置仓储 └── DbContext/ └── EtherCATDbContext.cs # EF Core上下文 ``` ## 四、实现规划 ### 4.1 开发阶段划分 #### 第一阶段:基础架构搭建(4-6周) **目标**:完成项目框架、基础模块和核心协议测试功能 **任务清单**: 1. 项目初始化和架构搭建 - 创建.NET Web API项目结构 - 配置React前端项目 - 设置数据库和ORM - 配置日志和依赖注入 2. 核心协议测试引擎 - 实现EtherCAT网络通信基础层 - 开发状态机验证模块 - 实现邮箱通信测试器(CoE/SoE) - 开发设备标识验证功能 3. ESI文件解析基础 - XML解析器实现 - 对象字典数据结构构建 - ESI有效性基础验证 4. 基础UI框架 - React项目搭建和路由配置 - 仪表板基础布局 - 设备连接状态显示 **交付物**: - 可运行的基础框架 - 基础协议测试功能(状态机、邮箱通信) - 简单的Web界面 #### 第二阶段:配置管理与文件处理(4-5周) **目标**:完成ESI解析、SII编辑和配置对比功能 **任务清单**: 1. ESI文件完整解析 - 完整XML Schema支持 - 对象字典树状图生成 - PDO映射解析和验证 - 同步管理器配置检查 2. SII/EEPROM编辑器 - EEPROM读写接口实现 - 十六进制/表格双视图 - 数据有效性实时校验 - 配置保存和加载 3. 差异对比工具 - 配置对比算法实现 - 高亮显示不一致项 - 修复建议引擎 - 对比报告生成 4. 配置管理UI - ESI文件上传界面 - 对象字典可视化树 - SII编辑器界面 - 差异对比界面 **交付物**: - 完整的ESI解析和验证功能 - SII/EEPROM编辑工具 - 配置对比和修复建议功能 #### 第三阶段:性能测试与诊断(5-6周) **目标**:实现性能测试框架和诊断系统 **任务清单**: 1. 分布式时钟同步测试 - 时钟同步精度测量(≤1µs) - 抖动分析和报告 - CU2508硬件集成(可选) - 实时同步曲线绘制 2. 长期稳定性和压力测试 - 可配置测试序列 - 长期运行监控 - 总线负载模拟 - 性能趋势分析 3. 诊断系统 - 错误关联分析引擎 - ETG规范条款映射 - 网络拓扑可视化 - 历史趋势对比 4. Wireshark集成 - PCAP文件导出 - 协议解码支持 - 测试项与抓包数据关联 5. 性能测试UI - 测试配置界面 - 实时性能监控仪表板 - 趋势图表展示 - 诊断结果可视化 **交付物**: - 完整的性能测试框架 - 诊断和问题定位系统 - Wireshark集成功能 #### 第四阶段:自动化与CI/CD集成(4-5周) **目标**