Simulate any Modbus slave device — PLC, energy meter, VFD, sensor — on your Windows PC. Full RTU, TCP, ASCII and UDP support. Configure registers, trigger exceptions, log every request.
No credit card · No registration · Windows 10/11 (64-bit)
In a Modbus network, the slave (also called server) is the device that holds data — PLCs, energy meters, drives, remote I/O modules. The master reads and writes that data.
A Modbus slave simulator runs on your PC and behaves exactly like a real slave device. Your SCADA, HMI, or master application connects to it and reads/writes registers — without needing the physical device at all.
Engineers use it to: test SCADA/HMI screens before hardware delivery, develop Modbus drivers in software, validate edge cases like exception responses and timeouts, and train teams on Modbus without real equipment.
Engineers rely on ModbusSimulator's slave mode for these scenarios
Build and test your SCADA screens or HMI tags before the PLC or field device is on-site. Simulate live register values including ramps, random data, and alarm thresholds.
Simulate Modbus energy meters (kWh, V, A, PF, Hz registers). Test your energy monitoring software against a device that matches your meter's register map — no meter required.
Replicate the Modbus register map of ABB, Siemens, Danfoss, or Schneider drives. Develop and validate your drive control logic without tying up expensive hardware.
Simulate inverter Modbus registers (SunSpec profile or custom) for solar monitoring systems. Test data collection and alarming without a live inverter.
Test your Modbus master application — custom software, Python script, PLC program — against a slave that behaves exactly as specified. Verify timeout handling, exception handling, and retry logic.
Train engineers on Modbus protocol without real hardware. Students can read/write registers, observe exceptions, and understand request/response packets in a safe environment.
Slave mode works across every Modbus protocol variant
Slave server on port 502 (default) or any custom port. Multiple masters can connect simultaneously. Runs on localhost or any network interface.
Serial slave over COM ports (RS-232, RS-485). Supports virtual COM port pairs (com0com) for PC-to-PC RTU testing without physical hardware.
ASCII framing mode for legacy serial systems. Full compliance with Modbus ASCII spec including LRC checksum and start/end characters.
UDP-based Modbus for low-latency broadcast applications. Included in the standard license — no extra cost.
Configure Coils (0x), Discrete Inputs (1x), Input Registers (3x), and Holding Registers (4x) independently. Set any value in any register — integers, floats, hex, binary, BCD.
Full address space support. Define any register map that matches your real device specification — from simple 10-register sensors to complex 1000-register drive parameter sets.
Run up to 8 slave instances simultaneously on different Unit IDs (1–247). Simulate an entire Modbus network — multiple devices on the same TCP port or serial bus.
A scrollable request log shows every read/write request from your master: function code, register address, value, timestamp. Essential for debugging PLC programs and SCADA drivers.
Configure the slave to return any Modbus exception code (01–11) for specific register ranges or function codes. Test how your master handles Illegal Address, Device Failure, and other errors.
Add configurable response delays (milliseconds) to simulate slow devices or network latency. Test your master application's timeout handling and retry logic under real-world conditions.
Import register maps from CSV files to quickly load a device's full register configuration. Export current register values for documentation or to share test setups with colleagues.
Set registers to auto-increment, random, or sinusoidal patterns to simulate live sensor data. Your SCADA screens show changing values without manual input.
Configure all four types in the slave simulator
| Register Type | Address Range | Read FC | Write FC | Typical Use |
|---|---|---|---|---|
| Coils (0x) | 00001–09999 | FC01 | FC05, FC15 | Digital outputs — relay on/off, valve open/close |
| Discrete Inputs (1x) | 10001–19999 | FC02 | Read-only | Digital inputs — switches, sensors, status bits |
| Input Registers (3x) | 30001–39999 | FC04 | Read-only | Analog inputs — temperature, pressure, current readings |
| Holding Registers (4x) | 40001–49999 | FC03 | FC06, FC16 | Analog outputs, setpoints, configuration parameters |
Select Modbus TCP (default port 502), Modbus RTU (select COM port and baud rate), or ASCII. For TCP testing on a single PC, use 127.0.0.1:502.
Set values in the Holding Registers, Coils, Input Registers, and Discrete Inputs tables. Import a CSV register map if you have one, or enter values manually.
Click Start. Your SCADA, HMI, Python script, or PLC connects to the simulator. Watch the request log to see every poll — function code, register address, value written, timestamp.
ModbusSimulator includes both Master and Slave in a single license at $99 one-time. Run the master to poll your real device, and the slave to test your master application — all in one tool.
The Modbus master (client) initiates all communication — it sends read/write requests. The Modbus slave (server) waits for requests and responds with data or acknowledgements. Real-world slaves are PLCs, energy meters, drives, and sensors. A slave simulator replaces those devices in testing so you can develop and validate the master application without physical hardware.
Install com0com (free, open source) to create a virtual COM port pair on Windows — e.g., COM10 and COM11. Connect ModbusSimulator's slave on COM10 and your master application on COM11. This gives you a complete RTU loop on a single PC with no physical adapter needed. Set both sides to the same baud rate, parity, and stop bits (e.g., 9600, N, 1).
Yes, over Modbus TCP. Multiple SCADA clients, HMI displays, and monitoring tools can all connect to the simulator's TCP port at the same time — just as a real Modbus TCP device allows multiple client connections. For RTU mode, only one master at a time connects (as with real RS-485 networks).
Modbus holds 16-bit values per register. A 32-bit float occupies two consecutive registers (e.g., 40001–40002). In ModbusSimulator, enter the float value and select "32-bit float" as the data type — the simulator automatically handles the register-pair encoding, byte order (big-endian or little-endian), and word-swap options to match your device's specification.
Yes. ModbusSimulator exposes a standard Modbus TCP interface (port 502 by default) that any Modbus-capable SCADA system can connect to — Ignition, Wonderware/AVEVA, WinCC, iFIX, Citect, InTouch, and custom applications. Configure the SCADA's Modbus driver to point to 127.0.0.1:502 (or the PC's IP) and it will communicate with the simulator just like a real device.
ModbusSimulator offers a full-featured 30-day free trial — no credit card, no registration required. After the trial, a one-time license costs $99, which includes Master mode, Slave mode, all protocol variants (TCP, RTU, ASCII, UDP), and free updates. There is no subscription.
No hardware needed · Windows 10/11 · Download in 30 seconds
Questions? Email [email protected]