Preset Multiple Registers (Function Code 16)

Query

The Function Code allows you to modify the contents of a Modbus 4x range in the slave. This writes up to 125 registers at a time. Since the controller is actively scanning, it can alter the content of any holding register at any time.
TIP: Functions 5, 6, 15, and 16 are the only messages that are recognized as valid for broadcast. This is the structure of the message being sent out to the Modbus network. The following byte values are displayed in hexadecimal format.
The following example is a request to write two registers starting at register 40002 in slave 11.
Node Address
Function Code
Data Start Address High
Data Start Address Low
Number of Points High
Number of Points Low
Byte Count
High Data
Low Data
High Data
Low Data
Error Check Field (2 bytes)
0B
10
00
01
00
02
04
00
0A
01
02
CRC

Response

The normal response to a function 16 query is to echo the address, function code, starting address and number of registers to be loaded.
Node Address
Function Code
Data Start Address High
Data Start Address Low
Number of Points High
Number of Points Low
Error Check Field (2 bytes)
0B
10
00
01
00
02
CRC
Provide Feedback
Have questions or feedback about this documentation? Please submit your feedback here.
Normal