# EcatTools **Repository Path**: amoeee/EcatTools ## Basic Information - **Project Name**: EcatTools - **Description**: ethercat工具,还未完善。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-10 - **Last Updated**: 2026-03-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EcatTools 基于 `Tauri 2 + React + TypeScript + Rust + SOEM` 的 EtherCAT 主站桌面工具,面向调试、文件解析与从站运维。 ## 功能概览 - 主页:网卡选择、从站扫描、主站状态概览 - 从站信息:从站状态切换、SDO/PDO 读写、对象字典查看与写入 - ESI 解析器:解析 ESI XML,提取厂商、设备、PDO、SM、Mailbox 信息 - ESI 校验:校验根节点、PDO/SM、CoE、CiA402 关键对象、EEPROM 字段 - ENI 解析器:解析 ENI XML,提取主站周期、从站拓扑、对象字典 - 伺服助手:CiA402 状态机操作、目标值下发、PDO 曲线监控 - EEPROM 工具:解析 EEPROM/ESI 内容,支持永久写入 EEPROM 与 Alias ## 技术栈 - 前端:React 19 + TypeScript + Vite - 桌面容器:Tauri 2 - 后端:Rust 2021 - EtherCAT:SOEM(通过本地桥接进程 `ecattools_soem_bridge.exe`) ## 运行环境 - 操作系统:Windows 10/11(当前实机 EtherCAT 功能以 Windows 为主) - Node.js:建议 18+ - Rust:建议 1.70+ - CMake:3.16+ - 网卡驱动:Npcap(安装时勾选 WinPcap API 兼容) ## 快速开始 ```powershell npm install npm run tauri dev ``` ## 构建与检查 ```powershell # 前端类型检查 npx tsc --noEmit # 前端构建 npm run build # Rust 检查与测试 cd src-tauri cargo check cargo test ``` ## SOEM 集成说明 - 首次进行扫描/通信时,程序会尝试自动定位 SOEM 源码并构建桥接可执行文件 - 默认从 Cargo 缓存中查找 SOEM 源码;也可手动指定 - 若提示 `wpcap/Packet DLL` 缺失,通常是 Npcap 未安装或未开启 WinPcap 兼容 可选环境变量: - `ECATTOOLS_SOEM_SOURCE`:SOEM 源码目录(包含 `CMakeLists.txt`) - `ECATTOOLS_SOEM_BRIDGE_PATH` / `SOEM_BRIDGE_PATH`:指定桥接程序路径 - `ECATTOOLS_SOEM_SLAVEINFO_PATH` / `SOEM_SLAVEINFO_PATH`:指定 `slaveinfo.exe` 路径 ## 目录结构 ```text . ├─ src/ # React 前端 │ ├─ App.tsx # 主界面与各工具页面 │ ├─ api.ts # Tauri invoke API 封装 │ └─ types.ts # 前端类型定义 ├─ src-tauri/ │ ├─ src/ethercat.rs # EtherCAT 核心逻辑与命令 │ ├─ src/lib.rs # Tauri 命令注册 │ ├─ native/soem_bridge/ # SOEM 桥接 C 工程 │ └─ tauri.conf.json # Tauri 配置 ├─ ecat_xml/ # 示例 XML(如 digital_io.xml) └─ README.md ``` ## 常见问题 - 扫描不到网卡或从站:先确认 Npcap 是否安装且启用 WinPcap 兼容模式 - 桥接程序构建失败:检查 CMake、MSVC Build Tools、Rust 工具链是否完整 - 指定网卡失败:确保网卡名来自工具内“刷新网卡”列表 - EEPROM 写入失败:确认目标从站位置正确,且设备允许 EEPROM 永久写入 ## 当前版本 - 应用版本:`0.1.1`