Hello, I am using the PXI6289 to control an SCXI1102 AI card with the SCXI1303 terminal block.
VeriStand's channel scaling appears to be incorrect for at least K type thermocouples. When I provide a controlled 0.1 mV voltage, I expect to get about 25C reading. However, the scaled value ends up being 480-520C instead (and oscillates wildly as if there is a large gain on some small voltages).
I have checked the hardware by using MAX to test the devices and read the temperatures, and the results through this way is fine. I also get close to the right temperature by entering the K type polynomial's first few coefficients.
Also, on a related note, I am not sure how to point to the cold junction compensation temperature signal. When I choose "IC" which I assume means "internally compensated," it asks me for a channel, but the CJC temp channel does not show up in the channel list. The CJC temp channel does show up in MAX.
Has anyone verified the thermocouple scaling in Veristand? How do I access the CJC temp channel through VeriStand. Thank you.
I assume that you are using NI VeriStand 2009, right?
There is no way in System Explorer (SE) to configure other types than voltage or current. In your case, there are basically two workarounds to go with.
Option 1 is the more accurate one, whereas the effort to get to it is higher than option 2, which is just an approximation.
Therefore, you might want to not bother reading option 1 but go directly with option 2.
If you still want to get a fairly accurate value for option 2, you could only read the internal channel, calculate the temperature and set up a user channel like I describe it under option 2.
In the SE add an 'Internal Channels' to your cDAQ. In case of the 9211 the internal channel that we need is called '_cjtemp'. Once you have created the internal channel for your cDAQ1Mod1 device, check out in the pull-down list if there is a channel that is called _cjtemp, if not, just start typing a new value in the pull-down list. The returned CJC value is in volt, which means that you have to convert it to a temperature. In order to get the convertion use a calculated channel. The following VI will help you out to get the formular right: <LabVIEW>\examples\CompactRIO\Module Specific\NI 9211\NI 9211 Support Files.llb\NI 9211 Convert to Temperature (Calibrated).vi. This VI is used by FPGA though, which means you gotta strip out the binary conversion. At the end the result should be the same: Temperature in Celsius. The last step of this calculation is to take this result and divide it by 100
Create a user channel and set its value to a general ambient temperature divided by 100.
In both options, the final value of C needs to be divided by 100 which is a specific step that is required in order to use the 'Channel Scaling and Calibration' tool (this tool is acessible through the Workspace). In the Channel Scaling and Calibration tool, pick the AI channels of the 9211 module (right now, it is only possible to pick one channel at a time though). On the 2nd page you may fill out the cal information if you feel like, if not just proceed on to the next page, change the scale type to 'Thermocouple' and click next. Specify your thermocouple type and the units. Set the CJC type to IC sensor and pick as CJC sensor channel the SE channel that contains the final result (value in celsius divided by 100).
I know, all these steps sound ridiculous for just measuring temperature. We are looking into it to improve the workflow asap though.
Thanks for the prompt reply. Yes, I am using VeriStand 2009 although I am beginning to try out the 2010 beta2 as well.
I am not using cDAQ but SCXI. Unfortunately there doesn't seem to be a way of adding an internal channel for SCXI so I cannot use option 1 even if I'd like to. Or am I missing something?
Even disregarding the CJC sensor, I don't believe the K type thermocouple scaling in the Scaling & Calibration tool is correct. For example, a test 0.1 mV signal is giving me 480-520C as opposed to around 25C. Thanks.