NOTE: When requesting a variable that is out of the range configured in the VM600,
the exception code “02” will be returned to indicate the use of an illegal data
address.
Request frame
1 byte 1 byte 2 bytes 2 bytes 2 bytes
Slave
address
Modbus
function
First register address
to be read
Number of words
(registers) to be read
CRC
Response frame
1 byte 1 byte 1 byte n bytes 2 bytes
Address Function Byte
count
Register values CRC
Function 03/04 (Read multiple register)
Example:
Read one register from Modbus address 01, starting from register 55 (decimal).
Request frame
Note 1:
Register 01 (decimal) has register address 0x00 (hexadecimal)
Register 17 (decimal) has register address 0x10 (hexadecimal)
Register 49 (decimal) has register address 0x30 (hexadecimal) and so on.
An example response if register 55 has a value of 4660 (decimal), corresponding to
hexadecimal 0x1234, is as follows:
Response frame
0x01 0x03 0x00 0x36 0x00 0x01 0xXX 0xXX
Slave
address
Modbus
function
First register address
to be read = 0x0036
(See Note 1)
1 register to be read CRC
0x01 0x03 0x02 0x12 0x34 2 bytes
Address Function Byte
count
Register value CRC
Figure 8-5: Formats and example for Modbus function 03