From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

DAQmx calibration at AIN Min/Max

I'm trying to perform table calibration of multiple analog channels coming from SCC modules (ANALOG1_AIN1 physical channel is SCCMod0_ai0, etc...).  When I turn off calibration and apply reference voltages at the min/max I get the following:

 

Ref, DAQmx value

-10, -10.1

0, -0.05

10, 9.98

 

When I apply those to the scaled and un-scaled inputs of the calibration (AI.ChanCal property node) I get the following error:

 

DAQmx Save Global Channel.vi:5070001<append>
<B>Property: </B>AI.Min
<B>Requested Value: </B>-10.0
<B>Maximum Value: </B> 10.0
<B>Minimum Value: </B>-9.900990
<B>Channel Name: </B>ANALOG1_AIN1
<B>Task Name: </B>ANALOG1_AIN1

 

Using the wizard produces a similar error.

 

Why is the Ain Min/max being enforced for the un-calibrated actual response?  It is what it is right?  I'm not exceeding the actual min/max (Using a calibrated HP5700A).  Calibration requires me to use a reference at the min and max yet DAQmx won't let me use those (Table mode) because the actual un-calibrated values don't fall within those limits.

 

The bug here appears to be that the AI.min and AI.max values are being 'processed' through the calibration in a race condition like fashion.

 

What's the work around?  Polynomial based cal?  Fudging the endpoints (With resulting loss of accuracy)?  Or is there some trick here that I'm not seeing (Like temporarily disabling the min/max test if that's even possible)?

 

Thanks,

 

XL600

0 Kudos
Message 1 of 4
(2,854 Views)

Here's the example VI demonstrating the issue.  With this VI, both the table and polynomial modes generate the same error.  So using polynomials doesn't help as a workaround.  The default polynomials in this VI are matched to the table data.

 

 

0 Kudos
Message 2 of 4
(2,837 Views)

This bug is getting even worse.  It appears DAQmx sets AImin and AImax to the min and max of the REFERENCE then enforces that on the UNSCALED inputs to the calibration table.  So the un-scaled can never be outside the reference range prior to correction!

 

What about natural biases and non-linearities?  I even tried this using smaller reference ranges (Like +/-9V) with the same result.  This seems like a big oversight in the channel calibration process for calibration of extended inputs like SCC modules (Where the input range is the same as the physical channel).

 

SCC modules output half voltage (+/-5V) to the +/-10V PXI-6281 (LabView takes this automatically into account and presents the SCC module response as +/-10V) so there's really no justification for this issue from a hardware damage perspective.

0 Kudos
Message 3 of 4
(2,827 Views)

A few hours more and I believe I've answered my concerns.  It's not a bug (It's a 'feature'?).  The global channel AI.Min and AI.Max are the min/max of the pre-scaled values.  That means you have to calculate them so they can be set at the same time as applying the calibration so that the save operation doesn't fail.  On top of that, they can't exceed the absolute min/max of the channel (Range).

 

In my case, the channel range is +/-5V yet the absolute min/max is +/-10V because of some hidden automatic translation DAQmx does when using SCC LP-04 filter modules (How it does that would be for another topic, but I'm very curious).

 

I've modified my VI to calculate AI.Min and AI.Max to ensure they are set in a compatible manner prior to applying the calibration data.  This seems to work for polynomial and table based calibration.  Hope this helps someone else who's as confused as I've been.

 

NI?  The help description for AI.Min and AI.Max is not helpful here.  One would expect these to be the min/max for the post-scaled final channel value, not pre-scaled.

 

 

 

0 Kudos
Message 4 of 4
(2,809 Views)