1 - Read Coil Status
2 - Read Input Status
3 - Read Holding Registers
4 - Read Input Registers
5 - Force (Write) Single Coil
6 - Preset (Write) Single Register
15 - Force Multiple Coils
16 - Preset Multiple Registers
The Modbus Function Code determines whether the address will
be a register-level or bit-level OFFSET address into a given data
type range. The offset will be the target data address in the server
minus the base address for that data type. Base addresses for
the different data types are:
00001 or 000001 (0x0001) for bit-level Coil data (Function
Codes 1, 5, and 15).
10001 or 100001 (1x0001) for bit-level Input Status data
(Function Code 2)
30001 or 300001 (3x0001) for Input Register data (Function
Code 4)
40001 or 400001 (4x0001) for Holding Register data
(Function Codes 3, 6, and 16).
Address calculation examples:
o For bit-level Coil commands (FC 1, 5, or 15) to read or
write a Coil 0X address 00001, specify a value of 0
(00001 - 00001 = 0).
o For Coil address 00115, specify 114
o (00115 - 00001 = 114)
For register read or write commands (FC 3, 6, or 16) 4X
range, for 40001, specify a value of 0
o (40001 - 40001 = 0).
For 01101, 11101, 31101 or 41101, specify a value of 1100.
o (01101 - 00001 = 1100)
o (11101 -10001 = 1100)
o (31101 - 30001 = 1100)
o (41101 - 40001 = 1100)
Note: If the documentation for a particular Modbus server device
lists data addresses in hexadecimal (base16) notation, you will
need to convert the hexadecimal value to a decimal value to enter
in this parameter. In such cases, it is not usually necessary to
subtract 1 from the converted decimal number, as this addressing
scheme typically uses the exact offset address expressed as a
hexadecimal number.