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: 

pci 6115 4 channel 10 mega samples, is it possible?

ok,
pci 6115
4 channels in use sampling at 10 mega samples
I want to be able to sample for about 10 seconds and store the data to disk.

Is this physically possible? I worked it out that it was not. I would like someone to verify this for me.

I am using c++ to get the data back from the card, at 4 channels with 10M samples, thats 76ish meg a second.

Any comments / suggestions would be much appreciated.

BTW this is to measure pulse rises of transmissions so needs to be 10^7.

Thanx
Tom
0 Kudos
Message 1 of 7
(3,832 Views)
Tom,

This will be system dependent. What kind of computer are you using? Have you tried it on your system? How did you calculate that it was not possible?

Regards,
AnujD.
0 Kudos
Message 2 of 7
(3,813 Views)
Hi Tom,

Yes it is possible, theoretically, but unlikely without additional hardware. The achievable streaming to disk is very much system dependent and your most likely bottle neck is your hard drive. I assume you have tried and not been able to achieve these rates? If this is the case I would suggest that you go to an alternative disk storage option. I personally recommend that you check out a product called StreamStor by conduant (www.conduant.com). They have two PCI products one that streams data at 100MB/s (PCI-816)and another at 200MB/s (PCI-816XF-2). An alternative way of solving this problem is by purchasing a product that has enough on-board storage to acquire the data you need without having to stream it to disk. In the NI catalog you will find the PCI-5122 (http://sine.ni.com/apps/we/nioc.vp?cid=13309〈=US) which has two channels per board with a memory options of upto 256MB/channel. Two of these boards can easily be synchronized using phase looking and would allow you to sample at even faster rates and still collect all your data.

To best address your situation I strongly recommend you take the time to view the following Web Event on Demand:
Streaming with NI Modular Instruments - From Megabytes to Terabytes
http://sine.ni.com/apps/we/nievn.ni?action=register&offering_id=400748&site=NIC

Hope this helps.

Regards,

-Christer
0 Kudos
Message 3 of 7
(3,794 Views)
Hi thank you both for your replies,

Sorry if the post is a little scatty, but its kinda how my mind works!

Firstly, why is 10^7 4 channel sustained DAQ impossible on my system? Well thats 76ish meg a second coming in, the pcmcia bus can handle theoretically 130ish meg a second so should be alright, swapping memory buffers to store more data internally would only get me a few seconds and then i would have a horrendous amount of data to write back to disk, which is a very slow operation.So it would be a long time between aquisitions. I can live with a pause inbetween aquisitions.

After further investigation the streaming of the data to disk is indeed the problem. I have calculated the machine i am using can sustain a writing data rate of about 9 meg/s.

I have managed to use c++ to create a large memory cache for the data samples and have it aquiring 5 seconds of data at 6million samples a second on all 4 channels. I thenpause daq write the data to disk and continue. I should be able to get about 10 seconds of aquisition with the system i am on at each DAQ.

When i write data to disk i write the i16 undemuxed and unvoltage scaled data to disk as this requires less processing and less data rates. I am currently toying with fast realtime zip chunk compression as the data comes in to speed up disk writes. Offline i then demux it and scale it and rewrite it to disk to analysis the channels. This seems to be good enough for the project i am working on.

As much as i would like one of those very nice fast things to write data i simply cannot afford it.

Any suggestions or comments would be much appreciated.

Thanx
Tom
0 Kudos
Message 4 of 7
(3,787 Views)
Hello,

I have some doubts regarding PCI 6115 DAQ Device which has a sampling capacity of 10Msps
and also 32 MS buffer.

1) I acquired a Sampling speed of DAQ is : 2Msps (My goal is to acquire 10Msps)
format of the saved file file : txt

Suppose if the sampling speed is 2Msps
deltaT = 1/2Msps = 0.5 micro seconds

Suppose if the sampling speed is 10Msps
deltaT = 1/2Msps = 0.1 micro seconds ?

I need to store the text file in the following format.

Start Time(St_Time) 0 (?)

deltaT + St_Time Value1

2*deltaT + St_Time Value2

3*deltaT + St_Time Value3

4*deltaT + St_Time Value4



2) For how long we can sample the data continously ( is it 24 hours )
or a burst until the on board memory is full?

3) Can I fully utilize 32 Msamples buffer while am storing the
retrieving the samples from onboard memory.
( 16 Msps for AI and 16 MSps for AO )

4) Can we Adjust the input range from Vmin to Vmax
Since my signal sometimes may be of very short voltage
Hence we need to consider only short voltages (say Vmin=0v and Vmax=1.2v)
in order to properly recognize the signal and sample it.

I am also attaching the File I used for onboard memory utilization.

I also have a doubt. When I am running the attached program the scan rate is
going up to 30 Msps but I dont understand that how I am able to acquire
30 Msps when the Maximum board memory is 10Msps.

I also have a doubt regarding acquiring the samples and saving them to disk.

well, I would appreciate if I can get a Quick reply and I am also working on
that. I hope I could solve the problem.

Regards,
Kris
0 Kudos
Message 5 of 7
(3,754 Views)
Hi Krishna,

In answer to your questions:

1) You should be able to save your data to a file how you like as long as you get the data all parsed out correctly and have the string arrays made properly in labview. One problem you will have is that the start time will not be completely accurate. The time stamp can be taken when the command is sent from software to start the acquisition but some time may pass before it actually occurs (this error is indeterminate unless you move to a RT system).

2) If you get your sampling rate and buffering setup properly you should be able to sample continuously for an extended period of time (hours, possibly days) as long as you don't overwrite your buffer and you have enough space for all of the data.

3) Using the "allocate device memory" option for the AI_Config and AO_Config you should be able to allocate 16 MB each for input and output.

4) You can set the input limits on your VI to achieve the best resolution for the data you are acquiring. Once you put in the limits you desire, the software will aoutomatically calculate and configure the proper gain settings.
0 Kudos
Message 6 of 7
(3,727 Views)
Hi Tom
yes,it's possible to acquire 10M samples/s on 4 channels, just see the code attchment which is written in Vc as console app, which is working fine on my system(sys config Pentium2.4GHz and 1 GB RAM, windows 2000). for better performance i think you can introduce Sacn_Demux after DAQ_DB_Transfer so that one half buffer data will be stored in contiguous memory locations channel wise , so that in later while writting to file you can write 2.5MS of data per channel to file in one shot( which i haven't done). all you need is high end processor and much RAM.


No extra includes i made.functions like memcpy etc are present in "windows.h" which is included in "nidaqex.h", so i hope it works fine with your environment.i hope this code may give an idea.


Any improvements are welcome,

Thankx
Reddy JS
0 Kudos
Message 7 of 7
(3,635 Views)