55xGenComm1_29
22
Modbus Registers Defined
The register array or modbus data storage area is divided into 256 pages each containing up to
256 registers, the actual register address is obtained from the formula:
register_address = ( page_number * 256 ) + register_offset.
NOTE:-
It is often easier to address the module in hexadecimal notation. This helps to
clarify your code for others to read. (Adding the characters 0x before a hexadecimal
number identifies it as such. A number without 0x before it is a decimal number. Ie 0x10 is
a hex number equating to 16 in decimal.)
Ie. Engine Speed is located on GenComm page 3, register 6.
To address the module, you need to request the data stored in register number 774. This is derived by multiplying the page
number by 256, then adding the register offset to the result ( ( 3 x 256 ) + 6 ). In hexadecimal notation, this number is
0x0306. By looking at this number in two, 2 digit sections you can more easily identify the page (03) and register offset
(06).All unused parts of pages 0-127 are defined as reserved for expansion of this standard, any attempt to access them will
result in an exception response with extended exception code 12 (Reserved register).
1. This document always refers to register addresses, which start at 0 as defined in the Modbus
protocol. Register numbers, which start at 1, are not used in this document in order to avoid
confusion.
2. A letter S in the bits/sign column indicates a signed value using two’s compliment arithmetic,
all others are unsigned. Any master software MUST implement the signed / unsigned status of
a register.
3. A double number in the bits/sign column indicates a bit within a register of a specific size e.g.
16/16 is the most significant bit and 1/16 is the least significant bit of a 16-bit register.
4. Bits within registers are numbered from 1 not 0 to avoid the confusion that would be caused if
the sixteenth bit of a 16 bit register were labelled 15/16.
5. For an integer type register the register contents should be multiplied by the scaling factor to
obtain the actual value.
6. For a flag type register (1 bit) the minimum value column indicates the meaning if the flag is 0,
the maximum column indicates the meaning if the flag is 1.
7. For an integer type register the minimum and maximum value columns indicate the minimum
and maximum values after multiplying by the scaling factor.
8. Any software that reads an integer type register must be able to process and display correctly
over the full range specified in the minimum and maximum value columns.
9. 32 bit values are stored with the most significant bits in the register with the lowest address.
10. Where two ASCII characters are stored in a single register the first character is in the most
significant bits.
11. The first register of a 32-bit number is always aligned at an even address for the benefit of
some 32 bit CPUs.