Rondeau 3535 C1262ABY
CABA, Buenos Aires
C1262ABY Argentina
,

Modbus Master Simulator

Modbus Master is a free simulator developed by EQUINOX that allows you to poll Modbus slave automation devices.

It supports the following protocol variants:

  • Modbus ASCII
  • Modbus RTU
  • Modbus TCP

Regardless of the variant used, it supports data transport both via serial ports and Ethernet (TCP/IP), providing you with greater flexibility than other simulators available in the market.

EQUINOX Modbus Master Simulator

License and Download

This program is open-source software available under the GPLv3 license.

It can be redistributed and used without restrictions, at the user’s responsibility and without warranty.

The program is portable, unzip the ZIP file and start using it.

Download

How to Use

Main Window Parameters

Modbus Settings

Parameter Description
Function code Type of data to poll: Coils, Input Contacts, Holding Registers, Input Registers
Slave address Modbus slave address to poll
First data object Address of the first object to poll (of the selected data type). The base address of the data type to poll (10,000 for Input Registers, 30,000 for Input Registers, 40,000 for Holding Registers) should not be considered in this parameter.
Quantity Number of objects to poll

Operating Mode

Parameter Description
Mode Polling mode (see the table below)
Variant Modbus variant to use: TCP, RTU, or ASCII. Any of the three variants can be used with both serial ports and TCP/IP sockets (according to the configuration set in Settings –> Communication)
Scan rate How often polls will be sent (in seconds)
Data format Format in which received data will be presented (list format or table format)

Mode

Parameter Description
Poll once Poll only once
Poll continuously Poll continuously at intervals defined by “Scan rate”
Poll (step “x”) Poll consecutive blocks of “x” objects each until reaching the total defined in “Quantity,” starting at object “First data object,” with intervals defined by “Scan rate”

Configuration Parameters

These are specified in the Settings –> Communication menu.

Parameter Description
Connection type Select “Serial” for serial ports and TCP/IP for socket usage. This selection does not determine the Modbus variant to use (RTU, TCP, or ASCII) and can be used with any of them, both through serial ports and sockets.

Serial Settings

Parameter Description
Serial port Serial port to use (only for “Connection type” of “Serial”)
Bitrate Speed: 1200, 2400, 4800, 9600, 19200, 38400, 57600, or 115200 bps
Parity Parity: even, odd, mark, space, or none
Data bits Number of data bits
Stop Bits Number of stop bits

TCP/IP Settings

Parameter Description
Host Host to which the simulator will connect. It can be an IP address or a hostname
Port Host port where the Modbus slave you want to connect to is listening

Data Presentation Formats

Table Format

In this mode, cells are displayed, one for each object of the selected data type. Cells corresponding to the polled objects will be filled with the corresponding value (0 or 1 for digital data types or the appropriate value for analog data).

EQUINOX Modbus Master Simulator

List Format

The list of polled objects is displayed. The first column is the object’s address, the second is its name (see the next section: “modbus.map file”), the third column is the current value, the fourth column is the value from the previous poll (useful for comparisons between polls), and the fifth column is the timestamp when each object was polled.

EQUINOX Modbus Master Simulator

modbus.map File

The simulator allows you to define object names for each data type. These names will be used when the data is presented in “List Format.”

To do this, create a file named “modbus.map” in the same folder as the program. The content of the file should follow the example format below:

1,2,2048,CTRL.CBCSWI1.Pos.Oper.ctlVal Select open (1=Select)
1,2,2049,CTRL.CBCSWI1.Pos.Oper.ctlVal Select close (1=Select)
1,2,2050,CTRL.CBCSWI1.Pos.Oper.ctlVal Cancel selection (1=Cancel)
1,2,2051,CTRL.CBCSWI1.Pos.Oper.ctlVal Execute selection (1=Execute)

These are four parameters separated by commas:

Parameter Description
Parameter 1 Modbus slave address
Parameter 2 Data type (1 for Coils, 2 for Input Status, 3 for Holding Registers, 4 for Input registers)
Parameter 3 Object address
Parameter 4 Object name