Skip to content

Getting Started

Nikhil Bangar edited this page Jul 30, 2026 · 1 revision

Getting Started

Option 1: Download a prebuilt release (Windows)

  1. Grab the latest zip from the Releases page.
  2. Unzip it anywhere.
  3. Run ModbusViewer.exe. That's it — Qt and every other dependency are bundled alongside the executable, nothing else to install.

Option 2: Build from source

Requirements

  • Qt 6.5 or newer (developed against 6.11.1)
  • CMake 3.21+
  • A C++20 compiler (developed with Qt's bundled MinGW 13.1.0 on Windows)
  • Qt modules: Core Gui Qml Quick QuickControls2 QuickDialogs2 Network SerialPort Test

Build

$env:Path = "C:\Qt\Tools\mingw1310_64\bin;C:\Qt\Tools\Ninja;C:\Qt\6.11.1\mingw_64\bin;" + $env:Path
cmake -S . -B build -G Ninja -DCMAKE_PREFIX_PATH="C:/Qt/6.11.1/mingw_64" -DCMAKE_BUILD_TYPE=Debug
cmake --build build

The executable lands at build/ModbusViewer.exe (or build/ModbusViewer on macOS/Linux).

Trying it without real hardware

The repo includes a dev-time Modbus simulator so you can try the app with no physical device or PLC:

pip install -r tools/requirements.txt
python tools/pymodbus_simulator.py --mode tcp --port 502

Then in ModbusViewer, connect via TCP to 127.0.0.1:502.

Your first connection

  1. Open the app — you land on the Connection screen.
  2. Pick TCP or RTU:
    • TCP: enter the host and port (502 is the standard Modbus TCP port).
    • RTU: pick the serial port, baud rate, data bits, parity, and stop bits.
  3. Click Connect.
  4. Once connected, you're on the main data screen:
    • Normal mode: pick a register Type (Coil / Discrete Input / Holding Register / Input Register), a start address, and a quantity, then Read once or Start Polling for live updates.
    • Favorites mode: build a curated, possibly-scattered list of registers (via "Add Ad-hoc" or by importing a tag database), and poll just those — as a dense list or, toggled via the View control, as a card grid with a live sparkline per register.

See the Modbus Register Types page for what those four register types actually mean if you're new to Modbus.

Clone this wiki locally