modbusplcaddressing

Modbus addresses traditionally did not go above 49999. To allow higher addresses use Octal or Schneider addressing, see below.

Modbus registers for VIB are “one-based/1-based”. So for a 4x references the register 40001 will read the first word of the 4x address block. For 1x registers the address 10001 will read the first BIT of the 1x block.

Register Addressing can be provided in a number of ways. If the address is provided as a decimal integer, the address is assumed to be a standard Modbus address. The first register is register 1, entering register 0 is an error. There is no need to specify the leading zeros or the 4 (or 0,1, or 3) and they are ignored if you do, so, for example, 40010 is the same as 10. Be aware that leading zeros without the 4 imply an octal address (see below). Bit addresses may be used and are entered as the n.b where n is the register number and b the bit number. Bit numbering starts at zero. For words, the bits go from 0-15, for double words from 0-31. Writing to bits is not supported an will give an error.

If the address is provided as a hexadecimal or octal number, then the address is assumed to be zero based. Hexadecimal addresses are the characters 0-F preceded by either 0x or #. Octal number are the digits 0-7 preceded by a 0 (zero). Some examples are:

0x1 or 01 refer register 1 (note the decimal equivalent would be register 2).

#F or 017 refer to register 15 (or 16 if the address is provided as a decimal).

Note that to refer to octal register zero you must enter 00, otherwise it is assumed to be a decimal value, and zero is not a valid decimal register.

The address can also be provided in the Groupe Schneider “Premium” style %Mwn:%Xb, where n is the register number and b the bit number. Unlike decimal addressing, but similar to octal or hexadecimal the first register is register zero.

The slave node address of each Modbus server can be set but defaults to 0. The slave node (station) address is the identifier of the slave node as defined by the Modbus protocol. For TCP/IP connections, this is usually zero but may be one or more. For RTU connections it is frequently one, but can be any integer value. The value provided here must match the setting in the controller.

  • modbusplcaddressing.txt
  • Last modified: 2023/02/01 12:28
  • by wikiadmin