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.

ModMultiSim deployment example

Using a simple control language you can simulate Modbus slaves measuring environment properties (e.g. flow rate), controlling the environment, 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's main features are:

  • The simulated environment and Modbus device registers are displayed as they change in the simulation.
  • Cross-platform: runs on any system that supports Java JRE 6 or later (serial communications is only supported on Windows, Linux x86 and Raspberry Pi ARM architectures).
  • Manual and troubleshooting guide.
  • Simulation examples included in the download, which can now be loaded from the File menu.
  • Informative log of all Modbus messages sent and received providing interpreted data to aid understanding. The log may optionally include register values that have been read, or written to, by a master. The log may also include, or be restricted to, Modbus messages as raw data (in Hex).
  • Optional logging to a file, or a window, of Modbus messages sent and received.
  • All configuration settings may be saved to, and restored from, a file in XML format.
  • Register definitions may be imported and 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 can be individually configured for type (integer or float), size (16/32/64-bit), and radix (binary, octal, decimal, or hex).

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

Screenshots

Main window

ModMultiSim main window

Editing settings

ModMultiSim window for editing settings