09-05-2006 01:43 AM
09-06-2006 02:44 AM
Regards,
Jaime Cabrera
NI Applications Engineering Spain
09-07-2006 09:19 AM
09-07-2006 10:22 AM
Probably the problem is on the read function. The documentation of the function is the next one... be carefull when using more than one channel if u group by scannumber (in the result vector is 1 sample for each channel interleaved )and group by channel (first all the samples of one channel and then the other ones... in blocks not interleaved).
Regards,
int32 DAQmxReadAnalogF64 (TaskHandle taskHandle, int32 numSampsPerChan, float64 timeout, bool32 fillMode, float64 readArray[], uInt32 arraySizeInSamps, int32 *sampsPerChanRead, bool32 *reserved);
Reads multiple floating-point samples from a task that contains one or more analog input channels.
Input | |||||||||||
Name | Type | Description | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
taskHandle | TaskHandle | The task to read samples from. | |||||||||
numSampsPerChan | int32 | The number of samples, per channel, to read. The default value of NI-DAQmx determines how many samples to read based on whether the task acquires samples continuously or acquires a finite number of samples. If the task acquires samples continuously and you set this parameter to If the task acquires a finite number of samples and you set this parameter to | |||||||||
timeout | float64 | The amount of time, in seconds, to wait for the function to read the sample(s). The default value is 10.0 seconds. To specify an infinite wait, pass -1 (DAQmx_Val_WaitInfinitely). This function returns an error if the timeout elapses. A value of 0 indicates to try once to read the requested samples. If all the requested samples are read, the function is successful. Otherwise, the function returns a timeout error and returns the samples that were actually read. | |||||||||
fillMode | bool32 | Specifies whether or not the samples are interleaved.
| |||||||||
arraySizeInSamps | uInt32 | The size of the array, in samples, into which samples are read. | |||||||||
reserved | Reserved for future use. Pass NULL to this parameter. | ||||||||||
Output | |||||||||||
Name | Type | Description | |||||||||
readArray | The array to read samples into, organized according to fillMode. | ||||||||||
sampsPerChanRead | The actual number of samples read from each channel. |
Name | Type | Description |
---|---|---|
status | int32 | The error code returned by the function in the event of an error or warning. A value of 0 indicates success. A positive value indicates a warning. A negative value indicates an error. |
09-14-2006 08:11 AM
09-25-2006 03:09 AM
07-13-2011 04:26 AM
Hi Jamie,
I was reading this tread in the hope that it will tell me how to configure DAQmx_Val_Cfg_Default for differential voltage. This question still is not answered. How do I select two single ended measurement on AI0 and AI4? How do I select single differential measurement to measure difference between AI0 and AI4? Sorry but this is not obvious to me.
07-16-2011 11:49 AM
07-21-2014 10:17 AM
When you call "DAQmxCreateAIVoltageChan", you need to set the "terminalConfig" to the proper value. You can find the values on the NIDAQmx.h header.
For example, if you need single differential measurement, set it to 10083 .
So, instead of using "DAQmx_Val_Cfg_Default", you set it to the correspondent terminalConfig integer.
Extracted from NIDAQmx.h :
DAQmx_Val_RSE = 10083
DAQmx_Val_NRSE = 10078
DAQmx_Val_Diff = 10106
DAQmx_Val_PseudoDiff = 12529
Reference: http://zone.ni.com/reference/en-XX/help/370471W-01/daqmxcfunc/daqmxcreateaivoltagechan/