LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Inaccurate Scaling of Unscaled DAQ data

I'm writing unscaled data to an I16 file during acquisition of multiple DAQ analog voltage channels. After acquisition, I retrieve the data, scale it, and write it to a spreadsheet file. According to this post:

http://digital.ni.com/public.nsf/websearch/E943889030F3D9D886256930007C430F?OpenDocument

I am to scale the data (I16 data / 2^16 * (Vmax - Vmin). However, I've noticed that it is very inaccurate. For instance, I'll calculate a voltage of 4.3 volts when the actual voltage was 4.6 volts. Anybody know the source of the inaccuracies and/or how to fix this? Other posts of mine that have gravitated to this problem:

http://forums.ni.com/ni/board/message?board.id=170&message.id=113922#M113922

http://forums.ni.com/ni/board/message?board.id=170&message.id=113688#M113688
0 Kudos
Message 1 of 9
(3,692 Views)
Hi again in this thread.
I tested usscaled method using a 6025E card and a calibration signal from s scope and errors are as expected.
So, perhaps you have a problem with your card or a problem of crosstalk ( it happens when usinga various channels). Try to test only a channel to see if it is a crrostalk problem or a daq card problem.

by the way, what card are you using?

cheers
Alipio
---------------------------------------------------------
"Qod natura non dat, Salmantica non praestat"
---------------------------------------------------------
0 Kudos
Message 2 of 9
(3,676 Views)
See this thread
http://forums.ni.com/ni/board/message?board.id=170&message.id=101052&query.id=4239
and use channel property>analog input>general properties>advanced>device scaling coefficients.
In may card, 2nd value is the multiplier for I16, and it is exactly (Vmax-Vmin)/2^16.
May vary in yours depending of card and calibration.

Hope it helps
Alipio
---------------------------------------------------------
"Qod natura non dat, Salmantica non praestat"
---------------------------------------------------------
0 Kudos
Message 3 of 9
(3,672 Views)
I'm using a PCI-6251. It scales just fine when I acquire scaled data. I just find that my formula gives me a lot of error when manually scaling the data after acquiring unscaled data. I found Get Scale Information.vi (NI Measurements >> Data Acuisition >> Calibration and configuration >> DAQ Channel Utilities), but I'm not quite sure how to use this. How do I access "channel property>analog input>general properties>advanced>device scaling coefficients" ? (i'm an amateur with respect to property nodes). I still get significant error with one channel.
0 Kudos
Message 4 of 9
(3,662 Views)
Hi
See attached doc to find that property node.

Hope it helps
Alipio
---------------------------------------------------------
"Qod natura non dat, Salmantica non praestat"
---------------------------------------------------------
0 Kudos
Message 5 of 9
(3,650 Views)
perfect! thanks!
0 Kudos
Message 6 of 9
(3,646 Views)
Hi again Cleat.
See this note: http://digital.ni.com/public.nsf/websearch/6ba35b863a52d77586256f94006c8eac?opendocument
Refers to examples of adquirin binary, and saving scaling coefficients in file header to be used later
Actually, example is "cont acq &......." It is I32, but you can adapt it for I16.
Cheers
Alipio
---------------------------------------------------------
"Qod natura non dat, Salmantica non praestat"
---------------------------------------------------------
0 Kudos
Message 7 of 9
(3,642 Views)
Hi,
If I use  "channel property>analog input>general properties>advanced>device scaling coefficients" for N chanels with the same range it is all OK, but if I want use this property for  N  channels  with  different  range , there is an error (error.jpg) , how can I use this property for individual channel?

JC
0 Kudos
Message 8 of 9
(3,244 Views)

Hi JC,

This error occurs because the scaling coefficients that DAQmx uses varies with different specified ranges.  Since each of your N channels has a different scaling range, you need to specify the active channel from which you want to read the scaling coefficients.  To do this, expand the property node to two elements and choose Active Channels (if subset) as the first property.  Then use the same AI.DevScalingCoeff as the second property.  Then you can create a constant off of the Active Channel property to select the channels that you want to read.  The following screenshot shows how to use the Active Channel property. You will need to make a different property node for each channel that has a different specified range. Hopefully this information is helpful!

Message Edited by Vanessa L on 10-30-2007 11:04 AM

Regards,
Vanessa L.
Applications Engineer
National Instruments
0 Kudos
Message 9 of 9
(3,209 Views)