Best Modbus Simulator in 2026: Free and Paid Tools Compared
A Modbus simulator lets you test SCADA systems, IoT gateways, and custom Modbus clients without physical hardware. Whether you are commissioning a Schneider PM5560 power meter or developing a Modbus TCP driver for a PLC, a simulator saves hours of field time by letting you validate your code against predictable register values on your desk.
This guide compares the five most relevant Modbus simulators available in 2026, covering features, platform support, pricing, and real-world usability. If you are new to the protocol, start with our What Is Modbus? primer, then come back for the tool comparison.
What Does a Modbus Simulator Do?
A Modbus simulator acts as a stand-in for one or more physical Modbus slave devices on a network. Instead of connecting your master software to a real power meter or PLC, you point it at the simulator. The simulator responds to read and write requests exactly as a physical device would, returning register values from holding registers, input registers, coils, and discrete inputs.
At a minimum, a Modbus slave simulator does three things:
- Listens for Modbus requests over TCP (port 502) or RTU (serial RS485) and responds according to the protocol specification
- Populates registers with values that you can configure manually or that the simulator generates automatically
- Handles all standard function codes: FC01 through FC06 for single reads and writes, FC15 and FC16 for multiple writes
The better simulators go further: they provide device templates with pre-built register maps for real industrial equipment, auto-drifting values that simulate realistic sensor behavior, and master mode so you can both poll devices and simulate them in the same tool. For a deeper look at how registers work and what each type stores, see our Modbus register types guide.
Why You Need a Modbus Simulator
If you work with Modbus in any capacity (system integration, IoT development, SCADA engineering, PLC programming), a simulator eliminates the dependency on physical hardware during development and testing. Here are the most common use cases:
- SCADA testing. Before deploying a SCADA system to a plant floor, test every register mapping, alarm threshold, and trending configuration against a simulator. Catch scaling errors and incorrect byte ordering before you are standing in a switchgear room at 2 AM.
- IoT gateway development. If you are building a Modbus-to-MQTT gateway or a cloud data pipeline, a simulator lets you iterate your driver code without needing a real device on your bench. Test edge cases like timeout handling, exception responses, and 32-bit register decoding.
- Training and onboarding. New engineers can learn Modbus polling, register mapping, and troubleshooting without risk of damaging physical equipment. A simulator provides a safe, repeatable environment for hands-on learning.
- Commissioning preparation. Pre-configure all your register maps, scaling factors, and unit IDs in the simulator. When you arrive on site, swap the simulator IP for the real device IP and everything should just work, or at least you will know the problem is physical wiring, not software configuration.
- Regression testing. Automated test suites can poll a simulator to verify that driver changes, firmware updates, and SCADA configuration modifications do not break existing register mappings.
Top Modbus Simulators Compared
1. MacTools Modbus Poll
MacTools Modbus Poll is a native macOS application that combines both Modbus master polling and slave simulation in a single tool. Built with Rust and Tauri, it runs directly on macOS without Windows, Parallels, Wine, or any virtualization layer. Both Apple Silicon (M1 through M4) and Intel Macs are supported natively. A separate Windows build exists (see Price below).
What sets MacTools apart from every other simulator on this list is device templates. Instead of presenting blank registers that you must populate manually, MacTools includes pre-built register maps for real industrial devices:
- Schneider PM5560 power meter: phase voltage (L-N), current per phase, power factor, frequency, active, reactive and apparent power, THD, kWh import and export totals
- SMA STP 60-US-10 solar inverter: DC string voltage and current, AC voltage and current per phase, AC power, grid frequency, efficiency, daily and cumulative energy yield
- ABB AZL402 water analyzer: pH, ORP (oxidation-reduction potential), turbidity, dissolved oxygen, temperature
- Endress+Hauser Promag 10W flowmeter: volumetric flow rate, totalized volume, conductivity, process temperature
- Daniel 1000 liquid flow computer: flow rate, temperature, pressure, density, net and gross volume accumulation
- Raritan PX3-5902V rack PDU: inlet voltage and current per phase, active power, power factor, total energy, inlet and outlet temperature, humidity
Load a template and the simulator populates registers with addresses, units, data types (UINT16, INT32, FLOAT32, FLOAT64), and auto-drifting values that move like sensor data. Voltage drifts, power factor fluctuates, and energy counters increment over time, so your master software sees values that change instead of static zeros.
MacTools also supports Modbus RTU over USB-to-RS485 and other USB serial adapters that appear as a serial port on your Mac, with direct macOS serial port access: no VM passthrough issues. Custom register maps can be defined for any Modbus device not covered by the built-in templates.
Price (Mac): $19.99 one-time, no subscription, no annual renewal.
Windows: there is also a Modbus Poll build for Windows 10 and 11 (x64 and ARM64), as a direct download. It is free with limits (up to 20 polled values, one saved profile, one open connection). Pro is $19.99 one-time and adds the slave simulator with device templates, Modbus RTU over serial, and live trends. The installer is not code-signed, so Windows SmartScreen warns on first run.
2. Modbus Slave (Windows)
Modbus Slave is the companion tool to Modbus Poll, both published by Witte Software. It is a Windows-only application that simulates up to 100 Modbus slave devices in 100 windows. Each simulated device gets its own register space that you can configure manually.
The interface is a spreadsheet-style grid where you set register addresses and values. It supports Modbus TCP and RTU, all standard function codes, and can simulate multiple unit IDs on a single TCP connection. The communication logging is thorough, showing raw request and response frames with byte-level detail.
The limitations are significant. First, it is Windows-only. If you use macOS, you need Parallels Desktop ($99/year) or another VM, and USB-to-RS485 passthrough on Apple Silicon is unreliable. Second, Modbus Slave is slave-only. If you also need master polling capability, you must buy Modbus Poll separately for another $129. Third, there are no device templates. Every register must be configured manually: address, data type, scaling, and value. If you want to simulate a Schneider PM5560, you need the device's Modbus register manual open on your desk and 30 minutes of data entry.
Price: $129 for a single license. Master capability requires Modbus Poll ($129) as a separate purchase.
3. diagslave
diagslave is a free command-line Modbus slave simulator from modbusdriver.com. It ships as binaries for Windows and Linux, including ARM Linux such as a Raspberry Pi (no macOS build). It runs as a Modbus TCP, UDP, RTU, or ASCII server on a TCP or serial port and answers master requests.
Setup is minimal: run the binary with flags for protocol, port, baud rate, and slave address. There is no GUI, no real-time editing of register values, and no way to simulate realistic sensor behavior.
diagslave is adequate for quick connectivity tests, verifying that your master can reach a TCP endpoint and parse a response. For anything beyond that (device-specific register maps, auto-drifting values, debugging complex register layouts), it falls short.
Price: Free.
4. PyModSlave
PyModSlave is a free Modbus slave simulator written in Python with a PyQt5 GUI. It runs wherever Python and PyQt5 do, including Windows, Linux, and macOS. It starts a TCP or RTU slave with the four data blocks (coils, discrete inputs, input registers, holding registers) filled with random values, and you can set individual registers.
Being cross-platform is PyModSlave's main advantage. If you need a quick simulator on Linux or macOS and do not want to spend money, PyModSlave works. It supports Modbus TCP and RTU, basic register configuration, and responds to standard function codes.
The trade-offs are typical of a small open-source project: releases on PyPI are several years old, there are no device templates, no auto-drifting values (values start random, then you edit them by hand), and no custom register map support. Python dependency management (PyQt5, modbus-tk) can be fragile across OS versions. It works, but it feels more like a prototype than a tool you would rely on during commissioning.
Price: Free (open source).
5. ModRSsim2
ModRSsim2 is an open-source Modbus simulator for Windows with a classic desktop GUI for editing register values in a table layout. It simulates Modbus TCP and RTU slaves.
The interface shows holding registers, input registers, coils, and discrete inputs in separate tabs. You can edit individual register values and see them update in real time when a master polls the simulator. It supports multiple simultaneous TCP connections and configurable unit IDs.
Limitations: Windows-only, a dated desktop interface, no device templates, no auto-drifting values, and very little recent development. For engineers who need to simulate specific devices with realistic register behavior, ModRSsim2 does not go far enough.
Price: Free (open source, AGPL-3.0).
Comparison Table
Device Templates: Why They Matter
Most Modbus simulators give you a blank grid of registers initialized to zero. You manually set register 0 to 23000 (representing 230.0V), register 1 to 500 (5.00A), and hope your scaling is correct. This works for a basic connectivity test. It fails when you need to validate that your SCADA system correctly reads a Schneider PM5560's three-phase voltage with the right byte ordering, data type (FLOAT32 vs INT32), and scaling factor.
Device templates solve this by providing pre-built register maps that match real industrial devices. When you load the PM5560 template in MacTools Modbus Poll, the simulator knows that:
- Register address
0x0000(holding register) contains Phase A-N voltage as a FLOAT32 value across two registers - Register address
0x0008contains Phase A current - Register address
0x000Ccontains total active power - Register address
0x002Econtains cumulative kWh import as an INT64 across four registers
The values auto-drift realistically. Line voltage hovers around 230V with small fluctuations. Current varies with simulated load. Energy counters increment over time. Your SCADA trending charts look like real plant data, not flat lines at zero.
This matters because blank register simulators do not catch data type errors. If your driver reads a FLOAT32 value as two UINT16 registers and concatenates them wrong, a blank simulator will not reveal the bug: both registers are zero, so the concatenated value is also zero, which looks plausible. A device template with realistic FLOAT32 values will immediately show garbage readings in your SCADA, making the bug obvious.
The same principle applies to the SMA solar inverter template (string-level DC voltage, AC power output, energy yield), the ABB water analyzer template (pH, turbidity, dissolved oxygen), and every other template. Realistic register behavior catches bugs that blank registers cannot.
Try MacTools Modbus Poll
Native Modbus simulator for macOS, with a Windows 10 and 11 build. Master and slave modes in one app. Device templates for PM5560, SMA, ABB, and more with realistic auto-drifting values. Mac: $19.99 one-time, no subscription. Windows: free with limits, Pro $19.99 one-time.
Get MacTools Modbus PollOther macOS Modbus Tools You Might Need
Besides Modbus simulation, field engineers working on macOS often need complementary protocol tools. MacTools also includes:
- Serial Terminal for macOS: RS232/RS485 terminal with hex view and protocol analysis for debugging raw serial frames
- MQTT Explorer for macOS: native MQTT broker and client for testing IoT integrations alongside Modbus devices
- S7 Explorer for macOS: connect to Siemens S7-1200/1500 PLCs and read/write data blocks without Windows
- BLE Inspector for macOS: scan and debug Bluetooth Low Energy peripherals used in industrial sensor networks
Related: Full SCADA System
Need continuous monitoring with dashboards, alarms, and trending across your Modbus TCP devices? Voltrus SCADA supports Modbus TCP, OPC-UA, Siemens S7, EtherNet/IP, DNP3, BACnet and MQTT. The core is free and open source (AGPL-3.0).