Scaling raw data from the AIRTD module


Hey all,
I have an RS-485 network setup and have a few modules on it. I can read and write values just fine, but I’m not sure how to scale data from the AIRTD modules. I found this from the module integration guide but I’m not exactly sure how to apply it to the RTD inputs. …

The input range for the AIRTD is -200C to 850C, so does that mean -200C would map to -25,000 counts and 850C would map to 25,000 counts?

Could someone provide a little clarification on this before I trounce on off and write code that doesn’t work?


Looking at the datasheets, I think 0 counts would correspond with 0 ohms, and 25,000 counts would correspond with 400 ohms.

Not sure what language you are using, but I would recommend using a scaling function that you can pass scaling parameters to. I have an Optoscript version of this in a subroutine:

if(In < InLowLimit) then
  Out = OutLowLimit;  //Clamp at the low limit
elseif(In > InHighLimit) then
  Out = OutHighLimit; //Clamp at the high limit
elseif(InLowLimit == InHighLimit) then
  Out = (OutLowLimit + OutHighLimit) / 2.0; //Input limits are the same - need to do something, so we'll average the output limits
  Out = ((OutHighLimit - OutLowLimit)/(InHighLimit - InLowLimit)) * (In - InLowLimit) + OutLowLimit;  //Scale


Thank you philip. I must have missed that in the datasheet.

Makes sense that it would convert to ohms then to degrees using the alpha coefficient.

I’m actually writing this in C to run on a pic and/or ardiuno.


Your welcome.

There isn’t anything specific in the datasheet for that module that shows the count range, but in the OptoMMP Protocol Guide (1465), it shows that bidirectional modules are -25,000 to 25,000 while unidirectional are 0 to 25,000:

Good luck on your project.