High-Speed Digitizers

cancel
Showing results for 
Search instead for 
Did you mean: 

Fetch and peak detection all channels of PXI-5105 with 4M record... HELP!

Solved!
Go to solution

Once again many thanks to all dear colleagues who has responded! All your offers have very much helped me. I have attentively read everything, that you have advised to read to me.

 

Yesterday I thought that multirecord acquisition and analog edge trigger is saving my situation and all of my project. Because in my task no more than 15K pulses/sec are to be founded, thus record length it’s necessary to be corrected.

 

In other words if for 1 useful pulse to reserve trigger holdoff for 10 samples (or points) than it turns out, that full record length will be no more (10 samples *  15K pulses/sec) = 150 Кsamples/sec and the value many less than 4M samples/sec record. By the way if min sample rate is 5 MHz that 1 sample (or point) = 0,2 µs, i.e. my time for trigger holdoff is 2 µs. Am I correct or wrong?

But I don’t understood can I do an analog edge trigger’s individual configuration for each of 8 channel at once?

Also I don’t understood in the given context can I fetch whole array at once if on each of channels there is a various speed of the pulses in the 200….15000 pulses/sec band ?

0 Kudos
Message 11 of 16
(4,183 Views)

In short, but multirecord mode is not working, please see attachment

 

HELP!!  Why it is no working??

0 Kudos
Message 12 of 16
(4,180 Views)
Solution
Accepted by Current_93

You are trying to acquire too many records, so the board times out before it acquires them. 10000 records is a lot of records.  Try a lower number that you will always hit in a reasonable amount of time and set your timeout accordingly.  Or set your timeout to -1 to effectively eliminate it.

 

This problem highlights the major issue which will cause this method to fail for your application.  Your events are happening at random intervals.  I am going to assume they are not correlated on the different channels, either.  The 5105 has only one trigger, so you would not be able to use this method on more than one channel at once.

 

I would recommend fetching the data from all channels in chunks at the lowest possible resolution (I16s in your case) and process in chunks (don't forget to look for events which cross chunk boundaries).  The optimum chunk size will depend on your hardware.  You will need to benchmark it.

0 Kudos
Message 13 of 16
(4,176 Views)

Dear DFGray!

 

Chunking with events... May be are there any examples?? 

 

I think that "data decimation" after fetch helps me. About it I read in "Managing large data set..."

0 Kudos
Message 14 of 16
(4,161 Views)

Please see the attachment that I did with your help. Smiley Happy

 

In this configuration all channels are working now with CPU load about 68% and memory consumption about 290MB only.

 

But I'm using another "Threshold peak detector.vi" it is simpler.  I don't know am I correct or wrong??

0 Kudos
Message 15 of 16
(4,154 Views)

Sorry for the late response.  I have been on vacation.

  1. Do not use max-min decimation if you are trying to analyze the data.  It should only be used for display. 
  2. You can find examples of fetching in chunks in the NI-SCOPE examples.  Look for continuous acquisition or fetch forever.
  3. You can find examples of the event structure in the LabVIEW help.
There is no attachment on your last post.  If you attach your latest code, I would be happy to look at it.
0 Kudos
Message 16 of 16
(4,136 Views)