ModMultiSim - Programmable Modbus simulator for multiple devices

ModMultiSim is a programmable Modbus simulator that enables realistic simulation of multiple Modbus slaves in their environment. Connect your Modbus masters to ModMultiSim, instead of real Modbus slave devices, in order to test and configure the masters.

Using a simple control language you can simulate Modbus slaves 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. You can also simulate environment changes (e.g. viscosity, flow) that are independent of a slave.

ModMultiSim displays the simulated environment and Modbus device registers as they change, and provides a trace of Modbus messages between slaves and masters. It also has an online manual/troubleshooting/HOWTO facility.

ModMultiSim's other main features are:

  • 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
    • 7 Read Exception Status
    • 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
  • Cross-platform: runs on any system that supports Java 1.4 or later - including Windows, Linux, Solaris and AIX.
  • 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).
  • Can transfer a mixture of integers and floats, of different sizes, in a single message.
  • 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).
  • Supports broadcast requests (slave ID 0).
  • All configuration settings and register definitions may be saved to and restored from files.
  • Online example simulations in ModMultiSim

ModMultiSim main window

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

Screenshots

Trace window

ModMultiSim trace window

Dialog for adding an environment property

ModMultiSim dialog for adding environment property

Troubleshoot fragment

ModMultiSim troubleshoot fragment

HOWTO fragment

ModMultiSim HOWTO fragment