This command is requesting the content of holding registers 40024 to 40025 from
the slave device with address 01.
01 03 0017 0002 740F
01: Slave Address (01 hex)
03: Function Code (Read holding registers)
0017: The Data Address of the first register requested. (40024 - 40001 =
17 hex)
0002: The total number of registers requested. (read 2 registers 40024 to
40025)
740F: CRC (cyclic redundancy check) for error checking.
b. Response:
01 03 04 003C 003C 3A2E
01: Slave Address (01 hex)
03: Function Code (Read holding registers)
04: The number of data bytes to follow (2 registers x 2 bytes each = 4
bytes)
003C: The contents of register 40024
003C: The contents of register 40025
3A2E: The CRC (cyclic redundancy check).
2. Preset Multiple Registers (FC=16)
a. Request
This command is writing the contents of two holding registers 41003 and 41004 to
the slave device with address 01.
01 10 03EA 0002 04 0000 0000 6968
01: The Slave Address (01 hex)
10: The Function Code (Preset Multiple Registers)
03EA: The Data Address of the first register. (41003 - 40001 = 03EA hex)
0002: The number of registers to write
04: The number of data bytes to follow (2 registers x 2 bytes each = 4
bytes)
0000: The value to write to register 41003
0000: The value to write to register 41004
6968: The CRC (cyclic redundancy check) for error checking.
b. Response
▪ 01 10 03EA 0002 6078
01: The Slave Address (01 hex)
10: The Function Code (Preset Multiple Registers)
03EA: The Data Address of the first register. (41003 - 40001 = 03EA hex)
▪ 0002: The number of registers written.
▪ 6078: The CRC (cyclic redundancy check) for error checking.