Simulate Modbus RTU slave and master devices on Windows over RS-485, RS-232, or virtual COM port pairs. Test PLCs, VFD drives, energy meters, and sensors without hardware.
No registration · No credit card · Windows 10/11 · Download in 30 seconds
Modbus RTU (Remote Terminal Unit) is the most widely deployed variant of the Modbus protocol. It communicates over serial RS-485 or RS-232 buses, uses compact binary encoding with CRC-16 error checking, and follows a single-master/multiple-slave architecture. One Modbus master controls up to 247 slave devices on a single RS-485 bus.
Modbus RTU remains the dominant protocol for legacy PLCs, VFD drives, energy meters, temperature controllers, flow meters, and building automation devices. Despite being over 40 years old, billions of industrial devices still speak Modbus RTU.
A Modbus RTU simulator lets you develop and test Modbus RTU master applications — SCADA drivers, PLC communication blocks, Python scripts — without connecting real hardware. Set register values in the simulator, run your master, and validate the communication logic before commissioning.
Connect a USB-to-RS-485 adapter or RS-232 cable and run the simulator on a real serial port. Configurable baud rate (1200–115200), parity (None/Even/Odd), data bits (7/8), stop bits (1/2). Matches any legacy device specification exactly.
Use com0com or similar to create a virtual COM port pair (e.g., COM10/COM11). Run the RTU slave on COM10, your master on COM11. Fully functional Modbus RTU loop on a single PC with no serial adapter. Ideal for software development and CI/CD testing.
Simulate up to 8 slaves (Unit IDs 1–247) on a single COM port — exactly as a real RS-485 network operates. Each slave has its own independent register map. Test your master's ability to poll multiple devices, handle Unit ID addressing, and manage bus timing.
Configure all four Modbus register types: Holding Registers (FC03/FC16), Coils (FC01/FC05/FC15), Input Registers (FC04), Discrete Inputs (FC02). Import CSV register maps from your device datasheet. Supports INT16, UINT16, INT32, UINT32, FLOAT32 data types with configurable byte order.
Switch to Master mode to poll a real Modbus RTU device on the same COM port. Configure polling interval, register range, and function codes. View live values and log all transactions with timestamps and CRC status.
Configure the simulator to return Modbus exception responses for specific register ranges or function codes — Illegal Function (01), Illegal Address (02), Illegal Data Value (03), Device Failure (04). Test your master's error handling logic without breaking real hardware.
See every RTU frame — raw bytes, function code, Unit ID, register address, CRC check result, and response time. Export the log to CSV for debugging sessions or client documentation.
Switch to Modbus ASCII (same serial port, hex-encoded framing, LRC checksum) with one click. Full support for legacy ASCII-mode devices. Same register configuration, same UI — just a different framing layer.
Use a virtual COM port pair to get a complete Modbus RTU test loop on one PC. Here's how:
Download com0com (free, open-source) and install. In the com0com Setup, create a port pair — e.g., COM10 ↔ COM11. This creates a virtual null-modem connection between two COM ports on the same PC.
Open ModbusSimulator, select Modbus RTU Slave, choose COM10, set baud rate to 9600, parity None, stop bits 1. Set Unit ID to 1. Enter register values. Click Start.
Configure your SCADA system, PLC programming software, or test script to use COM11 at the same baud rate and settings. It communicates with the simulator as if it were a real RS-485 device on the other end of a cable.
Tip: For RS-485 testing with real hardware, connect a USB-to-RS-485 adapter (FTDI-based adapters work well). The adapter creates a COM port that ModbusSimulator uses directly. Use proper RS-485 termination (120Ω) on long bus runs.
Test FC03 read and FC16 write blocks in ladder logic or ST programs before the field device arrives. Run the simulator as the slave on a virtual COM port and the PLC software (Siemens TIA Portal, Codesys, RSLogix) as the master.
Configure your SCADA Modbus RTU driver and test tag bindings against a known register map. Verify that engineering unit scaling, alarm limits, and data types are correct before connecting the real PLC or meter.
Simulate the Modbus register map of a VFD drive (ABB, Siemens Sinamics, Danfoss, Schneider ATV) during control system development. Test speed setpoint writes (FC16) and status reads (FC03) without the drive powered up.
Simulate energy meter registers (voltage, current, power, energy kWh) for power monitoring system development. Set 32-bit float values in the correct byte order to match meters like Eastron SDM630 or Schneider iEM.
Test pymodbus, minimalmodbus, or umodbus client scripts against the simulator running on a virtual COM port. Reproduce timeout errors, CRC errors, and exception responses on demand to harden your error handling code.
Teach Modbus RTU protocol — addressing, function codes, CRC, byte order — using the simulator as a hands-on training device. No RS-485 hardware required; everything runs on a single Windows laptop.
| Device Type | Baud Rate | Parity | Data Bits | Stop Bits |
|---|---|---|---|---|
| Siemens S7-1200/1500 (Modbus RTU) | 9600 or 19200 | Even | 8 | 1 |
| Schneider ATV Drives | 19200 | None | 8 | 1 |
| ABB VFD Drives | 9600 | None | 8 | 1 |
| Eastron SDM Energy Meters | 9600 | None | 8 | 1 |
| Delta PLC (DVP/AS) | 9600 | Even | 7 | 1 |
| Mitsubishi FX/Q Series | 19200 | Even | 7 | 1 |
| Generic Modbus RTU | 9600 | None | 8 | 1 |
Always match baud rate, parity, data bits, and stop bits exactly between master and slave. A mismatch causes CRC errors or no response.
ModbusSimulator supports both Modbus RTU and Modbus TCP in a single $99 license. Switch between serial and Ethernet with one click — same register map, same UI. No need to buy separate tools for RTU and TCP.
Install com0com (free, open-source) to create a virtual COM port pair — e.g., COM10 and COM11. Run ModbusSimulator's RTU slave on COM10. Connect your SCADA, PLC software, or test script to COM11. Both ends use the same baud rate and serial settings. The virtual pair passes data between them exactly like a real RS-485 cable would — no physical adapter needed.
9600 baud is the most common default for Modbus RTU devices. Many modern PLCs and drives also support 19200 or 38400 baud for faster polling. The baud rate must be identical on both master and slave — a mismatch causes framing errors and no response. Check your device manual for the factory default; most allow configuration via the device keypad or parameter software.
Yes. A single RS-485 bus supports up to 247 slaves (Unit IDs 1–247) with one master. ModbusSimulator can emulate up to 8 slaves simultaneously on a single COM port, each with its own Unit ID and register map. This lets you test a master application that polls multiple devices — without needing multiple physical hardware units.
Yes. Modbus RTU registers are 16-bit (holding registers, input registers). 32-bit values — float, INT32, UINT32 — span two consecutive registers. ModbusSimulator lets you set a 32-bit float value and choose the byte order (ABCD big-endian, CDAB little-endian, BADC/DCBA mid-swapped) to match your device's register documentation. This is critical for energy meters and VFD drives that use IEEE 754 float encoding.
ModbusSimulator generates valid CRC-16 frames on all responses. To test your master's CRC error handling, you can use a serial terminal or packet injection tool to inject corrupted frames. Alternatively, configure the simulator to return exception responses — which triggers error paths in your master code — for specific register addresses or function codes.
Yes. ModbusSimulator implements the standard Modbus RTU specification. Any compliant Modbus RTU master — Siemens TIA Portal Modbus RTU blocks, Codesys Modbus SL library, ABB AC500 Modbus driver, Schneider Modicon Modbus — can communicate with the simulator. Configure the PLC's COM port settings to match the simulator's baud rate, parity, and stop bits.
RS-485 · RS-232 · Virtual COM · Master + Slave · Windows 10/11
Questions? Email [email protected]