ModbusSimulator

Modbus Simulator — User Guide

Version 1.1.2 · Windows 10/11 (64-bit)

Modbus Simulator runs as both a Modbus Master (polls devices) and a Modbus Slave (acts as a device) on the same PC. It supports Modbus TCP, RTU, ASCII, and UDP — all included in one license.

New here? Start with Slave TCP Setup if you want to simulate a device for SCADA/HMI testing, or Master TCP Setup if you want to poll a real device.

Installation

  1. Download the installer from modbussimulator.com/download
  2. Run ModbusSimulator-Setup.exe — no admin rights required for most installations
  3. Follow the installation wizard (default path: C:\Program Files\ModbusSimulator\)
  4. Launch from the Start Menu or desktop shortcut
Windows Defender SmartScreen: If you see a blue SmartScreen warning, click More info → Run anyway. The installer is not code-signed yet; this warning is expected for new software.

First Launch

On first launch you'll see the main window with two tabs: Master and Slave. The 30-day trial starts automatically — no registration required.

  1. Select the tab for the mode you need (Master or Slave)
  2. Choose protocol: TCP or RTU
  3. Configure the connection (IP + port for TCP, COM port + baud rate for RTU)
  4. Click Start / Connect

Trial vs Licensed

FeatureTrial (30 days)Licensed ($99 one-time)
Master mode✅ Full✅ Full
Slave mode✅ Full✅ Full
All protocols (TCP/RTU/ASCII/UDP)
Multiple slaves (up to 8)
Register import/export
Duration30 daysLifetime, 1 PC

Slave Mode — Overview

Slave mode makes your PC act as a Modbus device. SCADA, HMI, PLCs, and custom applications connect to it and read/write registers — exactly as they would with a real device.

When to use it:

TCP Slave Setup

Step 1. Click the Slave tab → select TCP
Step 2. Set Port — default is 502 (standard Modbus port). Use a custom port like 5020 if 502 requires admin rights on your PC.
Step 3. Set Unit ID — default is 1. This is the slave address your master will use. Range: 1–247.
Step 4. Set register values in the Holding Registers and Coils tables (see Configure Registers below)
Step 5. Click Start Slave. The simulator listens on 0.0.0.0:502 — any master on the same network can connect.
To test on a single PC (SCADA and simulator on same machine), your master should connect to 127.0.0.1:502.

RTU Slave Setup

Step 1. Click the Slave tab → select RTU
Step 2. Select COM Port from the dropdown (e.g., COM3). For PC-only testing with no hardware, create a virtual COM port pair — see Virtual COM Ports.
Step 3. Set Baud Rate — common values: 9600, 19200, 38400, 57600, 115200. Must match your master's setting.
Step 4. Set Parity (None/Even/Odd) and Stop Bits (1 or 2) to match your master.
Step 5. Set Unit ID and click Start Slave.

Configure Registers

The register table shows all four register types. Click any cell to edit the value directly.

Register TypeAddress (0-based)Function CodeTypical Use
Coils0–65535FC01 read / FC05 write single / FC15 write multipleDigital outputs: relay on/off, valve open/close
Discrete Inputs0–65535FC02 read-onlyDigital inputs: switch status, sensor on/off
Input Registers0–65535FC04 read-onlyAnalog measurements: temperature, current
Holding Registers0–65535FC03 read / FC06 write single / FC16 write multipleSetpoints, config parameters, analog output
32-bit float values (e.g., 230.5V) occupy two consecutive registers. Select both cells → right-click → Set as Float32 to enter the value directly. Byte order (big-endian / little-endian) is configurable in Settings.

Simulate Exception Responses

To test how your master handles errors: right-click any register row → Set Exception Response → choose exception code:

The slave will return that exception code for all requests to that register until you clear it.

Master Mode — Overview

Master mode polls a connected Modbus slave device (PLC, energy meter, drive, I/O module, or another instance of this simulator) and lets you read and write registers.

TCP Master Setup

Step 1. Click the Master tab → select TCP
Step 2. Enter the slave device's IP Address and Port (default 502)
Step 3. Set Unit ID to match the slave device (default 1)
Step 4. Click Connect. The status indicator turns green when connected.
Step 5. Use the Read and Write panels to send requests.

RTU Master Setup

  1. Select RTU protocol → choose COM port
  2. Set baud rate, parity, stop bits to match the slave device
  3. Set Unit ID → click Connect
Only one application can hold a COM port at a time. If connection fails with "port in use", check Device Manager for other programs using that port.

Read / Write Registers

To read registers:

  1. Select function code: FC01 (coils), FC02 (discrete inputs), FC03 (holding), FC04 (input)
  2. Enter starting address and quantity
  3. Click Read — values appear in the response table

To write registers:

  1. Select FC06 (write single) or FC16 (write multiple)
  2. Enter starting address and the value(s)
  3. Click Write

Modbus TCP TCP/IP

Modbus TCP encapsulates Modbus frames in TCP packets. Default port: 502. No framing (no CRC) — TCP handles error checking. Supports multiple simultaneous master connections.

ParameterDefaultNotes
Port502Use 5020 if 502 needs admin. Any port 1024–65535 works.
Timeout3000 msIncrease for slow network or embedded devices
Max connections8Simultaneous master clients in slave mode

Modbus RTU Serial

Modbus RTU uses binary framing over serial (RS-232 or RS-485). The frame includes a CRC checksum. All devices on the same bus must use the same baud rate and parity.

ParameterCommon Values
Baud rate9600 (default for most PLCs), 19200, 115200
ParityNone (most common), Even, Odd
Stop bits1 (with parity), 2 (no parity)
Data bits8 (always)

Modbus ASCII

ASCII mode encodes each byte as two hex characters. Slower than RTU but more robust on noisy lines. Uses LRC checksum. Select ASCII in the protocol dropdown — same serial settings as RTU.

Modbus UDP

UDP variant of Modbus TCP — no connection state, lower overhead, faster for broadcast. Configure the same as TCP but select UDP as protocol. Useful for multicast polling of multiple devices.

Virtual COM Ports (PC-only RTU testing)

To test RTU without physical hardware, create a virtual COM port pair:

  1. Download and install com0com (free, open source)
  2. Create a pair: COM10COM11
  3. In Modbus Simulator Slave: select COM10, baud 9600, no parity
  4. In Modbus Simulator Master (or your application): select COM11, same settings
  5. Frames sent on one side appear on the other — full RTU loop on a single PC

Multiple Slaves

Modbus Simulator supports up to 8 simultaneous slave instances. Each can have a different Unit ID, protocol, and register set.

  1. In Slave mode, click Add Slave (top toolbar)
  2. Configure each instance independently
  3. Over TCP, all slaves share the same port — Unit ID routes requests to the right instance
  4. Over RTU, each slave should be on a separate COM port (or the same bus with different Unit IDs)

Data Formats

Each register cell can display values in multiple formats. Right-click a cell to change:

Byte order for Float32: configurable in Settings → Big-Endian (AB CD) or Little-Endian (CD AB). Match your device's specification.

Request Log

In Slave mode, the Request Log panel (bottom of the window) shows every poll from the master in real-time:

Click Export Log to save as CSV for debugging or documentation.

Troubleshooting — Connection Issues

SymptomLikely CauseFix
Cannot connect (TCP)Port 502 blocked by Windows FirewallAllow inbound TCP 502 in Windows Firewall, or use port 5020+
Cannot connect (TCP)Slave not startedEnsure slave is running before connecting master
COM port in use (RTU)Another app holds the portClose other serial apps; check Device Manager
CRC error (RTU)Baud/parity mismatchMatch exactly: baud, parity, stop bits on both sides
No response from deviceWrong Unit IDCheck the device's configured Unit ID; most default to 1

Troubleshooting — No Response / Exception Codes

Use the Slave Simulator as a known-good device to verify your master is working correctly, then connect to your real device.

Frequently Asked Questions

How do I activate my license key?

Launch Modbus Simulator → click Enter License Key in the top menu or in the trial expiry prompt → paste your key → click Activate. Requires an internet connection for the first activation only.

Can I use the software on multiple PCs?

Each $99 license covers 1 PC. To use on a second PC, purchase an additional license or contact support for a team discount (3+ licenses at $79 each).

Will it work with my SCADA (Ignition, WinCC, AVEVA, etc.)?

Yes. The simulator exposes a standard Modbus TCP interface on port 502. Any SCADA system with a Modbus TCP driver will connect to it. Point the SCADA's Modbus device to 127.0.0.1:502 when both run on the same PC.

What Windows versions are supported?

Windows 10 (64-bit, version 1903+) and Windows 11. 32-bit Windows is not supported.

Can I simulate a Modbus device without any PLC or hardware?

Yes — that's the primary use case. Run the Slave mode, configure your register values, and your SCADA/HMI talks to it as if it were a real device. No PLC, no RS-485 adapter, no hardware of any kind required for TCP testing.

I need more help — how do I contact support?

Email [email protected] — we typically reply within 24 hours on business days. Include your OS version and a description of what you're testing.

Ready to test your Modbus devices?

30-day free trial — no registration, no credit card

Download Modbus Simulator Free