Hi LesT,

Voltage PrecisionFirst of all for clarity, regarding our TC-08 data logger and the associated driver, if you select a voltage input type for a channel, then what is returned is the mV differential between the 2 input points. The input range is 70mV (that will be +ve or -ve, depending upon the polarity between the 2 differential inputs). Our TC-08 is specified as having a 20-bit dynamic range which gives you a smallest step size of 70 / 2^20 = 0.00007mV.

When it comes to extracting values returned from the driver though the precision is not immediately obvious. For instance, when using our Software Development Kit the values are returned from the driver to an array of single precision floats, the contents of which are initialised to zero at the start of execution, However, as you can see from the example execution below, in response to a user request of data the printf() statement restricts the fixed point data type to 9 decimal places of precision, all of which contain uninitialised data. So, in trying to determine the precision you need to consider the value generated at the analogue to digital conversion stage, because the driver returns a higher precision value than the true size of the data (i.e. it includes some uninitialised data).

- SDK Temperature display

In our PicoLog software you can select the field width for the input quantity (temperature or volts) in terms of the number of digits for the integer part, and the number of decimal places. However, for volts, you are restricted to 5 decimal places (which just accomodates the smallest step size). So, PicoLog interprets the precision of the values returned as follows; if you select, say, a field width of 11 and number of decimal places equal to 9, PicoLog limits the number of decimal places to 5, which is correct for the specified 20 bit resolution of the TC-08 (the smallest step size being 0.00007mV).

Voltage StabilityTo look at the relevance of the values returned in relation to their stability, I used a variable PSU for the input providing 1V. This was connected to a TC-08 terminal board on the 5V range (which then divides the voltage down to 10mV using a potential divider on the board). I then plotted the voltage over 500 one second samples (see attached image) and, as you can see, there is a variation due to noise of about 0.001mV, imposed on a gradual drift of 0.004mV over the capture time. This again is correct according to our specification as the smallest step size for 16-bits is 70 / 2^16 = 0.001mV (we specify 16.5 bits of noise free resolution, however, as your question was not querying the specs, and my answer is just making sense of the values returned, I've made no attempt to isolate the TC-08 from potential noise sources, so on that basis I've rounded the figure down to 16 bits for the additional noise). So,

the most important point regarding the precision of the voltage value returned from the Tc-08 driver is that, in PicoLog, you can get returned voltage values specified to 5 decimal places, but you will only be able to reliably measure voltage to 3 decimal places at best.
- PicoLog variation in 10mV output of variable PSU

Now, regarding the drift, you have to bear in mind that I have a variable PSU that has 2 switching ranges and I'm actually using 7% of the 15V range, so the voltage source is going to have more of an effect on drift, and also I haven't waited for levels to stabilise over time so there is an element of setup drift (again this is not a discussion about performance of the data logger).

Answer 1The answer to your first set of questions then is that, when using one of the voltage inputs of the Small Terminal Board to measure voltage, the TC-08 driver returns 3 digit precision, fixed point values in mV, with reference to a scale of 70mV. You then have to scale the values, according to the input range that you have made connections to on the small terminal board, as follows:

Multiply by 100 for 0-5V

Multiply by 10 for 0-500mV

Don't scale for 0-50mVCurrent PrecisionFor current, you need to use the 4-20mA connections, and switch, on the terminal board, but you still get the values back in mV, because that is what the data logger is measuring. You just have to transform them into mA using a scaling file, table or equation and appropriate calculation using the value for the shunt resistor on the Terminal Board. So you have to multiply the mV value by 240 (the value, in ohms, of the shunt resistor used) and then divide that by 101 (the scaling factor used on the Terminal board). So, as you will be scaling up voltage values returned from the driver, you will be getting similar resolution (the values will have slightly larger integer parts and slightly smaller decimal parts).

Answer 2The answer to your second set of questions then is that, when using the 4-20mA current loop inputs of the Small Terminal Board to measure current, the driver returns 3 digit precision, fixed point values in mV, with reference to a scale of 70mV. You have to convert them to mA's by multiplying by 2.376. Also, 0mA is read as 0V, while 4mA is read as 9.505mV.Temperature PrecisionRegarding temperature, you need to be aware of the thermocouple type and it's sensitivity (i.e. it's output range in millivolts) to understand what is returned in terms of temperature resolution. Different thermocouples have different sensitivities and, in terms of the default thermocouples supported, at one extreme we have the E-Type thermocouple with a very high sensitivity (comparatively large, for a thermocouple, change in voltage for a temperature change), and then at the other extreme we have the S-Type with a very low sensitivity. The E-Type thermocouple can range to approaching 1000°C for the full input range of the TC-08. So, using the tabulated values found in the Reference tables for an E-Type themocouple (Revised to ITS-90) and using the maximum tabulated thermoelectric voltage below 70mV, i.e. 69.937mV, and the temperature at that value, i.e. 915°C we can calculate a value for the temperature at the full thermoelectric voltage range as (70/69.937)*915 = 915.8242°C (note that I'm restricting the values to 4 decimal places, which we will discuss later). From this value the smallest temperature step size would be 915.8242/ 2^20 = 0.0009°C. In PicoLog, when you select a thermocouple input type the number of decimal places in the returned values is 4, because that is both the maximum that we can resolve to in the conversion process of the TC-08, and it is more than is needed to accurately specify the temperature (this is explained in the section on Temperature Accuracy).

The S-Type thermocouple can range to just over 1750°C for only a snall part of the full input range of the TC-08, i.e. at the maximum temperature of 1768°C the equivalent voltage is 18.693mV. So, it will have 18.693 / 70 * 2^20 = 280,015 steps within the TC-08, with a temperature step size of 1768 / 280,015 = 0.0063°C (i.e. 7 times the step size of the E-Type), and its resolution will be between 18 and 19-bits. In PicoLog, for a thermocouple input type the Field Width defaults to a maximum, in order to accomodate the highest temperature range of the least sensitive thermocouple type, i.e. 4 digits of the integer part of the returned value for 1750°C, and 4 decimal places for the 0.0009°C step size of the highest precision thermocouple type, i.e. an E-Type, when using a converter with 20-bit resolution.

Temperatue AccuracySo far we have discussed temperature precision of the actual values returned from the driver, and resolution of the data logger. However, temperature accuracy is a whole different issue. The values you get from the ITS-90 correlated thermocouple tables for thermoelectric voltage (which is what we use to perform the conversion to temperature) are only given to a precision of 3 decimal places. This is because the values used to define the standard are mixed between accuracies of 3 and 4 decimal places so to reduce uncertainty, the tabulated values need to be restricted to 3 decimal places. This means that you can only define a temperature to an accuracy of 3 decimal places. In Data Acquisition equipment, such as data loggers, the resolution is always greater than the accuracy and needs to be to guarantee the accuracy. The extra resolution is also useful because you can maintain the accuracy of a data acquisition device, in spite of errors in the conversion process when translating the analogue voltages into digital values (for example, the non-linearity of the ADC can be improved during calibration by using the extra resolution to adjust intermediate values).

So bearing this in mind and putting the returned values into perspective,

the most important point regarding the temperature value returned from the Tc-08 driver is that, in PicoLog, you can get returned temperature values specified to 4 decimal places, but they will only be accurate to 3 decimal places at best.

If you are using K-Type thermocouples or considering using a Type that hasn't been mentioned then the resolution obviously changes but the temperature accuracy remains at 3 decimal places. For completeness, if you are interested, the following Table shows the differences in the resolution of values returned for the default thermocouples supported by the TC-08 data logger:

Answer 3Regarding your question concerning the open thermocouple, as it's possible to have a valid reading of 0V for 0°C at an input, along with a substantial noise voltage, there is no way of knowing, purely from the voltage reading, if the thermocouple circuit is open or not, which is why I made the previous suggestions.

I hope this helps,

Regards,

Gerry