Modbus Register types

Modbus is a master/slave protocol whose data functions are based on a register model. A register is the smallest addressable entity with Modbus. Four Modbus register formats which are commonly used consists of:

  1. Bit or Boolean
  2. Signed or unsigned 16-bit integer
  3. Signed or unsigned 32-bit integer
  4. Floating point (single precision IEEE-754)

Most commonly used Modbus register types includes:

1.Coil (Discrete Output)
2.Discrete Input
3.Input Register
4.Holding Register

The address range for Modbus was originally defined from 0 to 9999 but now the currently specified range has been updated from 0 to 65,535. This address range is valid for each type of Modbus register. The function code specified in the Modbus query message packet determines what register type is being referenced.

Reference range for all the four register types is mentioned below:

  • 0x Coil 00001-09999
  • 1x Discrete Input 10001-19999
  • 3x Input Register 30001-39999
  • 4x Holding Register 40001-49999

Sometimes it becomes necessary to access more than 10,000 of a register type. Additional register types and reference ranges include the following:

  • 0x Coil 000001-065535
  • 1x Discrete Input 100001-165535
  • 3x Input Register 300001-365535
  • 4x Holding Register 400001-465535

It is mandatory to use six digit register references while using the extended register referencing to easily differentiate between holding register 40001 and coil 40001. “If coil 40001 is the target, it must appear as 040001”.

1 Like