Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

PCI 6011E---How to stream the data from the buffer in the ram to hard drive in real time?

I am using NI PCI 6011E to do DAQ.

Both of the two 12 bit A/D channels are used, the max speed is 5MS/s, mine data stream is 4MS/s.

My PC is PIII 900MHZ, 384MBS RAM, 7200RPM HD.

The problem is I need to save all the data simutiniously into hard drive. But the data speed of both channel is 12MB/s to PCI.

I kept dropping data dramaticlly. Also did I observe is that the CPU usage is always 100%. I wonder where does the problem come from? CPU? RAM? PCI? DMA?

I also want to know which vi should I use or how to specify the buffer size in the ram and save them in real time to hard drive?

Thanks.
0 Kudos
Message 1 of 4
(2,438 Views)
It is difficult to stream data to disk at such a high rate. You need to have a fast computer with a high speed hard drive (preferably SCSI). Below is an example that is modified to streamline logging to disk. This provides some utilities that will allow for faster logging rates. As for the CPU usage, the AI Read.vi will utilize 100% of your CPU while it polls and waits for the buffer to fill up. I hope this information helps.

HSDL
Message 2 of 4
(2,438 Views)
Hi, jeremy,

Thanks so much for the sugestions. I still have several questions regarding those "buffers":

When I specify "buffer size" in the "AI Buffer Config", (my AI work is a ext. timed AI)

1. How big could it be?

2. At what freq. will PC read data from DAQ card's internal FIFO buffer to this buffer? the same as external timming clk?

3. If I set up a 2D array to read this buffer, will this 2D array catch up the speed of "AI buffer"?
0 Kudos
Message 3 of 4
(2,438 Views)
1) For NT based versions of Windows, you cannot specify a buffer greater than 64MB. Windows will not let you page lock that much memory.
2) Data will be transferred from the onboard FIFO to computer buffer in chunks. So, while your acquisition is going, the onboard FIFO is filling up. After so many samples are collected in the FIFO, they are transferred to computer memory automatically.
3) You will need to make sure you call AI Read.vi frequently enough to transfer data from the computer buffer into LabVIEW memory before the data is overwritten. Therefore, as long as AI Read.vi is executed frequently enough, you can return the data in a 2D array without overflowing your buffer. A good thing to monitor is the "scan backlog" output of AI R
ead.vi which tells you how many data points are left in the buffer that were not read during that last AI Read.vi call. Once that number reaches your buffer size, you will get an error. I hope this information helps.
0 Kudos
Message 4 of 4
(2,438 Views)