Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

LeCroy Wave Series Oscilloscope acquire in blocks

Hello.
I need to acquire large amounts of waveform data from a Teledyne LeCroy Wave Series oscilloscope over an extended period. My goal is to capture data in sequential blocks so I can continuously collect data without filling up the oscilloscope’s memory. Do anyone know how to capture in blocks from Lecroy? The available examples and vi library dont seem to have this possibility. 
Thanks!

0 Kudos
Message 1 of 5
(205 Views)

The best option is to see if the scope offers some high-speed memory locally on the scope and if that allows streaming that data over GPIB (which is slow). 

 

Reading large amounts of data over GPIB or any interface in ASCII is slow; check if there is a binary format in which the scope can stream the data.

Santhosh
Soliton Technologies

New to the forum? Please read community guidelines and how to ask smart questions

Only two ways to appreciate someone who spent their free time to reply/answer your question - give them Kudos or mark their reply as the answer/solution.

Finding it hard to source NI hardware? Try NI Trading Post
0 Kudos
Message 2 of 5
(181 Views)

Hello, here are more details:

I’m currently using a Lectroy HD6000 series oscilloscope, which has a large internal memory.

My strategy is to save the full acquisition into the oscilloscope's memory, and then transfer the data in blocks.

Due to the large amount of data, transferring the entire waveform at once often causes my PC to run out of memory. That’s why I’m trying to transfer the data in smaller blocks. However, I’m encountering issues when doing so.

To transfer the data, I’m using the VI provided in the Lecroy library.

luisdclopes2_1-1748507828816.png

 

When I transfer the entire waveform using the bellow example, the data is transferred correctly.

luisdclopes2_3-1748508689812.png

 

But when I try to collect data in blocks of 1k points, I observe strange behavior — it seems to cut or repeat parts of the data. I suspect I might not be using the VI correctly.

Here’s what I’m doing:

  • I set the "Number of Points" input to 1000 (for 1k points).

I set the "First Point" input to increment in steps of 1000 (e.g., 0, 1000, 2000, 3000, ...).

luisdclopes2_4-1748508910870.png


I am using the X-Stream DSOs Type: LabVIEW™ driver
https://sine.ni.com/apps/utf8/niid_web_display.download_page?p_id_guid=07C0AC709BD14C10E0440003BA7CC... 

0 Kudos
Message 3 of 5
(127 Views)

Just looking at your pictures, do you send "1,00k" or is that translated to 1000?  Using the local decimal point separator rather than a period can sometimes cause problems.  See - https://forums.ni.com/t5/LabVIEW/decimal-point-format-period-comma/td-p/1325425

 

Other than that what are the indices you send to the subvi on each iteration?  Perhaps the last iteration exceeds the memory buffer and thus you get extra data.  Use debugging to see how many times the loop iterates and what points you get back on each iteration.  You might need to read the exact number of points in memory, then tailor your last read command to end on the last point.  

 

Also, this is the low-level Fetch Waveform VI.  There is probably a higher level Read Waveform VI that already acquires data in chunks.  If you don't like that one then, look at their use of this lower level vi.

 

Craig

0 Kudos
Message 4 of 5
(51 Views)

Hello, 

Everything is fine with the 1K — in my region, the comma is used as the decimal symbol.

I’ve found the issue: it was a pseudo-bug in the Fetch Waveform.vi library. The inputs for No. Points and First Point were defined as i16, which only allows for positive values up to 32,768. That wasn’t enough for my use case. I changed the data type to i64, and it started working. u32 or u64 would also have worked.

In the end, it was a pretty obvious fix — not sure why it took me so long to figure it out.

I really appreciate your help.

0 Kudos
Message 5 of 5
(45 Views)