Hi, I am making a Labview program to control my Lecroy Waverunner 374 to acquire signal automatically (for example, per 1 minute) from two channel (spescifically trace A and Trace B) simultaneously. I have a problem, where the result of the signal I got, it's not a smooth signal (It interupt with a certain noise). I tried to acquire the signal manually with ScopeExplorer and I got a good result, so the problem must be on my program. Can anyone help me with this? Thanks!
Do not run your commands the the scope in parallel. You are likely just confusing the crap out of it. That VISA wire should not fork.
so, what if I want to acquire the trace from two channel simultaneously? I need to make a parallel measurement at once.
You need to setup your scope to trigger once, let it trigger, then get each waveform. You can then trigger again when you want the next set of waveforms.
Your problem is that you only have one bus to talk through. Therefore you can only get one of the waveforms at a time. And if you have the scope continuously sampling, the signals will not be synchronized. That's why you need to make the scope stop sampling before you get each waveform.
Depending on what frequency bandwidth you are trying to capture, you might be better off with a DAQ from NI that can constantly sample multiple channels and give you both channel's data with a single call to DAQmx.
I am not sure how to use DAQ, since I am very new to Labview. I tried to run the program, it actually works, but, somehow, there is a sudden surge I got in the mid of the measurement. I wonder how other Lecroy user may solve this problem if there's any
It appears that "crossrulz" has resolved this with his recommendation to synchronize the acquisition. You must trigger the scope one time, then go get all of your waveforms. Then you can arm the trigger for the next acquisition.
The issue you appear to be having is becuase the scope is constantly triggering so as it fills up the memory with the data, you are asking for the data and it sends what it has, or you have asked for the data before it is available.
i.e. if you acquire 10 seconds of data, you must wait for 10 seconds for the scope to acquire it before you ask for the data. (It is actually a little longer than this because the scope must acquire the data, process any math or measurements you have setup, and then render the display for everything).
Use the WAIT command to synchronize your acquisitions. (There is a section in the remote control manual on page 43 that describes how to "Transfer Waveforms at High Speed").
Here is a link: Remote Control Manual
ok, I will modify my program a bit then, thanks for the suggestion. I will let know if I can do it correctly as advised and if it finally works 🙂
Thanks for the replies, friends.
I try to modify my code with adding the trigger. However, it goes totally wrong, where the setting of the oscilloscope was reset and my program won't even running (I attach the new code with trigger: run07mod totally wrong.vi)
So, I will review my vision of my program:
where I can determine the name of the files, aquisition interval and number of aquisition.
(I have the .VI attach at my first comment)
I'd like to make a program where it:
1. Automatically make a number of data aquisition after waiting for a specified time
2. Simoultaneously take 2 traces from the oscilloscope after the sweep complete But sometimes, I need to specify the program to wait for several minutes/hours before make a new aquisition
3. Save the file in .trc format.
4. Saqve the file in .txt format
FOR THE run7(ok).vi (BEFORE I ADD TRIGGER), what happened is:
So far it can save the data in .txt format, but the .trc goes wrong even though I am sure the sweeping time is always less than the waiting time (aquisition time). So, there was no technical mistake like that.
The trace is suscessfully acquire, but, it was wrong!
What I get:
for trace A and
for trace B.
It should be like this:
for trace A and
for trace B.
Can anybody suggest me what's gone wrong here?