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.
Installation
- Download the installer from modbussimulator.com/download
- Run
ModbusSimulator-Setup.exe— no admin rights required for most installations - Follow the installation wizard (default path:
C:\Program Files\ModbusSimulator\) - Launch from the Start Menu or desktop shortcut
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.
- Select the tab for the mode you need (Master or Slave)
- Choose protocol: TCP or RTU
- Configure the connection (IP + port for TCP, COM port + baud rate for RTU)
- Click Start / Connect
Trial vs Licensed
| Feature | Trial (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 | ✅ | ✅ |
| Duration | 30 days | Lifetime, 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:
- Test SCADA screens before hardware arrives
- Develop Modbus drivers without needing the physical device
- Simulate energy meters, drives, sensors, or I/O modules
- Test how your master handles exceptions and timeouts
TCP Slave Setup
502 (standard Modbus port). Use a custom port like 5020 if 502 requires admin rights on your PC.1. This is the slave address your master will use. Range: 1–247.0.0.0.0:502 — any master on the same network can connect.127.0.0.1:502.
RTU Slave Setup
COM3). For PC-only testing with no hardware, create a virtual COM port pair — see Virtual COM Ports.9600, 19200, 38400, 57600, 115200. Must match your master's setting.Configure Registers
The register table shows all four register types. Click any cell to edit the value directly.
| Register Type | Address (0-based) | Function Code | Typical Use |
|---|---|---|---|
| Coils | 0–65535 | FC01 read / FC05 write single / FC15 write multiple | Digital outputs: relay on/off, valve open/close |
| Discrete Inputs | 0–65535 | FC02 read-only | Digital inputs: switch status, sensor on/off |
| Input Registers | 0–65535 | FC04 read-only | Analog measurements: temperature, current |
| Holding Registers | 0–65535 | FC03 read / FC06 write single / FC16 write multiple | Setpoints, config parameters, analog output |
Simulate Exception Responses
To test how your master handles errors: right-click any register row → Set Exception Response → choose exception code:
01— Illegal Function02— Illegal Data Address03— Illegal Data Value04— Slave Device Failure
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
502)1)RTU Master Setup
- Select RTU protocol → choose COM port
- Set baud rate, parity, stop bits to match the slave device
- Set Unit ID → click Connect
Read / Write Registers
To read registers:
- Select function code: FC01 (coils), FC02 (discrete inputs), FC03 (holding), FC04 (input)
- Enter starting address and quantity
- Click Read — values appear in the response table
To write registers:
- Select FC06 (write single) or FC16 (write multiple)
- Enter starting address and the value(s)
- 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.
| Parameter | Default | Notes |
|---|---|---|
| Port | 502 | Use 5020 if 502 needs admin. Any port 1024–65535 works. |
| Timeout | 3000 ms | Increase for slow network or embedded devices |
| Max connections | 8 | Simultaneous 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.
| Parameter | Common Values |
|---|---|
| Baud rate | 9600 (default for most PLCs), 19200, 115200 |
| Parity | None (most common), Even, Odd |
| Stop bits | 1 (with parity), 2 (no parity) |
| Data bits | 8 (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:
- Download and install com0com (free, open source)
- Create a pair:
COM10↔COM11 - In Modbus Simulator Slave: select
COM10, baud 9600, no parity - In Modbus Simulator Master (or your application): select
COM11, same settings - 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.
- In Slave mode, click Add Slave (top toolbar)
- Configure each instance independently
- Over TCP, all slaves share the same port — Unit ID routes requests to the right instance
- 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:
- Unsigned Int (16-bit) — 0 to 65535
- Signed Int (16-bit) — -32768 to 32767
- Hex — 0x0000 to 0xFFFF
- Binary — 16 bits displayed
- Float32 — two consecutive registers treated as IEEE 754 float
- BCD — binary-coded decimal
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:
- Timestamp
- Function code (FC03, FC06, etc.)
- Register address and quantity
- Value written (for write requests)
- Exception returned (if configured)
Click Export Log to save as CSV for debugging or documentation.
Troubleshooting — Connection Issues
| Symptom | Likely Cause | Fix |
|---|---|---|
| Cannot connect (TCP) | Port 502 blocked by Windows Firewall | Allow inbound TCP 502 in Windows Firewall, or use port 5020+ |
| Cannot connect (TCP) | Slave not started | Ensure slave is running before connecting master |
| COM port in use (RTU) | Another app holds the port | Close other serial apps; check Device Manager |
| CRC error (RTU) | Baud/parity mismatch | Match exactly: baud, parity, stop bits on both sides |
| No response from device | Wrong Unit ID | Check the device's configured Unit ID; most default to 1 |
Troubleshooting — No Response / Exception Codes
- Exception 01 (Illegal Function) — the device doesn't support that function code
- Exception 02 (Illegal Address) — register address out of range for that device
- Exception 03 (Illegal Data Value) — value outside allowed range
- Timeout / null response — device not reachable, wrong Unit ID, or slow device (increase timeout)
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