Description:
How the temperature value is encoded in the 16-bit integer Modbus register?
Is it a linear mapping of the real temperature, or essentially a raw value straight from the ADC?
Solution:
ADAM-4018+ converts the input data by the ADC (ADS1216). Then, the input voltage data (from thermocouple) becomes 24 bit raw data.
According to different input range from different thermocouple, the 24-bit data will match different temperature value (like 26.53’C) by referring to its internal look-up table. This is due to the voltage to temperature for thermocouple is non-linear relationship.
What we do with the Modbus value is to divide the full temperature range into 2^16 = 65536 segments. And match the converted real temperature into the right segments.
For instance, a real temperature value 26.43’C from a J-type thermocouple will becomes (26.43/(760-0)) * 2^16=2279.
The same temperature reading from a K-type thermocouple will results in (26.43/(1370-0)) * 2^16 = 1264 data in the Modbus.
So, user can use the simple linear scaling to recover the modbus reading back to the real temperature and do not need to know the non-linear part.
Thank you for your feedback
We will look over your massage and get back to you soon if you need further assistance!