I am using LabVIEW 8.2.1, a PCI-6255 card, and an SCB-68 terminal block. I have a Type K thermocouple with a thermocouple calibrator which I am trying to measure. Here is the problem, first, using the attached VI, I have tried to read this TC using AI0. Everytime I use AI0 I get the error saying Built-In CJC is not available. When I use any other channel, this error disappears. The second problem, when I use a channel other than AI0, I am only able to successfully read the TC on random channels. For example, it only works on AI13 to AI15. For the channels that it does NOT work on, I am able to see the correct voltage through MAX, however the AI Read TC VI does not for some reason give an accurate reading.
Does anyone know why I would not be able to use AI0, and why I am only to use certain channels for this TC? This makes absolutley no sense and I have tried swapping the SCB, the DAC Card, and the cables. I have reinstalled drivers and LabVIEW also.
Please help this is driving me crazy!
Solved! Go to Solution.
You need to read the CJC voltage seperately and then use its value when you read the TC.
This should get you on your way to reading the CJC voltage. http://digital.ni.com/public.nsf/allkb/16F71843CC7892D4C1256BE3004E1043
So AI0 is the CJC value? And I have to specify CJC Channel when I read the TC? Why is it that I got this to work when specifying Built-In source, and wired the thermocouple to AI15? And why does it not work on other channels?
Not sure if this helps you but...
Thermocouple reading are often differential measurements since they are typically very small values. To get differential readings two AI channels are paired up so half of the channels go away when you set things up for differential measurements. So could you double check the documentation for your device to ensure you are wiring the thermocoules properly? Correct pair, proper polarity, and proper TC type specified.
Flipping the jumper on the SCB-68 connects the signal from the CJC to the AI0 input of the DAQ card. It does not select differential mode for all the inputs.
I'm pretty sure that the task will automatically select differential mode when AI Temp TC is selected. That means that if you specify ai1 as the physical channel for the TC task, then ai1 becomes the + input and ai9 becomes the - input.
There are two modes on the SCB-68 using dipswitches, one is Temperature reference enabled for Single Ended, and another for Differential. I am using the Single Ended one. Therefore I understand channel AI0 becomes the CJC reference. My question is, why, when I am getting the correct voltage in MAX on certain channels and simultaneously the AI Temp TC returns some garbage number. This all WORKS fine using the same code on other AI channels. I am not using Differential at all.
For example, CJC enabled on single ended. I create a new virtual channel AI15 AI Temp TC task reading with Build-in CJC source, reading degrees F using -0.001V to 0.044V range. When the TC is outputting 44mV I am getting the correct 2000 degrees returned from AI Read 1 Channel 1 Sample. If I rewire the TC into AI5 on the SCB, and switch my code to point to channel AI5, I am receiving 44mV on MAX on AI5, and AI Read returns some huge garbage negative number like -15 trillion.
The cjc needs to be configured for differential. Following quote found here http://digital.ni.com/public.nsf/allkb/96B996BAD82A84E9862570690066B03F
"If you configure the switches on the SCB-68 to enable the temperature sensor on single-ended channel 0 (AI 0) rather than differential channel 0 (AI 0 and AI 8), you cannot use a DAQmx temperature task."