Skip to content

naraka-camill/ModbusApp

Repository files navigation

Modbus Slave 项目概览

这是一个基于 Qt 的 Modbus TCP 从站应用程序,用于模拟工业设备并提供 Modbus TCP 通信接口。

项目结构

  • 主要源文件:

    • main.cpp - 程序入口点,初始化 Qt 应用程序并显示主窗口
    • modbus_poll/ - 主界面模块,包含 UI 和数据处理逻辑
    • modbus_tcp_usr/ - Modbus TCP 通信模块
  • 第三方库:

    • 3rdparty/libmodbus/ - libmodbus 库,提供 Modbus 协议实现
    • 3rdparty/tinyxml2/ - tinyxml2 库,用于 XML 处理
  • 资源文件:

    • qrc/ - 包含字体和图标资源
    • res.qrc - Qt 资源文件配置

技术栈

  • 框架: Qt 5.15.2 (C++17)
  • 通信协议: Modbus TCP
  • UI: Qt Widgets
  • 平台: Windows (使用 MinGW 64 位编译器)

主要功能

  1. Modbus TCP 从站: 实现标准的 Modbus TCP 从站功能
  2. 数据模拟: 模拟工业设备的输入/输出信号和寄存器数据
  3. 实时监控: 提供实时状态监控界面
  4. 多轴控制: 支持多个运动轴的状态监控 (Y, MX, MZ, SX, SZ)

核心数据结构

  • RegData: 包含轴位置、转速、加速度、负载、错误代码等数据
  • MbAdsInfo: Modbus 地址映射信息,关联数据类型和 UI 控件
  • 控制状态: 包括急停、伺服错误、初始化失败等多种状态

编译与运行

环境要求

  • Qt 5.15.2 或更高版本
  • MinGW 64 位编译器
  • Windows 操作系统

构建步骤

  1. 使用 Qt Creator 打开 grs_mes.pro 项目文件
  2. 选择合适的构建套件 (Desktop_Qt_5_15_2_MinGW_64_bit)
  3. 构建并运行项目

运行参数

  • 默认 Modbus TCP 端口: 502
  • 数据更新周期: 50ms
  • UI 更新周期: 100ms

开发约定

  1. 编码规范: 使用 C++17 标准,遵循 Qt 编码风格
  2. 命名约定:
    • 类名使用 PascalCase
    • 变量和函数使用 camelCase
    • 常量使用 UPPER_CASE
  3. 线程安全: 使用互斥锁保护共享数据
  4. 错误处理: 使用状态码和错误消息进行错误处理

调试选项

  • 定义 DBG_UI 宏可启用 UI 调试功能
  • 控制台输出实时状态信息

注意事项

  1. 应用程序需要管理员权限运行 (因为使用 502 端口)
  2. 确保 Windows 防火墙允许 502 端口通信
  3. 使用 libmodbus 库时需要链接 ws2_32 库 (Windows)

About

基于 Qt 的 Modbus TCP 从站应用程序,用于模拟工业设备并提供 Modbus TCP 通信接口。

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors