# Tms-controller **Repository Path**: zynwh/tms-controller ## Basic Information - **Project Name**: Tms-controller - **Description**: TMS Controller 是一款专业的液冷机通信控制软件,采用 Python 开发,提供直观的图形用户界面,支持通过串口与各种液冷机设备进行通信。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 12 - **Forks**: 4 - **Created**: 2025-09-04 - **Last Updated**: 2025-10-28 ## Categories & Tags **Categories**: testing **Tags**: 储能行业液冷机测试, Python ## README # TMS Controller - 液冷机通信控制软件 ## 项目简介 TMS Controller 是一款专业的液冷机通信控制软件,采用 Python 开发,提供直观的图形用户界面,支持通过串口与各种液冷机设备进行通信。软件支持 Modbus RTU 协议,能够读取和写入设备寄存器,实时监控设备状态,并记录通信数据。 ## 软件截图 ![img.png](img.png) ## 功能特点 - 🔌 **多协议支持**:支持 Modbus RTU 协议,可扩展其他通信协议 - 📊 **实时监控**:实时显示只读和读写寄存器数值 - ⚡ **自动刷新**:支持定时自动刷新寄存器数据 - 💾 **数据记录**:可将通信数据记录到 CSV 文件 - 🎨 **友好界面**:直观的图形用户界面,支持中文字体 - 🔧 **灵活配置**:支持自定义协议配置文件 - 📝 **通信日志**:详细的通信日志记录,支持 Tx/Rx 数据颜色区分 - 🖥️ **跨平台**:支持 Windows 系统,可打包为独立可执行文件 ## 系统要求 - Linux - MacOS - Windows 7/10/11 操作系统 - Python 3.7+ (仅用于开发环境) - 可用串口 (COM 端口) ## 安装指南 ### 从源码运行 1. 克隆或下载项目代码 2. 安装依赖库: ```bash pip install pyserial serial ``` 3. 运行主程序: ```bash python main.py ``` ### 使用打包版本 1. 下载最新发布的 `液冷机通信控制软件.exe` 文件 2. 确保同目录下存在 `config.json` 和 `protocol_configs` 文件夹 3. 双击运行可执行文件 ## 使用说明 ### 首次使用 1. 启动软件后,选择正确的串口端口 2. 配置串口参数(波特率、数据位、停止位、校验位) 3. 选择适合的设备协议文件 4. 点击"连接"按钮建立与设备的通信 ### 基本操作 - **刷新端口**:更新可用串口列表 - **读取所有寄存器**:一次性读取所有配置的寄存器 - **启动定时刷新**:自动定期读取寄存器数据 - **开始记录**:将通信数据保存到 CSV 文件 - **设置寄存器值**:双击读写寄存器行可修改数值 ### 协议配置 软件支持自定义协议配置,协议文件存放在 `protocol_configs` 目录中: 1. 协议文件使用 JSON 格式 2. 可定义只读和读写寄存器 3. 支持多种数据类型(uint16, int16, float等) 4. 可设置缩放因子和取值范围 ## 打包说明 项目使用 PyInstaller 打包为独立可执行文件: 1. 确保已安装 PyInstaller: ```bash pip install pyinstaller serial ``` 2. 运行打包脚本: ```bash python build.py ``` 3. 打包后的文件位于 `dist` 目录 ### 使用部署脚本 ```bash # 安装依赖 pip install -r requirements.txt pip install nuitka # 构建当前平台版本 python build_nuitka.py # 构建所有平台版本(需要相应环境) python build_all.py # 使用部署工具 python deploy.py --install-deps --clean --package ``` ## 目录结构 ``` TMS_controller/ ├── main.py # 主程序入口 ├── build.py # 打包脚本 ├── config.json # 配置文件 ├── favicon.ico # 应用程序图标 ├── liquid_cooler_ui.py # 用户界面实现 ├── serial_manager.py # 串口管理模块 ├── protocol_parser.py # 协议解析模块 ├── data_logger.py # 数据记录模块 ├── config_manager.py # 配置管理模块 └── protocol_configs/ # 协议配置文件目录 ├── default.json # 默认协议配置 └── 同飞液冷机通信协议.json # 示例协议配置 ``` ## 常见问题 ### 1. 无法检测到串口 - 检查设备管理器中的串口驱动是否正常安装 - 确保没有其他程序占用该串口 ### 2. 通信失败 - 检查串口参数(波特率、数据位等)是否与设备匹配 - 确认协议配置正确 ### 3. 界面显示乱码 - 系统需要安装支持中文的字体(如微软雅黑) ### 4. 打包后无法运行 - 确保所有依赖文件(config.json, protocol_configs 目录)与可执行文件在同一目录 ## 技术支持 如有技术问题或建议,请联系开发团队或提交 Issue。 ## 许可证 本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。 ## 更新日志 ### v1.0.0 (2025-09-04) - 初始版本发布 - 支持基本 Modbus RTU 通信功能 - 实现图形用户界面 - 支持数据记录和协议配置 --- ### v1.2.0 (2025-10-09) - 重构项目 - 重写串口读取,串口读取另启进程 - 发布工厂使用版本,useing_Factory分支;该分支暂不支持modbus tcp通信。 - 未打包,未测试。 --- ### v1.3.1 (2025-10-10) - 统一协议处理:所有协议使用相同的读取策略,不再区分TCL和其他协议的特殊处理 - 智能分组策略: - 连续地址自动合并读取 - 非连续地址单独读取 - 提高通信效率 - 简化代码结构 - 删除复杂的优化分组逻辑 - 统一的寄存器分组方法 - 清晰的错误处理流程 - 改进的通信可靠性 - 更好的超时处理 - 失败读取自动重试 - 清晰的通信状态反馈 - 用户界面优化 - 统一的操作流程 - 更好的状态显示 - 简化的控制逻辑 --- ### v1.3.2 (2025-10-17) - 修改同飞液冷机读取bug, 地址错位问题。 - 将json文件打包进exe文件,修改协议加载路径, - 修改打包文件 --- ### v1.3.4 (2025-10-22) - 修改一键开机按钮颜色,代表开关机状态 - 红色:关机状态 - 橙色:开机中状态 - 绿色:开机状态 - 灰色:未知状态 --- **注意**:使用本软件前,请确保您已获得相关设备的通信协议文档,并正确配置协议文件。