ModTest - Automated Modbus tester

ModTest is an automated test program that enables you to develop and run test suites for Modbus devices.

Using ModTest, you can define commands together with their expected results, and send the commands to a Modbus slave. ModTest will automatically compare the actual results from the slave with the expected results, and flag any differences as test failures.

The commands can be saved and used as test suite for initial development of a slave device, for production testing of devices, and for regression testing of device modifications.

ModTest's other main features are:

  • Informative tracing of all Modbus messages sent and received providing interpreted data to aid understanding. All data that is sent or received may also be traced as raw data (in hex).
  • Logging to a file, or a window, of tracing and diagnostic messages.
  • All configuration settings may be saved to and restored from files, in XML format.
  • Full support for coils, discrete inputs, input registers, holding registers and file 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
    • 12 Get Comm Event Log
    • 15 Write Multiple Coils
    • 16 Write Multiple Holding Registers
    • 17 Report Slave ID
    • 20 Read File Record
    • 21 Write File Record
    • 22 Mask Write Holding Register
    • 23 Read/Write Multiple Holding Registers
    • 24 Read FIFO Queue
    • 43/14 Read Device Identification
    • Custom commands
    • Invalid commands - for testing the slave's error handling
  • 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
    • Modbus UDP (also known as Modbus TCP encapsulated in UDP)
    • Modbus RTU encapsulated in UDP
    • Modbus ASCII encapsulated in UDP
  • All known extensions of the Modbus protocol for handling 32-bit and 64-bit integers and floating-point numbers are supported (including Enron/Daniel Modbus).
  • Full support for exception responses 10/0x0A ("Gateway Path Unavailable") and 11/0x0B ("Target Device Failed To Respond").
  • 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.

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


ModTest screenshot - Command Table

ModTest screenshot - View/Edit Command