Chapter 11 RS485 Communication
11-2-10
11.2.8 Read/Write Multiple Holding Registers [17h]
How to read and write multiple holding register data on Modbus communication?
In succession write consecutive multiple holding register data.
The following shows an example in which 50.00 Hz is written to "Output-frequency setting
[F001]" of inverter at slave address 1 and "Output frequency monitor [d001]" is read.
Read register start No. (High)
*2
Register start No. = (Register No.) - 1
Read register start No. (Low)
*2
Number of read registers (High)
*3
Number of read registers (Low)
*3
Write register starting No. (High)
*2
Register start No. = (Register No.) - 1
Write register starting No. (Low)
*2
Number of write registers (High)
*3
Number of write registers (Low)
*3
Number of write data bytes
0000 1388h = 5000d → 50.00 (Hz)
Number of read data bytes
*3
0000 1388h = 5000d → 50.00 (Hz)
*1. Broadcasting is disabled.
*2. Note that the starting number is 1 less than the actual register number. Specify a number of
"(Register No.) - 1".
*3. "The number of data bytes" is not the number of holding registers, but the number of bytes
to be actually written/read. The maximum number of data that can be written/read is 16
registers (32 bytes). If it is exceeded, an exceptional response of exception code "03h" is
returned.
If the command cannot be executed successfully, an exceptional response is returned. For
details, refer to "11.2.9 Exceptional Responses".
Modbus communication of WJ-C1 has restrictions on writing to "2 register length parameter".
For details, refer to "Exception code 27h" in "11.2.9 Exceptional Responses".