05-26-2025 01:28 PM
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!
05-26-2025 11:26 PM
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.
05-29-2025 03:56 AM
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.
When I transfer the entire waveform using the bellow example, the data is transferred correctly.
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, ...).
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...
05-30-2025 09:31 AM - edited 05-30-2025 09:35 AM
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
05-30-2025 09:49 AM
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.