Modbus-Tools focuses on day-to-day debugging work rather than protocol marketing.
It currently provides:
Modbus TCP Clientfor active Modbus TCP requestsModbus RTU Masterfor serial Modbus requestsFrame Analyzerfor parsing raw Modbus TCP / RTU framesIEEE 754 Converterstandalone utility for Float32/Float64 and 4-byte/8-byte endianness matrix calculationsLink to Analyzerfor pushing live Modbus responses into the analyzer- Generic
TCP Client / TCP Server / UDPtooling - A separate
Serial Debuggerpage
The project is intended for debugging, validation, and lab or field troubleshooting. It is not a safety-certified product.
- Visual request building for common Modbus read/write workflows
- Raw frame sending helpers, including
CRC16append for RTU andMBAPencapsulation for TCP - Polling workflows with response/error tracking
- Frame Analyzer:
- Offline / Paste & Parse and real-time live linkage from Modbus sessions with pause/resume support
- Protocol auto-detection and frame breakdown (Header, Function Code, Exception, Data payload, Checksum)
- Multi-type decoded data grid supporting UInt16, Int16, Float32, Int32, UInt32, and Float64
- Stride-aware batch register type assignment, row multi-selection, and
Deleteshortcut to reset custom types - Endianness / Byte Order switching (
ABCD,CDAB,BADC,DCBA) - Configurable scaling factor, register description editing, and import/export via JSON config and CSV
- Parsing history tracking with quick recall and collapsible sidebar
- IEEE 754 Converter:
- Standalone bidirectional converter for Float32/Float64, Hex, Signed/Unsigned Int, and byte order matrices
- Real-time synchronization, edge case detection (NaN, Infinity, Denormalized), and quick preset values
- Three UI languages with seamless runtime switching: English, Simplified Chinese, and Traditional Chinese
- Source builds are supported on
Windows,Linux, andmacOS - Release packaging is driven by CMake target
release_bundle - The built-in updater / auto-update path is
Windows-onlyat the moment - On non-Windows platforms, the main application still builds, but the updater target is disabled by design
- Windows users can download prebuilt packages from Releases
Single-config generators, such as Ninja:
git clone --recursive https://github.com/mingyucheng692/Modbus-Tools.git
cd Modbus-Tools
cmake -S . -B build -DMODBUS_TOOLS_BUILD_TESTS=ON -DCMAKE_BUILD_TYPE=Release
cmake --build build --target Modbus-Tools --parallelMulti-config generators, such as Visual Studio 17 2022:
git clone --recursive https://github.com/mingyucheng692/Modbus-Tools.git
cd Modbus-Tools
cmake -S . -B build -G "Visual Studio 17 2022" -DMODBUS_TOOLS_BUILD_TESTS=ON
cmake --build build --target Modbus-Tools --config Release --parallelSingle-config generators, such as Ninja:
cmake -S . -B build_release -DMODBUS_TOOLS_BUILD_TESTS=OFF -DCMAKE_BUILD_TYPE=Release
cmake --build build_release --target release_bundle --parallelMulti-config generators, such as Visual Studio 17 2022:
cmake -S . -B build_release -G "Visual Studio 17 2022" -DMODBUS_TOOLS_BUILD_TESTS=OFF
cmake --build build_release --target release_bundle --config Release --parallel- Toolchain:
C++20,Qt 6,CMake 3.25+ - Optional build switches include
MODBUS_TOOLS_ENABLE_ASAN,MODBUS_TOOLS_ENABLE_UBSAN,MODBUS_TOOLS_ENABLE_CLANG_TIDY, andMODBUS_TOOLS_ENABLE_VERBOSE_RUNTIME_LOGS - Linux CI installs additional Qt/XCB dependencies before building
Automated checks are part of normal development, but they are engineering safeguards, not a certification claim.
- Unit and integration tests are organized into focused targets such as
test_core_logic,test_qt_core,test_ui_widgets,test_integration, andtest_modbus_fuzz - CI runs a cross-platform matrix on
Windows,Linux, andmacOS - Linux CI also includes non-blocking
clang-tidy - The deterministic fuzz target is built and executed on Linux when ASan test runs are enabled
cmake -S . -B build -DMODBUS_TOOLS_BUILD_TESTS=ON
cmake --build build --parallel
ctest --test-dir build --output-on-failureFor multi-config generators such as Visual Studio, add --config Debug or --config Release to the build command and -C Debug or -C Release to ctest.
core/ protocol, session, transport, parser, update logic
infra/ IO, logging, platform helpers
ui/ widgets, pages, presentation logic, i18n
tests/ unit, integration, focused regression targets
app/ desktop application entry point
- Modbus protocol support is limited to
masterworkflows:Modbus TCP master (client)andModbus RTU master - Generic network tooling is separate from Modbus roles and supports
TCP client,TCP server, andUDP - Auto-update is currently available only on
Windows - To debug multiple links simultaneously, launch additional application instances — one session per process
- This repository prioritizes runtime correctness, stability, and debuggability over feature breadth
- The software is provided under the
MITlicense and remains intended for development and troubleshooting use
Issues and pull requests are welcome.
If you contribute code, use git commit -s so each commit includes a DCO sign-off:
Signed-off-by: Your Name <your.email@example.com>
- Usage, warranty, and liability boundaries are documented in DISCLAIMER.md
- Acknowledgments: thanks to
Qt,spdlog,fmt, andGoogleTest
Licensed under the MIT License.