High-Speed Digitizers

cancel
Showing results for 
Search instead for 
Did you mean: 

Multirecord aquisition with NI-PXI5112

Hallo,

I need to aquire data (multiple records from stochastic transient events) with a 5112. I want to poll the buffer regularly by reading the "Records done" attribute. If this is not zero, there have been certain aquisitions and I fetch these with the MultiFetch VI. After this Fetch I expect the "Records done" counter to be zero, so on the next polling cycle I can check whether there have been any new aquisitions since the last poll. But unfortunately the "Records done" remains the same after the fetch. So this method doesn't work for me.

1) Is this behaviour intented or is it a bug?

2) How can I realize this kind of operation. Can I programmatically reset the "Records done" counter? I could determine the number of records by comparing the "Records done" of two consecutive polling cycles. But what happens when this counter wraps around?

3) When using the ConfigureHorizontal VI I must state a number of records. What do I have to type in if I want to aquire an infinite number of records, i.e. aquiring until I abort the aquisition?

Thank you for your help

Oliver Friedrich
0 Kudos
Message 1 of 4
(6,279 Views)
Have you tried using the "niScope EX Multi Record Fetch More Than Available Memory.vi" example? It has very similar behavior to the application you are describing.
Best Regards.
0 Kudos
Message 2 of 4
(6,275 Views)
Hallo Josh,

the example you stated looks very similar to my application with two exceptions.

1) As I have written in my first post I want to aquire an inifinite number of records, so the NumberOfRecords attribute is a little bit annoying to me. IMHO it makes not very much sense to limit the number of records.

2) The example waits at the Fetch VI when there are no records available and aborts with a timeout error, but this is a minor issue.

3) What happens with the FetchRecordNumber after incrementing and incrementing and incrementing... My application should be capable of running for days and even weeks. Going to the limit of an U32 should be sufficient enough, but it is definetely no good programming style. IMHO, there must be a method to clear records which have been fetched already.

regards

Oliver
0 Kudos
Message 3 of 4
(6,273 Views)
The 5112 does not support infinite multi-record acquisition. If you need that functionality, you can implement it yourself. The basic idea is to stream data continuously from the scope, search for trigger events, and clip out the regions of interest. If you have the Full version of LabVIEW, or better, there are some trigger VIs which will get you started (they don't have subsample accuracy - use linear interpolation to get it). Use the matrix VIs to get subsamples of the data from the 5112. This approach is only feasible for data rates under about 33MHz (very computer dependent, single channel). The maximum hardware data stream rate of the 5112 is about 66MBytes/sec, but I have never seen this in practice.

Good luck!
0 Kudos
Message 4 of 4
(6,266 Views)