Skip to main content
Skip table of contents

Thermocouples with the T7 (App Note)

This application note describes the steps necessary to take thermocouple measurements using a LabJack T7.

T7 with a Thermcouple Connected

Tutorial: T7 and Type J Thermocouples

The following instructions will help you connect a Type J thermocouple to a LabJack T7 in a differential input configuration using Kipling. After that has been done, there are instructions for how to read the value of a Type J thermocouple and save the data to a .csv file using LJLogM.

1. Go through the T7 Quickstart Guide.

2. Read our Main Thermocouple App Note and Wire your Thermocouple to the T7.

See the information on our main Thermocouple App Note page. The connections section describes connection options. For this tutorial, we recommend configuring a differential connection between AIN0 and AIN1 on the T7.

3. Run our Kipling software and Open the T7.

4. Configure the Analog Input Channels in Kipling.

The thermocouple measurements can be configured using either the thermocouple AIN extended feature, or by individually setting the AIN to appropriate settings for thermocouple and CJC measurements. The latter option also requires you to handle the voltage to temperature conversion math in software. We recommend using the AIN_EF method when possible.

AIN_EF Method:

  1. Navigate to the analog inputs tab.

  2. Press the + button underneath the Options header to expose additional configuration settings for the AIN0 analog input channel.

  3. Change the Negative Channel to AIN1 (unless a single-ended wiring configuration is being used). For programmatic setup, this corresponds to setting the register AIN0_NEGATIVE_CH to 1.

  4. Configure the T7's AIN_EF system (Extended Feature (EF) drop down) for AIN0 for a type J thermocouple. For programmatic setup, this corresponds to setting the register AIN0_EF_INDEX to 21.

  5. Optional Step: If an LM34 is being utilized as a CJC source, change the CJC Modbus Address from TEMPERATURE_DEVICE_K to AINx (replacing `x` with the appropriate AIN number). For programmatic setup, this corresponds to setting the register AIN0_EF_CONFIG_B to the desired AIN Modbus address. Change the Slope to 55.56 and the Offset to 255.37. For programmatic setup, this corresponds to setting the register AIN0_EF_CONFIG_D to 55.56 and the AIN0_EF_CONFIG_E to 255.37.

  6. The thermocouple temperature reading should now be displayed near the AIN0 value. For programmatic control, reading AIN0_EF_READ_A would return the thermocouple temperature.

  7. To save these settings so that when the device is powered-on the AIN0 and AIN1 lines are configured as thermocouple input channels, go to the Power-Up Defaults tab in Kipling and follow the steps to save Current Device Settings as it's power-up defaults.

Traditional/Manual Method:

  1. Navigate to the analog inputs tab.

  2. Press the + button underneath the Options header to expose additional configuration settings for the AIN0 analog input channel.

  3. Change the Negative Channel to AIN1 (unless a single-ended wiring configuration is being used). For programmatic setup, this corresponds to setting the register AIN0_NEGATIVE_CH to 1.

  4. Change the Range to -0.1 V to 0.1 V. If you know that your thermocouple output will not exceed the range of ±0.01 V output, you should instead set Range to -0.01 V to 0.01 V. For programmatic setup, this corresponds to setting the register AIN0_RANGE to 0.1 or 0.01.

  5. To save these settings so that when the device is powered-on, go to the Power-Up Defaults tab of Kipling and follow the steps to save Current Device Settings as it's power-up defaults.

5. Open LJLogM.

Close Kipling and then open the device in LJLogM.

6. Configure a Thermocouple Measurement.

Thermocouple measurements can be set up to return temperature readings using the thermocouple AIN_EF, or converted from a plain voltage measurement on the AIN from within LJLogM. First see the configuration in step 4 above.

AIN_EF Method:

Ensure that AIN0_EF_READ_A is in the Names column for row0. This will configure LJLogM to measure the AIN0 thermocouple temperature in row0, reported in the Value column. From here, skip to step 9.

Traditional/Manual Method:

Ensure that AIN0 is in the Names column for row0. This will have LJLogM measure AIN0 in row 0, which is configured to measure the thermocouple voltage as described in the previous steps.

7. Configure a CJC Measurement (Applies Only to the Traditional/Manual Method).

The temperature at the AIN0 terminal should be the thermocouple cold junction temperature, and should be found to do cold junction compensation. Replace the register name in the Names column of row1 with the appropriate register for your CJC measurement. If you are using the internal temperature sensor for CJC, the Names column of row1 should be set to TEMPERATURE_DEVICE_K. See the Internal Temp Sensor section of the T-series datasheet for more information about the device temperature registers.

8. Apply Scaling (Applies Only to the Traditional/Manual Method).

The scaling equation column of LJLogM can be used to convert a thermocouple voltage to temperature.  See the Scaling Equations description in the LJLogUD/LJLogM documentation. The equation you want for the AIN0 measurement in row0 is:
y=TCVoltsToTemp[J:a:b]                             // degrees K
y=TCVoltsToTemp[J:a:b]-273.15                 // degrees C
y=1.8*(TCVoltsToTemp[J:a:b])-459.67       // degrees F

... where J means Type J thermocouple, a is the raw value measured in row0 (the raw thermocouple voltage), and b is the the raw value measured in row1 (cold junction temperature in Kelvin).  The TCVoltsToTemp function supports B, E, J, K, N, R, S and T type thermocouples. With that, the Scaled column in row0 should report the thermocouple temperature.

Note that the scaling equation variables are a-p corresponding to row0-row15. For example, row4 corresponds to scaling variable e. The scaling equation described above should be adjusted accordingly if you are applying it to channels beyond row0 and row1.

9. Check the Thermocouple Temperature and Troubleshoot if necessary.

After finishing the steps above, you should see a good thermocouple temperature reported in the values returned from row0. If you do not see good measurements, see our thermocouple application note Troubleshooting Tips section.

10. Optional: Configure Additional Thermocouples.

Repeat steps 2-9 for any additional thermocouples you want to configure on other AIN channels. For example, set the LJLogM row2 Names column to AIN2 to get the raw thermocouple voltage of a thermocouple on AIN2. Also be sure to change # Channels in LJLogM to reflect the number of rows you want to take measurements from.

11. Log Data to File.

Once you are getting all thermocouple readings that you want in LJLogM, you can start logging data to file by clicking the small Write to File radio button near the Exit button in LJLogM. This will save data as a tab delimited ASCII file with a timestamp in the first column. See the LJLogUD & LJLogM Timestamps page for additional information.

Going Further

The T7 is compatible with multiple thermocouple types including B, C, E, J, K, N, R, T, and S. For an up-to-date list, look at section 14.1.1 Thermocouple which is in the AIN/AIN_EF section of the T-Series Datasheet. If another thermocouple type is required for your application let us know.

Multiple Thermocouples (2 to 42)

The T7 is capable of measuring up to 42 thermocouples using differential measurement techniques when combined with a Mux80 and any necessary CB37 expansion boards. When connecting more than one thermocouple at a time it is recommended that customers connect them so that differential input analog measurements can be made. For example, connect the positive lead of the thermocouple to a positive analog input channel and then the negative lead of the thermocouple to a negative analog input channel.  Then connect a resistor (somewhere between a 10K and 1M in value) between the negative lead and an available GND terminal.  Collecting data from multiple thermocouples using the differential input mode helps address several of the common thermocouple complications, for more details see the "Thermocouple Complications" section in the general thermocouples app-noteWhen measuring multiple thermocouples, it is highly recommended to avoid complication #5.

For more information about which channels are positive and negative, look at the "Single-ended or Differential" section of the T-Series Analog Inputs datasheet page.  Also look at table 2 in the Mux80 datasheet for channel-mapping/wiring details regarding positive and negative channels as well as the extended channels section in the T-Series devices datasheet.

Device Capabilities

The T7 family of devices has the resolution and amplification necessary to directly measure raw thermocouple signals.  If you save 1 channel for an external cold junction temperature sensor (e.g. LM34) and aren't accounting for any common thermocouple issues by taking differential measurements, a single T7 can measure up to 13 thermocouples itself (you might want the CB37).  To handle more signals, it is easy to use multiple T7s (depending on software) or you can use a Mux80 multiplexer board to handle up to 83 thermocouples with a single T7. We typically suggest that customers stick with the 42 thermocouples limitation.

The -Pro devices have a 24-bit low-speed sigma-delta converter that is excellent for thermocouples.  In addition to the improved resolution, this converter provides excellent rejection of 50/60 Hz noise (with ResolutionIndex = 11 or 12) which can be a common problem in thermocouple applications.

See the information on the main page of the Thermocouple App Note.  In particular, read through the complications 1-5, decide what you will use for CJC, and avoid complication #5 (ground loops) if at all possible.

Resolution

What's the difference between resolution and accuracy?  See the Resolution and Accuracy app note.

A type K thermocouple provides roughly 37 μV/°C.  Output is -6.458 mV at -270 °C to +54.886 mV at 1372 °C.

The maximum ResolutionIndex for a T7 is 8, and for a T7-Pro is 12, and the typical range used with thermocouples is ±100 mV.  From Appendix A-3-1 of the T7 User's Guide, looking at the ±0.1 range, the typical device resolution at ResolutionIndex=8 is about 6.3 μV noise-free and 1.3 μV effective (0.2 and 0.04 °C for a type K).  At ResolutionIndex=12 it is about 1.2 μV noise-free and 0.2 μV effective (0.03 and 0.005 °C for a type K).  The effective numbers mean that most samples (1 standard deviation) will fall in that range.

Note that the actual signal from a thermocouple will likely have real noise with it, beyond the internal noise of the device itself noted above.  The high-resolution sigma-delta converter on the T7-Pro has excellent noise rejection, and in particular rejects 50/60 Hz noise when set to ResolutionIndex=12.

Also note that temperature in air tends to have many small fluctuations.  What looks like noise on a thermocouple signal might be real temperature changes.

Accuracy

From Appendix A-3 of the T7 User's Guide, the device is calibrated to an absolute accuracy of ±0.01% full-span on the ±0.1 V range.  Full-span is 0.2 V so that equates to an accuracy of ±20 μV, which corresponds to an accuracy of about ±0.5 °C for a type K thermocouple, which is more accurate than the thermocouple itself (per complication #4).

There are other sources of error in a thermocouple system, and in particular any error in cold junction temperature measurement is reflected as error in the thermocouple temperature.  Expect about ±2.0 °C with the Internal Temperature Sensor, or if using the common LM34CAZ sensor it is accurate to about ±0.5 °C at room temperature.  If the local ends of the thermocouples are all at the same temperature, then CJC error will affect them all equally and will not affect relative accuracy between the thermocouples.

Additional Notes

  • To configure analog inputs beyond AIN0-AIN13, you can use the Register Matrix in Kipling, do it programmatically such as by using one of our LJM wrappers, or on Windows you can use "AINEFConfigTool.exe" from the Additional Utility Applications page. This tool is useful any time you want to configure the same AIN_EF settings for many channels.

  • The AIN_EF are incompatible with stream mode acquisition, so the manual/traditional measurement method mentioned in the tutorial above would be required when using stream mode.

  • If you intend to do programmatic control, note that we have examples in various languages such as C, Python, and LabVIEW.

  • If you intend to do programmatic control and if you are using the traditional/manual thermocouple measurement method mentioned in the tutorial above, note that our TCVoltsToTemp function can be used to handle the voltage to temperature conversion.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.