I try to acquire continuous samples (SGL data type) of a analog signals with the 8 differential analog inputs of a NI-PCI 6133 board. The 32 MB onboard memory limitate the length of acquisition opération. I would be able to store directly datas in PC memory though PCI bus. Is it possible to perform this storage? How doing to performe real continuous storage operations, at this rate, with this board?
Solved! Go to Solution.
First of all, did you get any errors, what is your sampling rate?
Did you do large finite or continuous acquisition?
Which developpement system?
Can you reply with a print screen of you DAQ application?
Data transfer memory is done in several stages:
1- The signal passes to an onboard memory buffer which stores the data until it can be transferred from the device to the computer (Bus depending).
2- The data is then transferred from the device to a PC Buffer through Direct Memory Access (DMA) or Interrupt Request (Board depending).
3- The DAQmx read.Vi then transfers the data to LabVIEW, which can be displayed on the front panel for example.
The main difference between a finite buffered acquisition and continuous bufferes acquisition is the number of points that you acquire. With a finite buffered acquisition, you can acquire a set number of point. With a continuous buffered acquisition, you can acquire data indefinitely.
To understand how the driver works, i encourage you to read this tutorial below:
Getting Started with NI-DAQmx: Main Page
National Instruments France
On a PC with LabView 2010 and NIDAQmx 9.1.7, I try to perform continuous buffered acquisitions with the PCI6133 DAQcard. I would like to acquire 8 differential channels at a 1MS/s sample rate. in these experimental conditions, I can acquire signals during 4s before an error message "full memory" appears and it is coherent with the onbord memory depth. But 4s are not enough for what i want to do.
I would like to get better informations about how this memory can be used. Can i use it as a circular memory? as a double acces memory? is it possible to by pass the on board memory to store directly the data flow in the PC host memory? Is it possible just to get the binary word (14bits) provided by the ADC and is this use will save memory? Is there a way to increase the duration of such a data acquisition?
attached a screen file of my DAQ application
I think this is a windows warning, because you are performing a fast continuous acquisition and tring to construct an array with all points, therefor your RAM will increase significantly until this message PopUp. Is this PopUp followed by another?
Also in the DAQmx Read.vi, try to read by package of (1/10) the buffer size, this step allow you to decrease the time loop, so the refresh front panel. Indeed, refresing the front panel requires additional resources to your computer.
Is the behaviour the same with lower frequency (Fs), or just 2 channel scanning? During the execution open the Task Manager, and check the LabVIEW size execution process, also the RAM.
National Instruments France