ModSlaveSim - Programmable Modbus slave simulator

ModSlaveSim is a programmable simulator that enables realistic simulation of a Modbus slave in its environment. Connect your Modbus masters to ModSlaveSim, instead of a real Modbus slave device, in order to test and configure the masters.

ModSlaveSim deployment example

Using a simple control language you can simulate a Modbus slave measuring environment properties (e.g. flow rate), controlling the environment (e.g. opening valves), performing internal calculations (e.g. averages), and responding to Modbus commands from masters.

ModSlaveSim displays the Modbus device registers as they change, and provides a trace of Modbus messages between slave and masters.

ModSlaveSim's other main features are:

  • Cross-platform: runs on any system that supports Java JRE 1.6 or later (serial communications is only supported on Windows and Linux x86 architectures).
  • Manual, troubleshooting guide, and example simulations (with downloadable settings files).
  • Informative interpreted trace of all Modbus messages sent and received.
  • All configuration settings may be saved to and restored from files, in XML format.
  • Register definitions may be imported/exported in CSV format.
  • Full support for coils, discrete inputs, input registers and holding registers, using the following commands:
    • 1 Read Coils
    • 2 Read Discrete Inputs
    • 3 Read Holding Registers
    • 4 Read Input Registers
    • 5 Write Single Coil
    • 6 Write Single Holding Register
    • 8 Diagnostics
    • 11 Get Comm Event Counter
    • 15 Write Multiple Coils
    • 16 Write Multiple Holding Registers
    • 17 Report Slave ID
    • 22 Mask Write Holding Register
    • 23 Read/Write Multiple Holding Registers
  • Supports network and serial (RS232/RS422/RS485) interfaces using the following protocol variants:
    • Modbus TCP (also known as Modbus TCP/IP)
    • Modbus RTU
    • Modbus ASCII
    • Modbus RTU encapsulated in TCP
    • Modbus ASCII encapsulated in TCP
  • All known extensions of the Modbus protocol for handling 32-bit and 64-bit integers and floating-point numbers are supported (including Enron/Daniels Modbus).
  • Flexible address mapping allows separate or overlaid address spaces (for coils, discrete inputs, input registers, and holding registers) with arbitrary bases.
  • Registers are individually configurable for type (integer or float), size (16/32/64-bit), and radix (binary, octal, decimal, or hex).

You can download the complete version of ModSlaveSim for a free 3-day evaluation period.

Screenshot

ModSlaveSim main window