# Free Modbus Tester for Windows and Mac

> Read your first register from a Modbus TCP or RTU device with a free Modbus tester on Windows or macOS. Function codes, address offset, float and endianness, writes and export, step by step.

Kaynak: https://ranaliz.com/en/blog/free-modbus-tester-windows-mac · Yazar: Ahmet Korkmaz · Güncelleme: 2026-10-19


**A Modbus tester is a tool that connects to an inverter, meter or PLC as a master and reads and writes its registers. During commissioning it answers “is the device talking, and is the value right?” without writing code.** This guide walks through a first Modbus read on Windows or macOS with the free [Ranaliz iOT Tester](https://ranaliz.com/en/product/iot-tester). The steps work the same way in other Modbus test tools.

## What a Modbus test tool should have

| Feature | Why it matters |
|---|---|
| TCP and RTU support | Sites are mixed: inverters on Ethernet, meters on RS485 |
| FC01–FC16 | Test writes (FC05/06/15/16), not only reads |
| Data type and endianness options | 32-bit floats arrive in different orders depending on the device |
| Poll interval and timeout | Avoid false “no response” results on slow devices |
| Transaction history | See which response belongs to which request |
| Export | Add data to a commissioning report |
| macOS support | Most classic tools are Windows-only |

## Step 1: Download and install

Get the installer from the [iOT Tester product page](https://ranaliz.com/en/product/iot-tester):

- **Windows 10/11 (x64):** a single-file `.exe`. It is unsigned, so SmartScreen may warn; choose “Run anyway”.
- **macOS (Apple Silicon):** a signed and notarized `.app`. Intel Macs need to build from source.

No license key, registration or trial period. The source is on GitHub under the MIT license.

## Step 2: Connect

**Modbus TCP:** the device IP address, port (usually 502) and unit ID (usually 1).

**Modbus RTU:** the serial port (COM3 on Windows, /dev/tty.usbserial-… on macOS), baud rate, parity, stop bits and slave ID, all from the device menu or manual. For RS485 wiring problems see [how to test Modbus RS485 communication](https://ranaliz.com/en/blog/how-to-test-modbus-rs485-communication).

## Step 3: Pick the right function code

| Code | Action | Typical use |
|---|---|---|
| FC01 | Read coils | Relay / output state |
| FC02 | Read discrete inputs | Digital inputs |
| FC03 | Read holding registers | Settings and most measurements |
| FC04 | Read input registers | Measurements (on some devices) |
| FC05 / FC06 | Write single coil / register | On/off, single setting |
| FC15 / FC16 | Write multiple coils / registers | Bulk settings, 32-bit writes |

If the manual lists measurements as “3xxxx”, use FC04. If it lists “4xxxx”, use FC03.

## Step 4: Mind the address offset

The most common Modbus mistake is **off by one**. A register documented as “40001” is protocol address **0**. “30100” is protocol address 99. Some vendors document 0-based addresses directly.

A practical trick: pick a register whose value you know, such as voltage. Read one address below and one above as well. Whichever gives a sensible value tells you the offset.

## Step 5: Decode the value

A raw register is 16 bits. Change the display until the value makes sense:

- **int16 / uint16:** single-register values; apply the scale factor (e.g. 2304 × 0.1 = 230.4 V).
- **float32 / int32 / uint32:** two registers. If the value looks absurd, try **word swap** or **byte swap**.
- **ASCII / UTF-8:** text fields such as serial number and model name.
- **Hex / binary:** status and alarm bits.

## Step 6: Write, verify, export

To change a setting, write it with FC06 (single register) or FC16 (multiple), then read the same register back to confirm. Be careful with writes on live systems: registers such as power limits change production.

When you’re done, export the transaction history and table to **Excel/CSV** for the commissioning report.

## Common results

| Result | Meaning |
|---|---|
| Timeout | Connection, serial settings or slave ID problem |
| Exception 01 | Function code not supported |
| Exception 02 | Address doesn’t exist (often an offset error) |
| Exception 03 | Invalid quantity or value |
| Nonsense value | Wrong data type, endianness or scale |

Every exception code is explained in [Modbus exception codes 01–0B](https://ranaliz.com/en/blog/modbus-exception-codes).

## Modbus tester vs datalogger vs monitoring platform

- **Modbus tester** (iOT Tester): commissioning and troubleshooting. One person, one laptop, a short session.
- **[Datalogger](https://ranaliz.com/en/product/datalogger):** continuous on-site reading and forwarding to the cloud.
- **[Energy monitoring platform](https://ranaliz.com/en/):** live KPIs, alarms, work orders and reporting.

iOT Tester closes the first question: does the device actually talk? The same register map then moves to the datalogger and the platform.

## FAQ

### Is there a free Modbus tester for Mac?

Yes. Ranaliz iOT Tester ships a ready build for Apple Silicon Macs; Intel Macs need to build from source. Command-line tools such as mbpoll also run on macOS.

### Is there a free version of Modbus Poll?

Modbus Poll is commercial with a time-limited trial. Free alternatives include Ranaliz iOT Tester, QModMaster, CAS Modbus Scanner and mbpoll. See [free Modbus Poll alternatives](https://ranaliz.com/en/blog/free-modbus-poll-alternatives) for a full comparison.

### Can a Modbus tester write values too?

Yes. Any tool with FC05, FC06, FC15 and FC16 can write coils and registers. iOT Tester supports FC01–FC16.

## Sources

- Modbus Organization — MODBUS Application Protocol Specification V1.1b3
- [Ranaliz iOT Tester GitHub repository](https://github.com/Ranaliz/ranaliz-iot-tester)
