High-Speed Digitizers

cancel
Showing results for 
Search instead for 
Did you mean: 

Continuous multi-record acquisition PXI 5154

All,

 

Ideally for my DAQ application I would like to set up a continuous multi-record acquisition on the PXI 5154 using external trigger. (Without the need of using the configured acquisition). In other words, its an infinate record acquisition.

 

For example: I would acquire 300 samples (this is record length) at about 2 KHz at max daq sampling rate. The data would be processed in between the 2 KHz period and a new record would be retrieved from DAQ memory. This would go on and on using the "more than available memory option" so as to keep overwriting the memory cyclically.

 

I have searched and searched, and was wondering if there is a solution to get this acquisition type implemented. i.e. This multi-record acquisition would stop only at user request or when there is an error.

 

Some older posts and NI web info point to some ghost examples. But so far my search has resulted in nothing. Is this at all possible?

 

If someone knows of info or example that works, let me know.

 

Your help will be appreciated.

 

Peter

 

0 Kudos
Message 1 of 4
(6,708 Views)

Peter,

 

The easiest way to do a continuous acquisition in this manner would be using a program similar to those found in the example finder. (in LabVIEW, go to Help >> NI Example Finder, and then to Hardware Input and Output >> Modular Instruments >> Continuous Acquisition >> niScope EX Multi Record Fetch More Than Available Memory  or the niScope EX Fetch Forever.VI).  Let me know if these don't help get you started. You may need to do a bit of alteration to get them working with the exact parameters you are looking for, but they should be a good place to start.

 

Timothy

 

 

Timothy S.
Senior Technical Support Engineer
0 Kudos
Message 2 of 4
(6,683 Views)

Hi Peter,

 

Just to add some additional information, unfortunately at this time, doing an infinite multi-record acquisition is not exactly possible. Based on the state model of the digitizer, when configuring a multi-record acquisition, we have to have information regarding the size and amount of the records so that the buffers can be configured properly. Thus, an actual amount of records must be specified, even when fetching more than the available memory. Therefore, you will always have the limitatition that the maximum amount of records you can specify and acquire will be the largest value that is possible for the "number of records" attribute, which is an I32 value. Hence, the largest amount of records you can acquire and fetch before having to stop and restart the acquisition will be 2,147,483,647 records.

 

While it is not technically infinite, that is still a pretty large number of records. The amount of downtime to stop and restart the acquisition would be fairly minimal considering you only have to do it every 2 billion+ records. The rest of the functionality you are looking for exists in the "multi-record fetch more than available memory" shipping example (you might have to modify it slightly to fetch more than a single record at a time in each loop iteration if you are streaming the data quickly). Your other option, as Timothy mentioned, would be to perform a continuous acquistion and post-process the data to determine trigger points and individual records, though this not exactly a valid solution when acquiring data beyond the PCI bus throughput limitations.

 

Best regards, 

Daniel S.
National Instruments
0 Kudos
Message 3 of 4
(6,671 Views)
Great suggestions guys and thanks for the information. I actually have been using that example you suggest as a template. The mod is to have two loops: one that does the multi rec acq inside the one that restart the muti record acquisition. Thanks Peter
0 Kudos
Message 4 of 4
(6,656 Views)