LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Data acquisition

Hi there,

 

I am using labview to acquire a waveform from a RIGOL DS4024 oscilloscope. Even though I have set the oscilloscope's memory depth to more than 7000 points my appended array in labview acquires only 1400 points. I am willing to get more points but I don t know how. I connect the oscilloscope to my pc via an ethernet cable. Any ideas on how to increase the number of data points acquired? 

 

Thanks in advance!

 

John

0 Kudos
Message 1 of 7
(3,994 Views)

Hi John,

 

Any ideas on how to increase the number of data points acquired?

I guess the answer to that device specific question is found in the manual of your device.

What does it say about configuring the scope? Which commands to use?

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 2 of 7
(3,984 Views)

Hi there,

 

I am using labview to acquire a waveform from a RIGOL DS4024 oscilloscope. Even though I have set the oscilloscope's memory depth to more than 7000 points my appended array in labview acquires only 1400 points. I am willing to get more points. However when I tried to change the WAV:MODE NORM; to WAV:MODE RAW; I still get 1400 points. Any ideas on how to increase the number of data points acquired?

Thanks in advance!

Regards,

John

 

P.S. I attach both my main and my read programmes!

Download All
0 Kudos
Message 3 of 7
(3,987 Views)

Have you explicitly set the waveform points to 7000? If you have, I would try a query ":WAVE:POIN?" after reading your data to make sure nothing accidentally reset the reading mode or number of points.

 

Capture.PNG

Message 4 of 7
(3,983 Views)

Hi Gregory,

 

I have tried what you suggested but unfortunately it didnt work. if you want you could have a look on my vi.

 

Thanks in advance,

 

John

0 Kudos
Message 5 of 7
(3,929 Views)

Hello John,

 

I'll try to shed some light. Gregory's hint is still valid, we currently don't know if your scope does what we expect it to do. Firstly, I spotted a typo in your code:

:WAV:FORM BYT;:WAV:MODE RAW;:WAV:POIN 5000;


The colon I highlighted in red is missing.

 

If that does not solve your problem, could you change your code to test the following:

  1. Send the configuration data to your scope.
  2. Send ":WAV:POIN?" and read the result. Is it actually 5000 (as you are currently setting in your VI)?
  3. Send ":WAV:MODE?" and read the result to check if the mode setting worked.

If you get a different point number here, it might be that your scope needs the commands ":WAV:MODE RAW;:WAV:POIN 5000;" sent separately, with a small delay in between. Test that as well.

 

If that gets the correct return number from :WAVE:POIN?, but not the measurements you expect, we should have a look at your parsing code. It looks correct according to the DS4000 Programming Guide, but we should check. (Note: I might be looking at the wrong manual (please let us know) or at the wrong page.) Two ideas:

  1. Page 2-241 of the linked manual has a pseudo-algorithm to acquire data. Note that Step "S7" is repeated. Maybe you need to do it in this fashion as well (in other words: there might be a limitation on the data points the scope can transfer in one command)?
  2. The return format seems to be "#9XXXXXXXXXAAAAAAAAAAA[...]" (see page 2-241) where "XXXXXXXXX" gives the number of bytes "AAAAA[...]" is long, and AAA is the actual data. Your VI's code converts the second character ("9") into a number, and then reads that many digits (XXXXXXXXX), converts those into a number, and then reads that many digits. This seems to match the syntax explained in the manual. However, please output the data actually read and the parse results into an indicator each, and check if that matches what we expect. Please provide a screenshot. As I don't have a Rigol scope, this would be the only data source I have.

Ingo – LabVIEW 2013, 2014, 2015, 2016, 2017, 2018, NXG 2.0, 2.1, 3.0
CLADMSD
0 Kudos
Message 6 of 7
(3,917 Views)

What happens if after you do the measurement, set the long timeout you just read the entire response of :WAV:DATA? as a string and then parse?

 

I don't see anywhere in your SCPI code where you setup the scope for a single trigger. Is it constantly triggering and measuring?  If its started a new measurement while you are transfering data to PC, my worry would be that the memory of the waveform you are trying to read might not be there by the time you do the 3 sequential read statements.  So you might just be  getting fewer points because the buffer isn't full of the new measurement yet.

 

To test; setup single shot trigger, transfer data as a string, parse string, count the readings.

 

Craig

0 Kudos
Message 7 of 7
(3,904 Views)