Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

Simultaneous sampling using Tektronix TDS 2014

Please Help.
 
There does not seem to be a way to sample simultaneously, multiple channels using the Labview drivers for the TDS 2014.  Sampling a single channel works well enough, but there doesn't seem to be a VI present that can read more than a single channel simultaneously.  The oscilloscope supports multiple sampling.  It's just a matter of getting it to work in Labview.
 
Any ideas would be greatly appreciated.
 
Thanks,
Jeremy
0 Kudos
Message 1 of 16
(8,890 Views)
Often, you have to transfer one channel at a time. That may be a limitation of the scope or if not, the function may in fact be missing from the driver. If simultaneous transfer is a possiblity, then it should be explained in the instrument's programming manual and you could add this capablilty to the driver. What's usually important, though, is that the acquisition of both channels start at the same time. This you can usually do with some combination of trigger settings, run/stop acquisition commands, and software force or external triggers. I don't have this particular model of scope and can't provide the exact details. Hopefully, someone else that has actually used this model can come in and provide them. In the meantime, all I can suggest is that you experiment with the functions and see if you can start and stop a dual channel acquisition on demand.
Message 2 of 16
(8,881 Views)
I'm inferring from your original message that you're using the instrument driver for the tek 2000 series. If so, in addition to the Read Waveform VI, there is also an InitiateAcquisition vi and a Fetch Waveform vi. Fetch only returns previously acquired data - it does not re-arm the device. When you need to acquire multiple channels from the same acquisition, you can do one of two things:
 
1) - Call Initiate Acquisition, then use the Query Acquisition Status VI to poll until the acquisition is complete. Call Fetch Waveform for each channel acquired.
2) - Call Read Waveform to perform the acquisition and retrieve the first channel of data. Call Fetch Waveform for each subsequent channel acquired.
 
Hope that helps.
Message 3 of 16
(8,874 Views)
The TDS2000 alway acquires all of its channels simultaneously. The fetch as mentioned in the previous reply will allow you to get the data from each channel without reacquiring.

Some Tektronix scopes allow a concatenated response to the CURVE? command. The vi would need to set up for example, DATA:SOURCE CH1, CH2, CHx... and then the CURVE? would return each channels binary block data structure as one concatenated string. The # sign binary block header would serve as the separator. Unfortunately however, the TDS2000 does not support this and only allows a single channel as a CURVE? data source.
Message 4 of 16
(8,853 Views)
Thanks for all the help guys.
 
I have been working on this since I posted the first message, and at this point it's very frustrating.   Any information or ideas would be appreciated.
 
The scope aquires both waveforms on the screen once I initiate an acquisition.  Following the initiate acquisition command, the scope captures both waves on the screen.  I poll the scope to make sure that the acquisition is complete using the acquistion status VI, which will return a 1 if the acquisition is complete.  If so, I request the length of the record and call the fetch command.  Both channel names are in an array of constant strings to supply the fetch command the names of the channels.  The loop will run one time perfectly.  However, if I attempt to read the second channel, everything runs properly until Labview reaches the fetch command a second time.   The part that runs fine includes polling the status of the O-scope a second time and requesting the record size a second time.  It will reissue a 1 after a few polls indicating that the fetch command can be issued.  Once the loop hits the fetch command for the second time it enters the VI and runs continously and never returns.  No errors are returned as a result including inside the VI.
 
I believe there maybe a problem with the way in which the x-increment and intial x value is used or choosen by the fetch VI.  The waveforms capture correctly, and the number of points per record is passed directly to the fetch function by the function which tells the number of points per record.  This is how the example VI was written.
 
I am using a serial RS232 interface.  The hardware buffers have been set to their lowest level inside the Win XP device manager.
 
Again, any ideas would be appreciated.  I've looked at this thing for 13 hours today, and I'm very ready to go home.
 
Thanks,
Jeremy
 
 
0 Kudos
Message 5 of 16
(8,832 Views)
After the failure you might try querying the events status register, *ESR? and if a non-zero value is returned then follow up with a query of the error log, ALLE? to see what errors are listed. This may help you determine if somehow the synchronization got messed up which is probably the most common problem.
You might also verify that your sync routine is working by not providing a valid trigger. The sync routine should wait forever or until some timeout you have specified.
0 Kudos
Message 6 of 16
(8,821 Views)
I am encountering a similar problem in using the TDS 1002b via USB.  All the VI's I've seen for acquiring multiple waveforms do so sequentially, but the waveforms appear to come from separate trigger events.  I spoke with tektronix about the matter, and supposedly when the oscilloscope is transmitting data, it is not acquiring.  So, it appears that the problem occurs between the acquisition of one waveform and the next.  Is there a VI or command I could send to the scope to cause it to not acquire data until two waveforms have been transmitted? 
 
The basis for my diagnosis that they are separate trigger events is that I am feeding a box-wave pulse into channel 1 and 2 while triggering off of an external box-wave pulse.  The period of the signal for channels 1 and 2 is approximately 20 microseconds, while the external trigger is at 90Hz.  The measured waveforms for the channels do not coincide.  Could I be mistaken?
 
Was the original problem of this thread rectified?
0 Kudos
Message 7 of 16
(8,173 Views)
Set triggering to trigger only one acquisition instead of continuous.
greetings from the Netherlands
0 Kudos
Message 8 of 16
(8,125 Views)
Thank you!  That solved my problem splendidly.
0 Kudos
Message 9 of 16
(8,068 Views)

Hi all, I'm trying to record a waveform from an tensile frame with the TDS 2014 B and am having similar problems. Hopefully no one minds me bumping this thread. I'm essentially trying to merge the "multiple waveform acquisition" and "continuous waveform acquisition" drivers (found here - http://sine.ni.com/apps/utf8/niid_web_display.download_page?p_id_guid=047216EC20B66FABE0440003BA7CCD... I can get 2 waves recorded (command and feedback), but there's a phase lag between the two which I want to eliminate. Can someone explain where my code goes wrong? Thanks!

 

 

0 Kudos
Message 10 of 16
(7,255 Views)