Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations SSS148 on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Temperature Transmitter linearity 2

Status
Not open for further replies.

josedavidch

Electrical
Mar 30, 2006
45
Hi all,

I have a PLC reading a thermocouple transmitter in the range of 4-20mA for a temperature range of 0°F to 500°F. After I calibrate zero and span to match 0°F = 4mA and 500°F = 20mA, I found that there is no linearity at all on such devices, drifting almost 8°F down on midscale when checking its input using a temperature simulator from Fluke.

I am using a SCL series PLC from AB, then scaling input using SCP where parameters are 0-4095 equals 0°0 to 500°F.

Now my question: how can I linearize the input to show a better reading of the temperature considering the nonlinearity spec of the Omega J type transmitter?

Any technique would help. Thanks
 
Replies continue below

Recommended for you

Try the correction formula in the attached spreadsheet based on NIST calculation polynomials. For future conversions, I recommend buying a thermocouple transmitter that linearizes the input - Omega transmitters are cheap, but you get what you pay for. Also, I assumed cold-junction compensation is provided by the transmitter - if it isn't, you'll have to take that into account and adjust the spreadsheet accordingly.

xnuke
"Live and act within the limit of your knowledge and keep expanding it to the limit of your life." Ayn Rand, Atlas Shrugged.
Please see FAQ731-376 for tips on how to make the best use of Eng-Tips.
 
 http://files.engineering.com/getfile.aspx?folder=9e5bfb6b-30a9-4bfb-810b-e575af0a1039&file=Type_J_TC_Nonlinear_Correction.xlsx
Thank you... I will kick out these kind of components on next projects..for now, this is a hard learning.

I opened the table and I am not quite sure how to proceed as far as use an automated formula to covers the entire range. Is it how it works?. I will read about the related topic and this NIST table concept.
 
Read in the "Actual Counts" scaled between 0-4095 from the transmitter input scaled 4-20 mA.

Then, calculate the "Corrected Counts":

Corrected Counts = Actual Counts + [-4.8919E-13*(Actual Counts)4 + 7.078E-9*(Actual Counts)3 - 3.9143E-5*(Actual Counts)2 + 7.5141E-2*(Actual Counts)]

Then, use your Corrected Counts as the Input into the SCP function with the range parameters you gave above for Input Min., Input Max., Scaled Min., and Scaled Max. 0-4095 equals 0°0 to 500°F.

xnuke
"Live and act within the limit of your knowledge and keep expanding it to the limit of your life." Ayn Rand, Atlas Shrugged.
Please see FAQ731-376 for tips on how to make the best use of Eng-Tips.
 
Great...

So it will be a matter to use a math function such as CPT to process the input channel (N17:1) and convert the input raw bcd to a corrected value of it.
Since I am using 0F to 500F, I guess I also need to use the formula from -200C to 0C in order to perform the scale below 0C and use logic to select which one to use depending on input value. Is that correct?

This is the first time I see this concept in place, but for sure wont be the last.
Let me give it a shot today.

 
The formula I developed is only valid for 0 to 500 F. You didn't say anything about -200 to 0 C. It shouldn't be that hard to develop a formula for that range as well, but your transmitter isn't ranged to measure that. You'd need a transmitter with a different range, then you would have to use the spreadsheet to develop a different curve fit to compensate for the nonlinearity error over that range. Is your process variable varying so widely? What is the range of your process variable?

xnuke
"Live and act within the limit of your knowledge and keep expanding it to the limit of your life." Ayn Rand, Atlas Shrugged.
Please see FAQ731-376 for tips on how to make the best use of Eng-Tips.
 
Since I am using 0F to 500F, I guess I also need to use the formula from -200C to 0C in order to perform the scale below 0C and use logic to select which one to use depending on input value. Is that correct?

Not necessarily. That would depend on how accurately you need the measurement and how accurately the probe was calibrated. What is your accuracy requirement? Many algorithms will work at the peripheries of their defined specs, but the error obviously increases in those regions.

TTFN
faq731-376
7ofakss
 
Thanks Xnuke, IRStuff

Xnuke
You certainly correct, I am working on the 0-500F, however, the Excel file I download stars on the 32F (= 0C) and that is why I am wondering how to make it run on the range we have set the application for. Would you please check the file and let me know if that is a tipo error or certainly need to be corrected.

IRStuff
My accuracy is 0.1% FS


Thans both

 
So, that's at least 0.5°C.

Where did you get this file and how do you know it applies to your temperature sensor? What accuracy does your temperature measurement system have?

TTFN
faq731-376
7ofakss
 
So, that's at least 0.5°F. But what accuracy do you NEED? 0.5°F accuracy on a 500°F measurement seems overly tight to me. But, you haven't specified what you're doing...

Where did you get this file and how do you know it applies to your temperature sensor? What accuracy does your temperature measurement system have?

TTFN
faq731-376
7ofakss
 
IRStuff,

File was provided kindly by Xnuke based on what I using here. File is located at


Application: this is a forced convection oven previously running with a PartLow +1400 temperature controller. The project is about automate oven process and recipe loading using a PLC. PLC reads temperature and controls power on SCR and customer will, pretty much, validate it using the same resolution (1F) and accuracy they where using (+/- 5F) on the previous controller. The actual range of usable temperature goes from room temperature (about 65F) to 250F, however, and unless otherwise requiered, range will be calibrated to 0-500F.

Thanks for your comments.
 
Sorry about the lower range value error; I fixed it in the new attached spreadsheet.

I agree with IRStuff, that is an uncommonly tight uncertainty specification, and not achievable with a type J thermocouple (which has at least an uncertainty of +/- 2 F), let alone the additional uncertainty in the measurement provided by the transmitter, the PLC, etc. I suggest you revisit the following questions: What is the process temperature range that you need to measure, and what accuracy do you need?

IRStuff, I created the Excel file. For fun. (Yeah, I know, I'm strange!)

xnuke
"Live and act within the limit of your knowledge and keep expanding it to the limit of your life." Ayn Rand, Atlas Shrugged.
Please see FAQ731-376 for tips on how to make the best use of Eng-Tips.
 
 http://files.engineering.com/getfile.aspx?folder=b27e36da-ed2a-4289-a98e-d28be27e58bf&file=Type_J_TC_Nonlinear_Correction.xlsx
I was typing and our posts got crossed. Thanks for the process information.

xnuke
"Live and act within the limit of your knowledge and keep expanding it to the limit of your life." Ayn Rand, Atlas Shrugged.
Please see FAQ731-376 for tips on how to make the best use of Eng-Tips.
 
Xnuke,

I have been testing the new values and so far so good. I will be testing it over more point on the entire range as soon as I get a simulator, because using the real temp from oven does not allow me test the lower and high-uper ones. The simulator will tell me the real truth, however, let me tell you that so far, values on PLC input are super close to the ones shown on table. I.e, for 200F, BCD is 1637-38.

Very impressive job on table concept!

I will keep you posted.

 
Xnuke,

Looks that I let my soul get happy to fast...
On the corrected counts value, the formula is retorning the correct values, however, the PLC input raw value is a bit high when compared to theoretical values shown on the table. Ie. for 200F, corrected value is 1638, and Actual count, as per table is 1581, however, PLC raw data from that channel is about 1500. Again, this is only hipotetical worries that should be settle down once the simulator is hookup to transducer. One of the elements to lead to be worry, is that I have a reading from a chart recorder thermocouple on the oven which is showing -9F respect to PLCs (200F). The chart recorder is not calibrated and TC not in the same point as the one read by PLC, so that, I have not all the info to conclude what the actual difference is. I will keep you posted.


David
 
Xnuke,

I have run the entire range using a Fluke 477 simulator.
Attached my finding: we are running about 7 degree above the standard. Without correction, the error is about 7F below standard. Looks like we need something in between.
 
 http://files.engineering.com/getfile.aspx?folder=605e4135-84e3-45aa-8638-8c3eeca603a7&file=Type_J_TC_Nonlinear_Correction_JDC.xlsx
Have you checked the calibration of the PLC input channel? Are you getting the right counts for a given mA input signal from a calibrated mA source (not the transmitter)? There might be an error there (zero, span, or linearity error). I'd check this next to see if it needs correction and fix it if necessary, then continue using the spreadsheet by repeating your test from the TC simulator through your transmitter to the PLC and getting a new set of Actual Counts. Then, by changing the formula in the Counts Error column to reflect the Ideal Counts in column L minus the Actual Counts you entered in column J, and curve fitting the plot in the chart on the Counts Correction tab, you might gain a little more corrective action with a higher-order trend line polynomial. You have a pretty significant nonlinearity at some points in the range. Excel will only go up to a 6th-order polynomial fit, though, and when I tried it using your Actual Counts I found there was little difference between 5th-order and 6th-order. You won't be able to correct for all of the nonlinearity this way, but using a 5th-order fit the spreadsheet showed a -0.21 F average error at 250 F, and a maximum error of -1.18 F up near the high end of the range.

xnuke
"Live and act within the limit of your knowledge and keep expanding it to the limit of your life." Ayn Rand, Atlas Shrugged.
Please see FAQ731-376 for tips on how to make the best use of Eng-Tips.
 
Xnuke,

I will perform a test using a calibrated mA source just to make sure PLC input is working correctly and linear throught the entire range, unfortunately, tomorrow is holiday here and no equipment will be available to me, but I will still be working on this to have it done for official calibration on Thrusday.
The closer I can go, assuming PLC output is in good shape, is to source the Ain with the Aout, just as a quick test.
Ill keep you posted.

Thanks a lot for your support.

David
 
Xnuke,

I managed to use a the same fluke simulator on DC mA mode to input 4-20 mA to my PLC Analog in module. Results works perfect when scaled to 0-500F, therefore, the module is working just fine. Did you have any chance to check your correction formula yet? Later on, I will chat you on the know how behind the polynomials, and this is the first time I see it and I want to be sure I understand what is involved to be ready for next time...but I hope as well, not use face this issue again by using better xmiters...

Thanks.

David
 
I'm glad to hear your module is perfect. I've attached the updated spreadsheet with the columns in yellow based on your real data. Take a look at the curve in the chart tab and you'll see your nonlinearity and the trendline curve and formula that I've been using to try to calculate correction factors.

xnuke
"Live and act within the limit of your knowledge and keep expanding it to the limit of your life." Ayn Rand, Atlas Shrugged.
Please see FAQ731-376 for tips on how to make the best use of Eng-Tips.
 
 http://files.engineering.com/getfile.aspx?folder=47a20ac6-2694-4c7c-87a6-3e02706a2ac8&file=Copy_of_Type_J_TC_Nonlinear_Correction_JDC.xlsx
Status
Not open for further replies.

Part and Inventory Search

Sponsor