A negative value becomes a large positive number
Match the signedness and width specified by the field device, then apply its scaling.
Check the raw data
- Capture the returned register word or words in hexadecimal.
- Read the manufacturer's type definition. Verify int16 versus uint16, int32 versus uint32, and the complete register width.
- Decode using that type before applying scale or offset. For example, 0xFF9C is −100 as int16 and 65,436 as uint16. With scale 0.1, those become −10.0 and 6,543.6 respectively.
- Check whether the raw pattern is a manufacturer-defined unavailable/invalid code. Do not present a sentinel as a valid measurement merely because it decodes numerically.
- Compare at more than one value. Positive readings below the sign boundary can look correct with either signed or unsigned decoding.
A correct raw reply interpreted with the wrong signedness is a client configuration issue. The transparent gateway does not supply the field device's signedness to the external client.
Expected result
The client agrees with the field device across the relevant positive and negative range. Include raw hex, expected value, actual value, type, and scaling if disagreement remains.
