# Modbus RTU for Linux **Repository Path**: dejin_S/modbus-rtu-for-linux ## Basic Information - **Project Name**: Modbus RTU for Linux - **Description**: Modbus RTU for Linux 是一个专注于实现Modbus RTU协议的开源项目,适用于Linux平台,旨在为工业自动化提供稳定高效的通信支持。 - **Primary Language**: C++ - **License**: AFL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-11-05 - **Last Updated**: 2025-11-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Modbus RTU Tool for linux ## 概述 这是一个基于C++实现的Modbus RTU通信工具,支持通过串口与Modbus设备进行通信。工具提供了完整的Modbus RTU协议实现,包括寄存器查询、单寄存器写入和多寄存器写入功能,并带有命令行交互界面。 ### 项目结构 ``` . ├── CMakeLists.txt # CMake构建配置 ├── include # 头文件目录 │ ├── modbus_base.h # Modbus基础功能 │ ├── modbus_interface.h # Modbus接口定义 │ ├── modbus_tool.h # Modbus工具类 │ └── serial_interface.h # 串口接口类 ├── src # 源文件目录 │ ├── modbus_base.cpp # Modbus基础实现 │ ├── modbus_tool.cpp # Modbus工具实现 │ └── serial_interface.cpp # 串口实现 └── example └── main.cpp # 主程序示例 ``` ## 特性 - 🚀 完整的Modbus RTU协议支持(功能码03/06/10) - 🔧 跨平台串口通信(基于POSIX标准) - 📊 详细的十六进制数据收发显示 - ⚡ 多线程接收处理 - 🔒 线程安全的串口操作 - 📡 支持自定义回调函数处理设备响应 - 🛠️ CMake构建系统支持 ## 构建指南 ### 依赖项 - CMake (>=3.10) - C++17兼容编译器 - POSIX线程库 ### 构建步骤 ```bash # 创建构建目录 mkdir build && cd build # 生成构建系统 cmake .. # 编译项目 make # 安装可执行文件 (可选) sudo make install ``` ## 使用说明 ### 基本用法 ```bash ./modbus_demo [baud_rate] ``` 示例: ```bash ./modbus_demo /dev/ttyUSB0 9600 ``` ### 命令列表 | 命令 | 功能描述 | 示例参数 | |-------------|-----------------------------------|------------------------------| | query | 查询设备寄存器 | start_addr, end_addr | | write_s | 写单个寄存器 | addr, value | | write_m | 写多个寄存器 | start_addr, count, values... | | exit | 退出程序 | 无 | ### 使用示例 1. **查询设备寄存器数据** ``` Enter command: query start addr: 0x1000 end addr: 0x1005 ``` 2. **写入单个寄存器** ``` Enter command: write_s Enter register address: 130 Enter value (0-65535): 1234 ``` 3. **写入多个寄存器** ``` Enter command: write_m Enter start address: 128 Enter register count: 3 Enter 3 values: 100 200 300 ``` ### 关键功能实现 1. **串口通信** - 非阻塞IO操作 - 完善的错误处理 - 波特率自动适配 - 缓冲区管理 2. **Modbus协议** - CRC16校验 - 帧长度预测 - 请求/响应处理 - 异常处理 3. **多线程架构** - 独立的接收线程 - 互斥锁保护共享资源 - 安全线程终止机制 ## 许可证 本项目采用MIT许可证 - 详情请查看项目中的LICENSE文件。 ## 贡献指南 欢迎提交Issue和Pull Request: 1. Fork项目仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 创建Pull Request