S A G E M E T E R I N G , I N C .
O p e r a t i o n s a n d I n s t r u c t i o n M a n u a l
58
REV. 16-SIP/SRP
16 (0x10) WRITE REGISTERS
W
rites the binary contents of the specified register
into the meter. Sage Prime values are typically 32 bits
wide (4 bytes) and contain a single IEEE754 floating
p
oint value. Modbus registers are 16 bits wide (2
bytes) so a minimum of 2 Modbus registers are
required to transfer all floating point bits into the
meter. See section titled Sage Floating Point Format.
Query
The query message specifies the starting register
address and the quantity of registers to be written.
16 (0x10) WRITE MULTIPLE REGISTERS
–QUERY– –RESPONSE–
SA – SLAVE ADRESS SA
0x10 – FUNC CODE 0x10 – 16 FUNC CODE
RH – REG ADDR HI RH – REG ADDR HI
RL – REG ADDR LO RL – REG ADDR LO
00 – # OF REGS HI 00 – # REGS HI
CT – # OF REGS LO CT – # REGS LO
BC – BYTES COUNT CH – CRC MSB
DATA0 CL – CRC LSB
DATA1
DATAn
CH – CRC MSB
CL – CRC LSB
REG ADDR HI (RH) is set to:
01 for INTEGER access of integral values
02 for IEEE754 floating point
03 for Scaled (x1000) long integer of floating point value
REG ADDR LO (RL) is the starting address index into the register
structure. See section titled Sage Register Index Values.
CT is the register count needed to transfer data. Typically this byte is
set to 02 to request 1 full IEEE754 floating point value.
BC is the actual number of bytes that follow.
DATA0-DATAn are bytes in binary format transmitted to the slave
device representing the contents of the selected register(s).