A float is enormous, tiny, or plausible but wrong

A float is enormous, tiny, or plausible but wrong

Verify the starting register, width, actual encoding, and byte/word order against a known value.

Decode deliberately

  1. Confirm the map actually specifies IEEE float32. A decimal display can also come from a scaled integer.
  2. Read both registers, starting at the point's first register. Do not combine the second half of one point with the first half of the next.
  3. Record the two raw words before changing decoder options.
  4. Match the order required by the map. For example, float32 23.5 is 0x41BC0000. It may be returned as 0x41BC, 0x0000 or as 0x0000, 0x41BC when the words are exchanged.
  5. Check the external driver's definition of each swap option. For 32-bit values, the SB1000 tools use 3210 for ABCD, 1032 for CDAB, 2301 for BADC, and 0123 for DCBA, where A is the most-significant byte. Other tools may label these differently.
  6. Verify the result at several known values and check any scale/offset. A single plausible number does not establish the correct decoder.

Changing the display order in an SB1000 diagnostic tool does not change the transparent gateway's bytes or the external client's configuration. The 32-bit label mapping above must not be assumed for 64-bit values.

Expected result

The same raw register pair decodes to the known field value in both tools. Report the raw pair, expected value, type/order, and map revision if it does not.