Register functions – Obvius R9120 Rev C User Manual

Page 14

Advertising
background image

153 40154 UINT16 Radio RF speed mode (0=distance, 1=speed)

(rev-c, -5 modhopper only, fw 2.05 or later )

154 40155 UINT16 Reserved

155 40156 UINT16 (R/W) preference lock. 0=unlocked, 1=locked. when locked,

preferences can be changed from 485 port only.

(firmware 2.05 or later)

156 40157 UINT16 AES Encryption key present.

0=not available, 1=not-active, 2=key-active/256bit.

(firmware 2.05 or later, -5 modhopper only)

157 40158 UINT16 Max allowed software RF channel setting. 0=not available.

(firmware 2.06 or later)

712 40713 UINT16 bitmap of known radios (16 registers) LSB, MSB order.

bit0=n/a, bit1=addr1, etc.

Register Functions

Pulse Count: The pulse count is stored as an unsigned 32bit integer. This allows for 2^32 pulses (4.2billion) to be counted
before rollover. On Modbus systems that do not allow you to read 32bit values, you can calculate the pulse count as follows:

count = (MSW * 65536) + LSW

or

count = (MSW << 16) | LSW [bit shift high order word by 16 bits and xor against low order word ]

Pulse count registers accumulate a total number of pulses received on each pulse input. The pulse count totals always
increment and can not be cleared or set to an arbitrary value to prevent tampering. All pulse count totals are stored in non-
volatile memory to preserve counts during power failure. The unsigned 32 bit counter values can accumulate up to 4.29
billion (2^32) pulses before rollover.

All 32 bit data point values are encoded in 2 Modbus registers (16bits each). Modbus master systems should always query
the A8332-8F2D using a single query to read an entire block of registers. Never use two queries to read one register and
then combine the two results into a single 32 bit value. Doing so will allow the pulse count to increment in the middle of the
two Modbus queries, and will cause intermittent data readings that are incorrect.

For example, a pulse input has a count of 65534. This is represented as a 32 bit hex number 0x0000FFFE. The first 4 digits
are the MSW register, the second 4 digits are the LSW register. The Modbus Master reads the first (MSW) register and gets
0x0000. In between the two readings, the pulse input counts 2 more pulses, making the total 65536 or 0x00010000 in hex.
Next the Master reads the second (LSW) register and gets 0x0000. When the two registers are combined, the result is
0x00000000. The proper way to handle this situation is to simply read both registers in a single Modbus query.

Instantaneous Pulse Rate: The pulse rate values for instantaneous, min and max rates are calculated based on the time
between arriving pulses. For example, if InstPulse1 = 30, and inst pulse count size is 5, then the average rate for the last 5
pulses is 6 seconds per pulse. To convert the register values (in seconds) to a rate value, use the following formula.

RatePerHour = (N * 60 * 60 / Inst_Register)

Where InstRegister is any of the 6 register values 4 through 9. N is the instantaneous pulse count size at offset 10.

Min/Max pulse rate: These 4 registers are calculated from the instantaneous pulse rate. These latching registers are
updated whenever the minimum or maximum rate fields are exceeded by the instantaneous rate. These 4 registers may be
cleared by writing a zero to the register. Writing to one min/max register clears all four min/max registers.

Page 14

ModHopper R9120 rev C – Wireless Modbus/pulse transceiver

Advertising
This manual is related to the following products: