Modbus RTU Simulator — Free Download & Setup Guide
If you work with PLCs, SCADA systems, or any industrial equipment that communicates over serial Modbus, you know how painful it is to debug communication issues on a live production line. A Modbus RTU simulator lets you replicate real-world serial communication on your desktop — no RS-485 adapters, no fieldbus wiring, no risk of disrupting a running process.
This guide covers everything you need to get started: what Modbus RTU is, how it differs from TCP, step-by-step setup instructions, and how to troubleshoot the most common RTU communication errors. Whether you are commissioning a new device, developing PLC firmware, or validating a SCADA integration, a simulator saves hours of field debugging time.
What Is Modbus RTU?
Modbus RTU (Remote Terminal Unit) is the most widely deployed variant of the Modbus protocol in industrial automation. It transmits data over serial lines — typically RS-485 for multi-drop networks or RS-232 for point-to-point connections.
Key Characteristics of Modbus RTU
- Binary encoding — Data is transmitted in compact binary format, unlike Modbus ASCII which uses hexadecimal text characters. This makes RTU significantly more efficient on the wire.
- CRC-16 error checking — Every RTU frame ends with a 16-bit cyclic redundancy check. The receiver recalculates the CRC and compares it to detect transmission errors caused by electrical noise, cable faults, or timing issues.
- Silent interval framing — RTU frames are delimited by silent intervals of at least 3.5 character times (approximately 4 ms at 9600 baud). There are no start or end characters — the gap between frames is what tells the receiver where one message ends and the next begins.
- Master/slave architecture — One master device initiates all communication. Slave devices (addressed 1–247) respond only when polled. Slaves never transmit unsolicited data.
- Half-duplex communication — On RS-485, the bus is shared. Only one device can transmit at a time. The master sends a request, then switches to receive mode and waits for the slave's response.
RTU Frame Structure
Every Modbus RTU frame follows this structure:
| Field | Size | Description |
|---|---|---|
| Slave Address | 1 byte | Target device address (1–247, or 0 for broadcast) |
| Function Code | 1 byte | Operation to perform (e.g., 03 = Read Holding Registers) |
| Data | N bytes | Request parameters or response payload |
| CRC | 2 bytes | CRC-16 checksum (low byte first) |
For example, a master reading 10 holding registers starting at address 0 from slave 1 sends: 01 03 00 00 00 0A C5 CD. The first byte is the slave address, 03 is FC03 (Read Holding Registers), 00 00 is the start address, 00 0A is the quantity (10 registers), and the last two bytes are the CRC-16.
Modbus RTU vs TCP — Quick Comparison
If you are deciding between RTU and TCP for a new project, or need to understand both for testing purposes, here is how they compare. For a detailed analysis, see our Modbus RTU vs TCP comparison guide.
| Feature | Modbus RTU | Modbus TCP |
|---|---|---|
| Transport Layer | Serial (RS-485, RS-232) | Ethernet (TCP/IP) |
| Encoding | Binary with CRC-16 | Binary with MBAP header |
| Speed | Up to 115200 baud (typical) | 10/100/1000 Mbps |
| Max Devices | 247 per bus | Unlimited (IP-based) |
| Cable Distance | Up to 1200m (RS-485) | 100m per segment (Ethernet) |
| Wiring | 2-wire twisted pair | Cat5/Cat6 Ethernet cable |
| Error Detection | CRC-16 | TCP checksum |
| Typical Use | Field devices, legacy PLCs, sensors | Modern SCADA, HMI, cloud gateways |
Modbus RTU remains dominant in brownfield installations and for connecting field-level instruments (temperature transmitters, flow meters, energy meters) where RS-485 wiring is already in place. TCP is preferred for new installations that have Ethernet infrastructure.
How to Set Up a Modbus RTU Simulator
Follow these steps to set up a complete RTU simulation environment on your Windows PC. You will configure both a slave (server) that holds register data and a master (client) that polls the slave — all without any physical hardware.
Step 1: Download the Simulator
Download Modbus Simulator from modbussimulator.com. The installer is under 50 MB and runs on Windows 10/11. A free trial is included so you can evaluate all features before purchasing.
After installation, launch the application. You will see separate tabs for Master and Slave modes.
Step 2: Configure Serial Port Settings
Before you can communicate over RTU, the serial port parameters must match on both ends. These are the settings you need to configure:
- COM Port — Select the serial port from the dropdown. If you do not have physical RS-485 hardware, use virtual COM port software (com0com is free and open-source) to create a pair of linked virtual ports (e.g., COM3 ↔ COM4).
- Baud Rate — 9600 is the Modbus default. Other common values: 19200, 38400, 57600, 115200. Both master and slave must use the same rate.
- Data Bits — Always 8 for Modbus RTU.
- Parity — Even parity is the Modbus default. Many devices also support None (with 2 stop bits) or Odd parity. Check your device documentation.
- Stop Bits — 1 stop bit when using parity, 2 stop bits when parity is set to None.
Tip: The most common serial configurations are 9600 8E1 (9600 baud, 8 data bits, Even parity, 1 stop bit) and 9600 8N2 (9600 baud, 8 data bits, No parity, 2 stop bits). If communication fails, mismatched serial settings are the number one cause.
Step 3: Set Up the Slave (Server)
Switch to Slave mode. This creates a virtual Modbus device that responds to master requests:
- Set the Slave ID (1–247). Use 1 if you are testing a single device.
- Configure the register values you want the slave to serve. You can populate holding registers (FC03), input registers (FC04), coils (FC01), and discrete inputs (FC02) with test data.
- Click Start to begin listening on the configured COM port.
The slave will now respond to any master that sends properly formatted RTU requests to its address on that COM port. You can see incoming requests and outgoing responses in the request log, which shows raw hex frames including the CRC bytes. For more on register types and how to configure them, see our guide on Modbus register types.
Step 4: Connect a Master (Client) and Test Communication
Open a second instance or switch to Master mode. Configure the same serial settings (same baud rate, parity, stop bits) but connect to the other end of the virtual COM port pair:
- Set the target slave address to match the slave you configured (e.g., 1).
- Choose the function code (e.g., FC03 to read holding registers).
- Enter the start address and quantity of registers to read.
- Click Send or start a polling loop to continuously read at a set interval.
You should see the register values returned by the slave. If the slave is running on COM3 and the master on COM4 (connected via virtual COM port pair), data flows between them exactly as it would over a physical RS-485 cable.
Step 5: Monitor RTU Frames in Real-Time
One of the most valuable features of a simulator is the ability to inspect raw RTU frames. In the communication log, you can see:
- The exact hex bytes sent by the master (request frame)
- The slave's response frame with register data
- CRC values for both request and response
- Timing between frames (important for detecting 3.5-character silent interval violations)
- Any error responses (exception codes)
This frame-level visibility is essential for diagnosing issues that higher-level tools cannot catch, such as incorrect byte order, CRC mismatches, or timing violations.
Key Features to Look For in a Modbus RTU Simulator
Not all simulators are created equal. When evaluating a Modbus RTU simulation tool, these are the features that matter most for real-world testing:
- Both master and slave modes — You need to simulate both ends of the communication. Some tools only support master mode, which limits their usefulness for PLC firmware development where you need a virtual slave to test against.
- All function codes supported — At minimum: FC01 (Read Coils), FC02 (Read Discrete Inputs), FC03 (Read Holding Registers), FC04 (Read Input Registers), FC05 (Write Single Coil), FC06 (Write Single Register), FC15 (Write Multiple Coils), FC16 (Write Multiple Registers).
- Multiple data display formats — You should be able to view register values as unsigned/signed integers, floating point (IEEE 754), hex, binary, and BCD. A 32-bit float spanning two registers looks like garbage if you only see individual 16-bit values. For help choosing the right tool with proper display capabilities, see our best Modbus simulator tools guide.
- Byte order options — Big Endian, Little Endian, Mid-Big Endian (CDAB), and Mid-Little Endian (BADC). Different manufacturers use different byte orders for multi-register values.
- Raw frame logging — The ability to see exact hex bytes on the wire, including CRC, is critical for debugging protocol-level issues.
- Configurable timeouts and polling intervals — Real-world devices have varying response times. Your simulator should let you set response timeouts (typically 100ms–5000ms) and polling intervals.
- Virtual COM port compatibility — Seamless operation with com0com, VSPE, or other virtual serial port software for hardware-free testing.
Common Modbus RTU Errors and How to Fix Them
Serial communication adds a layer of complexity that TCP does not have. Here are the most frequent RTU issues and their solutions. For more detailed troubleshooting techniques that apply to both RTU and TCP, see our comprehensive Modbus troubleshooting guide.
1. No Response / Timeout
Symptoms: The master sends a request but never receives a response.
- Verify COM port settings match on both sides (baud rate, parity, stop bits)
- Check that the slave address in the request matches the slave's configured ID
- Ensure the slave is actually running and listening on the correct COM port
- If using virtual COM ports, confirm the ports are paired correctly
- Try increasing the response timeout — some devices need 500ms+ to respond
2. CRC Errors
Symptoms: The slave receives the request but the CRC check fails, or the master rejects the response due to CRC mismatch.
- Mismatched baud rate is the most common cause — even a slight mismatch corrupts every frame
- Check parity settings — if one side uses Even parity and the other uses None, bytes will be corrupted
- On physical RS-485, check for electrical noise, loose connections, or missing termination resistors (120Ω)
- Ensure data bits is set to 8 on both sides
3. Illegal Function (Exception Code 01)
Symptoms: The slave responds with an exception code indicating the function code is not supported.
- The slave does not support the requested function code — verify which function codes your device implements
- You may be using FC03 (Read Holding Registers) when the device exposes data on FC04 (Input Registers), or vice versa
4. Illegal Data Address (Exception Code 02)
Symptoms: The slave responds with an exception code indicating the requested register address is out of range.
- Check for off-by-one errors — device documentation might use 1-based addressing while the protocol uses 0-based
- The requested address range (start address + quantity) may exceed the slave's register map
- Some devices have non-contiguous register maps with gaps
5. Garbled or Partial Responses
Symptoms: The master receives data but it appears corrupted or truncated.
- Check for 3.5-character silent interval violations — if the gap between bytes within a frame exceeds 1.5 character times, the receiver may split it into two frames
- On RS-485, check the transmit/receive direction switching — if the transmitter does not release the bus fast enough, response bytes can be lost
- Reduce baud rate to improve reliability, especially on long cable runs
Free vs Paid Modbus RTU Simulators
Several free Modbus RTU tools exist, but they come with significant limitations:
| Feature | Free Tools | Modbus Simulator (Paid) |
|---|---|---|
| Master + Slave modes | Usually one or the other | Both included |
| Display formats | Basic (hex, unsigned) | 21+ formats (float, signed, BCD, etc.) |
| Byte order options | Often fixed to Big Endian | 4 byte orders |
| Raw frame logging | Limited or none | Full hex frame log with timestamps |
| RTU + TCP support | Usually one protocol | Both RTU and TCP |
| Active development | Often abandoned | Regular updates (current: v1.1.2) |
| Support | Community forums only | Email support included |
Free tools like ModRSsim2 or diagslave work for basic testing, but if you are doing serious development or commissioning work, a professional tool pays for itself in the first day of debugging time it saves. Modbus Simulator includes a free trial so you can evaluate it on your actual project before committing.
Frequently Asked Questions
What is a Modbus RTU simulator?
A Modbus RTU simulator is a software tool that emulates Modbus RTU master or slave devices over a serial connection (RS-485 or RS-232). It allows engineers to test, debug, and develop Modbus communication without needing physical hardware. The simulator generates and responds to RTU frames with proper CRC-16 error checking, just like a real device.
Can I use a Modbus RTU simulator without physical serial ports?
Yes. You can use virtual COM port software (such as com0com or Virtual Serial Port Driver) to create pairs of virtual serial ports on your computer. The simulator connects to one port, and your application connects to the other. This is a common setup for development and testing when RS-485 hardware is not available.
What is the difference between Modbus RTU and Modbus ASCII?
Both Modbus RTU and ASCII operate over serial lines, but they differ in framing. Modbus RTU uses compact binary encoding with CRC-16 error checking and silent intervals for frame delimiting, making it faster and more efficient. Modbus ASCII uses human-readable hexadecimal characters with LRC error checking and start/end characters (colon and CR/LF). RTU is far more common in industrial applications due to its higher throughput.
What baud rate should I use for Modbus RTU?
The most common baud rate for Modbus RTU is 9600 bps, which is also the default in the Modbus specification. Other frequently used rates include 19200, 38400, 57600, and 115200 bps. The baud rate must match between all devices on the same RS-485 bus. Higher baud rates provide faster communication but may be less reliable over long cable runs or in electrically noisy environments.
How many devices can I connect on a single Modbus RTU bus?
The Modbus RTU protocol supports up to 247 slave devices on a single RS-485 bus (addresses 1 through 247). Address 0 is reserved for broadcast messages. In practice, the actual number of devices depends on the RS-485 transceiver specifications — standard transceivers support 32 unit loads, while high-impedance transceivers can support 128 or 256 devices on the same bus.
Start Testing Modbus RTU Today
Modbus Simulator supports both RTU and TCP modes, 21+ display formats, raw frame logging, and master/slave simulation. Download the free trial and start testing serial communication in minutes.
Download Free Trial