6
GF U3000 V2 Ultrasonic Flowmeter
Modbus Supplement to the operating instructions
3.2
The Register Map.
A GF U3000 V2 Ultrasonic Flowmeter Modbus register is depicted in Figure 3. A few points need to be noted. The interpretation of
Modbus registers or register sets is important. All data is in BIG ENDIAN format. In BIG ENDIAN format the most significant portion
of a number is stored in the lower addresses. To help visualise BIG ENDIAN format see Figure 3. Each register is a 16-bit quantity
whose size is often referred to as a word.
Register
Register
Register
Register Offset Address
0
1
2
3
Bi
t 0
LS
Bb
it
M
SB
it
MSByte
LSBbyte(s)
MSWord
LSWord
Bi
t 1
5
LS
Bb
it
M
SB
it
Bi
t 0
Bi
t 1
5
MS – Most Significant
LS – Lower or least significant
G2.4 Big Endian Data Format
Used datatypes:
Datatype
uint16
An unsigned 16-bit value
int16
A signed, 2’s complement 16-bit value
In addition to this, two consecutive registers may be used in conjunction to represent larger types. The following 32-bit quantities are
supported:
Datatype
uint32
An unsigned 32-bit value
int32
A signed, 2’s complement 32-bit value
IEEE 754 SP
An IEEE754, single precision, 32-bit floating point number
Note that as with big endian format the most significant word is found in the lower address as depicted in Figure 3. To illustrate this,
the 32-bit, unsigned value 0xA9871023 will be stored with the value 0xA987 in the lower address (offset) and the value 0x1023 will
be stored in the higher address (offset). The same applies to an IEEE754 SP number. The sign, exponent and 7 most significant man-
tissa values are stored in the lower address. The lower precision 16-bits of the mantissa are stored in the higher address.
Some registers below contain bit-mappings. These values may be manipulated via the MASK WRITE REGISTER (command 22) as
outlined in Table 1. Bit fields are numbered from zero starting with the first definition within the register. The number after the colon
represents the number of bits in this field.
The register map is broken into two blocks. The first is a set of registers that provide access and / or control to basic instrument
settings. This block starts at register address 0 and comprises 10 registers (registers 1 to 10). Register 1 (address 0) contains a
check value of 0x5A in the upper byte and an interface version number starting at the value 0. It may be that the register map could
change in future. In this case the management system programmer may read the lower byte and select a different register map to
that outlined below. Documentation will accompany any changes to the register map. The intended purpose of this is to allow a ma-
naged system with newer units to operate successfully with units containing older interfaces.
Registers 11 and 12 should not be used and the details provided illustrate the intended, unimplemented purpose.
Registers 13 to 100 are not implemented but if read, they will return the value zero.
Actual flow data starts at register 101 or offset 100 and continues to register 150. Within this range several registers are reserved
and should not be used. Registers 151 to 200 are not implemented but if read, they will return the value zero. Likewise, all registers
from 201 t0 300 are reserved for a second flow board should it be added later. If registers in this range are read, they will return 0.
The Time and Date registers at the start of the block is a duplicate of the value in the Time and Date register in the Instrument setting.