Free Modbus tester and simulator

Modbus Tester polls and writes registers as a Modbus master, and emulates a device as a Modbus slave, over TCP, UDP, RTU and ASCII. Build live HMI screens bound to your registers, publish values to MQTT, log to Excel and read the raw frames on the wire. Free for personal and commercial use, with no licence key.

Download version 3.2.0 Read the documentation

Windows 10, Windows 11 and Windows Server 2016 or newer, 64-bit. No sign-up, no licence key, no tag limits.

Modbus Tester 3.2.0 on Windows with a poller reading an energy meter, a Modbus slave simulator listening on port 502 and an HMI screen running, all in one workspace
One workspace: a poller reading a meter, a slave simulator listening, and an HMI screen running.

One tool for the whole job

Modbus Tester is a free Modbus tool that replaces a shelf of small utilities. One piece of Modbus software covers every role you normally need while commissioning or debugging a Modbus network:

A note on vocabulary: the current Modbus specification calls them client and server, while most tools, manuals and engineers still say master and slave. They mean the same thing. A poller window is the Modbus client, the simulator is the Modbus server, and this page uses the older names because that is what the devices in front of you are labelled with.

Modbus poller: use it as a Modbus TCP tester or Modbus RTU tester

A poller acts as a Modbus master. It repeatedly reads a device, and writes to it on demand. Open as many poller windows as you need and arrange them from the Window menu, each with its own connection, and each reading a different device or a different register block.

Modbus poller window connected over TCP, reading sixteen holding registers with decoded float values and named registers
A poller reading an energy meter: connection settings, Modbus settings and the value grid.

Ten data types, four byte orders

Devices disagree about how multi-register numbers are laid out. Rather than making you guess, the grid shows all four byte and word orders side by side as columns, so you read the one that matches your device and leave the device alone.

Modbus register grid showing float values decoded in the Big Endian column alongside Little Endian, BE Swapped and LE Swapped columns
The same registers read four ways at once. The floats decode correctly in the Big Endian column.

Modbus slave simulator

As a Modbus simulator the application listens as a Modbus server on TCP, UDP or a serial port and serves an in-memory register store. Point your SCADA, HMI or PLC at it and start integrating before the real device exists.

Modbus slave simulator listening on TCP port 502, serving holding registers with per-register simulation and exception response settings
The simulator serving holding registers, with three registers changing on their own and a 10% exception rate.

Modbus HMI screen builder

An HMI screen is a live operator panel. Design mode places and configures widgets on a canvas. Run mode locks the layout, connects, and drives every widget from live values. No coding required.

Modbus HMI screen running with gauges, a trend chart, bar graphs, numeric tiles, LEDs, switches and a setpoint slider bound to Modbus registers
An HMI screen in run mode, reading fourteen registers from one connection.
HMI screen in design mode with the properties panel binding a gauge to connection, slave id, function 03, address 100 and ushort data type
Design mode: the properties panel binds the selected gauge to address 100.

Excel logging and Modbus to MQTT gateway

The Export section at the bottom of every poller records what you read, or forwards it to a broker. That makes the poller a small Modbus gateway: it reads a legacy Modbus device and republishes the values over MQTT, while logging the same readings for a report.

The Export panel of a Modbus poller with Excel live logging enabled and MQTT publishing configured with an endpoint, JSON format, topic and QoS
Excel logging and MQTT publishing run together, from the same poll.

Live chart and Modbus monitor

Two live views tell you what is happening: one for the values, one for the bytes.

Live chart plotting three Modbus register series over one hundred samples with auto Y scaling and CSV export
Three phase voltages plotted live, with auto Y scaling.
Modbus traffic monitor listing timestamped TX and RX frames in hexadecimal exactly as they travel on the wire
Raw Modbus TCP frames: request and response, byte for byte.

Six transports, one connection panel

Pollers, slave simulators and HMI screens all connect through the same panel, which has an IP tab and a serial tab.

IP: Modbus TCP, UDP, RTU over TCP and ASCII over TCP

Serial: Modbus RTU and Modbus ASCII

A status dot shows the connection at a glance: grey for idle, yellow while connecting or waiting for a reply, green when connected, red on an error. The status line spells out the problem in words.

Details that save time

Supported protocols, function codes and data types

Transports Modbus TCP/IP, Modbus UDP/IP, Modbus RTU over TCP/IP, Modbus ASCII over TCP/IP, Modbus RTU (serial), Modbus ASCII (serial)
Read function codes 01 Read Coils, 02 Read Discrete Inputs, 03 Read Holding Registers, 04 Read Input Registers
Write function codes 05 Write Single Coil, 06 Write Single Register, 15 Write Multiple Coils, 16 Write Multiple Registers
Data types Short, Ushort, Hex, Binary (16-bit), Int, Uint, Float (32-bit), Long, Ulong, Double (64-bit)
Byte and word order Big Endian, Little Endian, BE Swapped, LE Swapped, shown as four columns at once
Serial settings RTU or ASCII framing, COM port, baud rate, parity, data bits, stop bits
Addressing Protocol addresses (0-based) or PLC addresses (1-based, for example 40001)
Languages English, Deutsch, Francais, Espanol, Turkce, Polski
Platform Windows 10, Windows 11 and Windows Server 2016 or newer, 64-bit. Nothing else to install
Price Free for personal and commercial use

Release notes

3.2.0 latest

3.1.0

3.0.0

2.3.5

Download version 3.2.0 Read the documentation

Free for personal and commercial use. No sign-up, no licence key, no tag limits.