Skip to content

gccnb/modbus-crc-assistant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Modbus CRC16 助手

一个轻量、直观的 Windows 桌面工具,专门用来给 Modbus RTU 指令自动计算并追加 CRC-16/MODBUS 校验码。

如果你经常调试串口设备、PLC、传感器、变频器、电表或各类 Modbus 从站,这个工具可以省掉反复手算、查网页、复制粘贴校验码的麻烦。

为什么做这个工具

Modbus RTU 报文最后两个字节是 CRC 校验码,而且发送顺序是低字节在前、高字节在后。手动计算时很容易遇到这些问题:

  • 只知道 CRC 数值,却把高低字节顺序写反。
  • 每次改寄存器地址或数量,都要重新算 CRC。
  • 在线 CRC 工具参数不一致,结果容易混淆。
  • 串口助手没有自动追加 Modbus CRC 的功能。

这个工具只做一件事:输入不带 CRC 的 Modbus RTU 指令,立即生成可以直接发送的完整帧。

功能亮点

  • 中文桌面界面,双击即可使用。
  • 支持 CRC-16/MODBUS,参数符合 Modbus RTU 常用规则。
  • 自动按 Modbus RTU 顺序输出 CRC:低字节在前,高字节在后。
  • 支持一键复制完整发送帧。
  • 支持一键复制 CRC 字节。
  • 支持空格、换行、逗号、0x 前缀和紧凑十六进制输入。
  • 内置常用示例,适合现场调试快速验证。
  • 核心算法有单元测试覆盖,包含 0102030405060F10 等常见功能码样例。

使用示例

输入不带 CRC 的指令:

01 03 00 00 00 0A

工具输出:

CRC值:0xCDC5
CRC发送字节:C5 CD
完整发送帧:01 03 00 00 00 0A C5 CD

注意:0xCDC5 是 CRC 数值,Modbus RTU 报文末尾实际追加的是 C5 CD

更多已验证样例

01 01 00 13 00 25 -> 01 01 00 13 00 25 0C 14
01 02 00 C4 00 16 -> 01 02 00 C4 00 16 B8 39
01 03 00 00 00 0A -> 01 03 00 00 00 0A C5 CD
01 04 00 00 00 02 -> 01 04 00 00 00 02 71 CB
01 05 00 AC FF 00 -> 01 05 00 AC FF 00 4C 1B
01 06 00 01 00 64 -> 01 06 00 01 00 64 D9 E1
01 0F 00 13 00 0A 02 CD 01 -> 01 0F 00 13 00 0A 02 CD 01 72 CB
01 10 00 00 00 02 04 00 01 00 02 -> 01 10 00 00 00 02 04 00 01 00 02 23 AE
00 06 00 01 00 64 -> 00 06 00 01 00 64 D8 30

运行源码

python run_app.py

运行测试

python -m unittest discover -s tests -v

打包为 Windows exe

双击:

build.bat

或在 PowerShell 中运行:

powershell -ExecutionPolicy Bypass -File .\build.ps1

打包完成后,可执行文件会生成到:

dist\ModbusCRC助手.exe

项目结构

.
├── run_app.py
├── build.bat
├── build.ps1
├── requirements-build.txt
├── src\modbus_crc_assistant
│   ├── app.py
│   └── crc16_modbus.py
└── tests
    └── test_crc16_modbus.py

技术栈

  • Python
  • Tkinter
  • unittest
  • PyInstaller

适合谁

  • 做 Modbus RTU 串口调试的人。
  • 做 PLC、传感器、仪表、485 通信调试的人。
  • 经常需要手动拼 Modbus 指令的人。
  • 想要一个简单、离线、无广告 CRC 工具的人。

About

Windows desktop assistant for calculating Modbus RTU CRC16 frames

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors