# master-e2m-test **Repository Path**: yqg.tom/master-e2m-test ## Basic Information - **Project Name**: master-e2m-test - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-15 - **Last Updated**: 2025-12-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # E2M 模板式开发工具测试上位机工程 > 本工程为 SOEM + imgui 搭建、用于测试 E2M 工具生成代码的可行性 开发板端代码仓库: [https://github.com/POMIN-163/sdk-bsp-rzn2l-etherkit-e2m-test](https://github.com/POMIN-163/sdk-bsp-rzn2l-etherkit-e2m-test) ## 测试截图 ![-](image/test.png) ## 开发板端(仅在EtherKit测试通过)生成代码例子 ```c // ===== EtherCAT → Modbus RTU 映射表(自动生成)===== // 生成时间: 2025-11-29 00:12:38 // 共 10 个对象 e2m_mdata_t mdata_list[] = { { 0x3000, 0x01, 0x0000, "状态字" }, // 设备1运行状态 { 0x3001, 0x01, 0x0001, "转速设定" }, // 目标转速 { 0x3002, 0x01, 0x0002, "实际转速" }, // 当前转速 { 0x3003, 0x01, 0x0003, "运行电流" }, // 电流反馈 { 0x3004, 0x02, 0x0010, "阀门开度" }, // 调节阀开度 { 0x3005, 0x02, 0x0001, "管道压力" }, // 压力值 { 0x3006, 0x03, 0x0002, "环境温度" }, // 温度传感器 { 0x3007, 0x01, 0x0005, "故障代码" }, // 报警信息 { 0x3008, 0x01, 0x0004, "运行时间高" }, // 累计运行时间高16位 { 0x3009, 0x01, 0x0009, "运行时间低" } // 累计运行时间低16位 }; UINT16 mdata_count = 10; // ============================================== ``` ## 主站端生成代码例子 ```c // ===== 主站 SDO 对象配置(自动生成)===== // 生成时间: 2025-11-29 00:12:38 // 共 10 个对象 static SDO_Object sdo_objects[] = { { 0x3000, u8"状态字", 0, "", true }, // 设备1运行状态 设备 1 寄存器 0 { 0x3001, u8"转速设定", 0, "", true }, // 目标转速 设备 1 寄存器 1 { 0x3002, u8"实际转速", 0, "", true }, // 当前转速 设备 1 寄存器 2 { 0x3003, u8"运行电流", 0, "", true }, // 电流反馈 设备 1 寄存器 3 { 0x3004, u8"阀门开度", 0, "", true }, // 调节阀开度 设备 2 寄存器 16 { 0x3005, u8"管道压力", 0, "", true }, // 压力值 设备 2 寄存器 1 { 0x3006, u8"环境温度", 0, "", true }, // 温度传感器 设备 3 寄存器 2 { 0x3007, u8"故障代码", 0, "", true }, // 报警信息 设备 1 寄存器 5 { 0x3008, u8"运行时间高", 0, "", true }, // 累计运行时间高16位 设备 1 寄存器 4 { 0x3009, u8"运行时间低", 0, "", true } // 累计运行时间低16位 设备 1 寄存器 9 }; static const int sdo_count = 10; // ============================================== ``` ## ESI 生成例子(OD节点) ```xml #x3000 状态字 UINT 16 设备1运行状态 rw #x3001 转速设定 UINT 16 目标转速 rw #x3002 实际转速 UINT 16 当前转速 rw #x3003 运行电流 UINT 16 电流反馈 rw #x3004 阀门开度 UINT 16 调节阀开度 rw #x3005 管道压力 UINT 16 压力值 rw #x3006 环境温度 UINT 16 温度传感器 rw #x3007 故障代码 UINT 16 报警信息 rw #x3008 运行时间高 UINT 16 累计运行时间高16位 rw #x3009 运行时间低 UINT 16 累计运行时间低16位 rw ``` ## 使用方式 仅需使用 pip 安装 Jinja 工具后,**进入 e2m 目录中**运行 python3 e2m_bridge_gen.py,即可得到 output 目录下的生成代码,复制到开发板端工程、TwinCAT ESI 路径即可使用