# Excel2Modbus **Repository Path**: kzirui/excel2modbus ## Basic Information - **Project Name**: Excel2Modbus - **Description**: 将excel的内容转换成agile_modbus开源库的modbus的C语言代码 - **Primary Language**: Python - **License**: MIT - **Default Branch**: lts-v1.0.x - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2025-03-05 - **Last Updated**: 2025-09-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Excel2Modbus #### 介绍 将excel的内容转换成agile_modbus开源库的modbus的C语言代码 #### 安装教程 1. Python 版本要求:Python 3.12+ 2. Python 依赖安装,在工程目录下执行 `pip install -r requirements.txt` 会自动安装相关依赖; 3. 使用教程 `python excel2modbus.py ../demo/demo.yaml` 会在 demo 目录下生成一个 output 目录,里面有对应的 C 语言文件代码; 4. 将生成的代码放入工程即可,如果用户需要自动生成的使用从机,从机的处理函数需要使用本仓库 agile_modbus/slave_util 下的代码; #### Yaml 的格式说明参考 config_template.yaml 介绍了该工程的 yaml 文件如何书写。本工程的 yaml 采用层级结构,excel 文件用于描述寄存器点表的信息,而 yaml 文件用于辅助配置生成规则: yaml 的组成最上层为 excel 和 debug 两个元素: - excel:用于描述 excel 表格对象的一个数组 - path 描述要被分析的一张 excel 的存放位置; - output 生成的代码路径; - sheets:一个描述 excel 里面一个 worksheet 的对象数组 - name:worksheet 的名称,需要和 excel 里面的名称对应上; - c_struct_name:用于生成寄存器结构体的名称; - c_struct_ptr_prefix:用于添加在寄存器结构体的前缀; - c_struct_ptr_suffix:用于添加在寄存器结构体的后缀; - c_enum_prefix:枚举类型的前缀(枚举的类型名称定义在excel内部); - c_enum_suffix:枚举类型的后缀(枚举的类型名称定义在excel内部); - c_enum_element_prefix:枚举元素的前缀(枚举元素的名称义在excel的内部); - c_enum_element_suffix:枚举元素的后缀(枚举元素的名称义在excel的内部); - c_slave_code:是否生成基于 aigle_modbus 的从机代码; - c_code_atomic:是否对寄存器类型生成 atomic 原子变量支持; - slave_count:生成的从机个数,在有些项目中,一个端口/设备可能需要支持作为多个从机设备,因此提供这个变量由于提供多地址多从机的支持; - slaves:从机对象的一个数组,每个元素由 name 和 address(从机的id号)组成; - debug: - json_file:用于输出分析 excel 后产生的结果 - json_output:json文件的输出路径