08-25-2008 05:13 PM
I have a couple of questions
The B/E/M/S Series Calibration procedure for Ni-DAQMx (http://www.ni.com/pdf/manuals/370937f.pdf), states all external signals should be disconnected when you self-calibrate a device. Is that statement accurate? Do the signals have to be disconnected, what if I have an embedded application and would like to calibrate against an external reference? Are the inputs connected to each other somehow such that they must be disconnected for the calibration to work?
It seems self-calibration is not officially supported in NI-DAQMx Base in Linux, if that is correct has anyone gotten it to work in Linux?
If I choose not to do self-calibration or if there is no workaround, one option I am considering is using this DAQ as an A/D and computing my own scaling we have the capability to provide as input two known signals at the extremes of our desired measurements. How do the DAQMX base API commands use the internal calibration data? The DAQMXReadBinary functions imply that unscaled values are read. Is no internal calibration data applied to these?
Thanks
08-26-2008 07:09 PM
Hello BattelleV,
Thanks for the post! I will try and help to give a better idea of the calibration questions you have asked. Regarding disconnecting all external signals when performing self-calibration, this is necessary because the self-calibration is measuring an onboard reference voltage. If there are any external connections, these could potentially change the value being measured as they may provide additional paths that could act as loads. In the case that you would calibrate against an external reference, you would no longer be using the self-calibrate function. Instead, you will use the adjustment procedure which is outlined beginning on page 19 of the B/E/M/S Series Calibration Procedure for NI-DAQmx document.
Regarding self-calibration when using DAQmx Base, you are correct that it is not supported. There are no calibration functions in the DAQmx Base API, and so the factory calibration constants are loaded and used (from the DAQmx Base for Linux ReadMe). Depending on the type of board you are using, the calibration may be done in hardware (for E-Series) or software (for M Series). What this means is that if you perform a binary read with an E Series device, the data will have already been calibrated, because it is done in hardware, but it will not be scaled to a voltage value. With an M Series device, the calibration and scaling will be performed together in software, using a third-order equation. So if you read the raw binary data with an M Series, there will be no calibration or scaling coefficients applied to it. Hope this helps,
08-27-2008 12:57 PM - edited 08-27-2008 01:00 PM
Daniel,
I have an M Series USB 6215/6218 device and so have to use DAQmx Base API. I believe what I may have to do is read a voltage (0V) and one at say 5 or 7.5V and then come up with my own scaling for offset errors; thereby using the binary values to do so since I don't think the Base API allows me to do the adjustment procedure on page 19. Do you know if the specifications for the USB 6218 or 6215 hold when one is not using the calibration and scaling that is do the DNL still guarantee no missing codes, and do the equations for caluclating the INL still hold? The DAQ may see a temperature change from 16-30 degrees Celsius and needs accuracy of 0.1% from 0 to 5 volts.
09-02-2008 11:31 PM
Hi BattelleV,
My apologies for the delayed response due to the holiday weekend. Regarding your question, these specifications are valid only when calibration is being used, due to the fact that specific coefficients are applied to a third order equation in order to properly calibrate and scale the signal. I would recommend, if necessary, to just use the voltage values that are returned and then apply whatever scaling may be necessary to these values. Hope this helps further,