-

Modbus/TCP Configuration

This topic contains the following sections:

General on Modbus/TCP

Modbus/TCP is an open client/server protocol for control communication, in which various functions for read and write access to digital inputs and outputs and to registers are defined.

In the Modbus/TCP network, the device requesting information is the Modbus/TCP client, and the device supplying information is the Modbus/TCP server. The Modbus/TCP system always consists of one client that triggers the request and initiates communication with one or more servers (a Modbus/TCP server cannot initiate communication to a Modbus/TCP client). Each server is accessed by a unique address (Unit ID).

After the connection between the client and server is established, the client device initiates a transaction (request for information) and sends it to one or more Modbus/TCP servers located on the network. The Modbus/TCP server then processes the request (i.e., reads from and writes to Modbus/TCP registers) and sends back a response. Each client request consists (amongst others) of a server address, a function code defining the requested action from the addressed server, and a checksum (defines the end of the request). If no error occurs, the server responses by supplying the data as requested or by confirming that the action requested by the Modbus/TCP client was carried out. The server response (message) contains the server's address, the function code (same function code as in the request) data, and a checksum.

Further Info
This topic does not explain in detail how the Modbus/TCP protocol works. For detailed information on the Modbus/TCP protocol see www.modbus.org.

Modbus/TCP function codes

The Modbus/TCP protocol defines several function codes that are used to access the Modbus/TCP registers. The function codes define the message type and the action (read or write data over the Modbus/TCP network) to be performed on the Modbus/TCP server. In PLCnext Engineer, the following function codes are implemented from the standard Modbus/TCP protocol:

Function codeFunction nameDescription
FC01Read CoilsRead the status (ON or OFF) of 1 to 2000 contiguous coils of the server.
FC03Read Holding RegistersRead one or more output holding registers (1 register = 2 bytes).
FC04Read Input RegistersRead from 1 to 125 contiguous input registers of the server.
FC05Write Single CoilWrite a single bit output to ON (sets the bit to 0xFF00) or OFF (bit = 0x0000).
FC06Write Single RegisterWrite a single input register or output register.
FC15Write Multiple CoilsWrite a single bit output to ON (sets the bit to 0xFF00) or OFF (bit = 0x0000) for each coil in a sequence of coils.
FC16Write Multiple RegistersWrite a block of contiguous input or output registers (1 to 123 registers).
FC23Read/Write Multiple RegistersPerforms a combination of one read operation and one write operation in a single Modbus/TCP transaction. The write operation is performed before the read operation.

Modbus/TCP registers

In the Modbus/TCP protocol data to be transmitted or received is organized in registers which are accessed by a specific address. All data is stored in coil registers (1-bit), discrete input registers (1-bit), holding registers (16-bits), and input registers (16-bits). For identification of the variables on the server, register addresses are used. The register address is a 16-bit unsigned integer which is transmitted with every Modbus/TCP request triggered by the client. The following table shows the address ranges, the corresponding data types that can be stored in it and the read/write permissions of the data types (read permission = register can be read by the client; write permission = client can write to the register).

Address range (dec)Modbus/TCP data type (register type)Access
00001...09999CoilRead/Write
10001...19999Discrete inputRead-only
30001...39999Input registerRead-only
40001...49999Holding registerRead/Write

Further Info
See the topic "Configuring Modbus/TCP Servers" for details how to configure the registers for a Modbus/TCP server.

Modbus/TCP configuration in PLCnext Engineer

Note
Modbus/TCP configuration is only supported for PLCnext Technology targets with a firmware version 2024.6 or newer.

Note
The Modbus Client TCP service must be enabled on the WBM page 'System Services' of the controller to configure Modbus communication.

In PLCnext Engineer, configuration of the Modbus/TCP client and servers is done with the editors available for the Modbus TCP PLANT node (node is only available if your configuration contains a controller with an integrated Modbus/TCP controller). Here you: