LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Wrong Temperature Reading from Agilent 34970A

Hello everyone,

I'm a beginner with LabVIEW 2025 Q1 and I was trying to read the temperature values from 8 K-type thermocouples and using a RTD (PT-100) for reference.

This is the file I came up with:

Vidade_01_0-1755782746427.png


However, the temperature readings from the thermocouples is not correct: for example when I put them in an ice bath they were all measuring 8°C.

Now making different tests I figured out there's some sort of problem with the measurement curve: so the TCs show a higher temperature if the temperature is lower than about 30°C and measure a lower temperature above this temperature, and the "error" is increasing with temperatures further than this value (30°C). This makes me think that there's some kind of a problem in the program itself and especially in the slope of the measurement curve but I don't know how to fix it.

(The thermocouples are new and they all measure approximately the same temperature so I'd say it's unlikely the error being in the thermocouples themselves).

 

Second thing, right now I'm converting the RTD signal from resistance to temperature "manually" with the equation, is there a way to read the RTD values directly?

 

0 Kudos
Message 1 of 7
(308 Views)

If you measure using local display on the instrument, does it read out correctly? the user manual states that the DAQ has inbuilt ability to measure RTD directly instead of as resistance and convert it in software.

Santhosh
Soliton Technologies

New to the forum? Please read community guidelines and how to ask smart questions

Only two ways to appreciate someone who spent their free time to reply/answer your question - give them Kudos or mark their reply as the answer/solution.

Finding it hard to source NI hardware? Try NI Trading Post
Message 2 of 7
(254 Views)

While the above answer should help with the readings, you might want to simplify your code. Tons of overlapping element and a pile of wires flowing in all directions will make debugging very difficult.

 

Focus on array operations:

  • If you want the array elements in order, there is no need to wire indices. That just clutters the diagram
  • To prepend an element to a 1D array you can just use a single small built array (see picture below)
  • Converting a scalar to a 1D array with one element, then converting it to a 2D array with one element is quite pointless.
  • indicators outside the loop will only update after the loop terminates

 

altenbach_0-1755791577870.png

 

Message 3 of 7
(234 Views)

As Santhosh has mentioned, these devices do have built-in temperature compensation.  An ice bath is not required.  The thermocouple wires should be brought into the 34901A boards directly to the channel connections.  Ensure that the chromel and alumel connections are placed in the proper channel connections.

 

If you need to use a platinum RTD, you should use it in a 4-wire configuration, or you must short the ends (across the RTD) and subtract that resistance in a 2-wire operation; otherwise, you will have a built-in offset due to the line resistance adding to the 100-ohm RTD.  Also ensure that you have the correct alpha value set for your RTD.

 

This can be set through SCPI commands:

:TEMP:TRAN:TYPE FRTD ,(@000)   ==> Where FRTD is for the 4-Wire configuration and 000 should be replaced with the appropriate channel.  If the RTD is on 101, then channel 111 is used to complete the four wire sense.  Ensure that all four wires used are the same length.

Help the Community (and future reviewers) by marking posts as follows:
If it helped - KUDOS
If it answers the issue - SOLUTION
Message 4 of 7
(219 Views)

Hey, thanks for the answer, I just measured using local display on the instrument and the value is correct,
but again when I use Labview the measures are wrong.

I even tried to create a new Labview project but I still get the same errors.
(e.g. setting 5°C on a cryostat, I get 5°C from local display but 10°C in Labview).

 

0 Kudos
Message 5 of 7
(130 Views)

@Vidade_01 wrote:

Hey, thanks for the answer, I just measured using local display on the instrument and the value is correct,
but again when I use Labview the measures are wrong.

I even tried to create a new Labview project but I still get the same errors.
(e.g. setting 5°C on a cryostat, I get 5°C from local display but 10°C in Labview).

 


So what changes did you make to use the built-in cold junction compensation?

We cannot tell what's in your scaling subVI, I assume you no longer use it, right?

0 Kudos
Message 6 of 7
(118 Views)

Here is a clip from the Keysight manual.

Minions_0-1756217018089.png

 

It might be that the SENS:TEMP:TRAN:TC:RJUN has been set for that channel.  Try the following Query:

 

SENS:TEMP:TRAN:TC:RJUN:TYPE? (@xxx)

where xxx is the channel where you notice the offset.

 

If it comes back as FIXED, then it should be changed.  The FIXED provides a preset value and it should be changed to use either INTernal or the defined EXTernal channel.  Using the external will require setting the REFerence for the temperature transducer.

Help the Community (and future reviewers) by marking posts as follows:
If it helped - KUDOS
If it answers the issue - SOLUTION
Message 7 of 7
(112 Views)