Read Waveform from Tektronix TDS 1002 Scope Using SCPI Commands
This example shows how to configure a Tektronix®
TDS 1002 scope and read a waveform from the scope using the scope specific SCPI commands.
Connect to the Scope
Connect a Tektronix TDS 1002 scope to your computer. On the scope, press the Utility button, then select Options followed by RS232 Setup. Set the following configuration:
EOL string to "CR/LF"
Baud to 9600
Flow control to None
Parity to None
Connect to the scope using the serialport
function. Specify the port that your scope is connected to on your computer. In this example, the port is "COM1"
. Set the BaudRate
to 9600 to match what you set on the scope.
s = serialport("COM1",9600)
s = Serialport with properties: Port: "COM1" BaudRate: 9600 NumBytesAvailable: 0 Show all properties, all methods
Configure the Terminator
Set the Terminator
property for the serialport
object using configureTerminator
. The Terminator
property matches the EOL string of the scope.
configureTerminator(s,"CR/LF")
terminator = s.Terminator
terminator = 1×1 string
"CR/LF"
Query the scope with the new Terminator
value using the SCPI Command "*IDN?"
in writeread
. If your scope is connected and Terminator
is configured properly, then this returns a string that uniquely identifies the scope.
scopeID = writeread(s,"*IDN?")
scopeID = 1×1 string
"TEKTRONIX,TDS 1002,0,CF:91.1CT FV:v2.12 TDS2CM:CMV:v1.04"
Configure the Channel
Configure Channel 1 of the scope using writeline
. Write the SCPI commands as ASCII terminated string data to the serialport
object. Then, confirm that Channel 1 is set as the source using writeread
.
writeline(s,"HEADER OFF") writeline(s,"DATA:SOURCE CH1") scopeSource = writeread(s,"DATA:SOURCE?")
scopeSource = 1×1 string
"CH1"
Set the waveform data encoding method to Most Significant Bit (MSB) transferred first, using writeline
. Confirm the encoding method using writeread
.
writeline(s,"DATA:ENCDG RIBINARY"); scopeEncodingMethod = writeread(s,"DATA:ENCDG?")
scopeEncodingMethod = 1×1 string
"RIB"
Get Waveform Information
Get the waveform transmission and formatting settings.
scopeWaveformPreamble = writeread(s,"WFMpre?")
scopeWaveformPreamble = 1×1 string
"1;8;BIN;RI;MSB;2500;"Ch1, DC coupling, 2.0E0 V/div, 5.0E-4 s/div, 2500 points, Sample mode";Y;2.0E-6;0;-2.5E-3;"s";8.0E-2;0.0E0;0.0E0;"Volts""
Get the number of points in the waveform.
scopeNumPoints = writeread(s,"WFMpre:NR_Pt?")
scopeNumPoints = 1×1 string
"2500"
Read and Plot the Waveform
Get the waveform data from the scope to MATLAB®
using the "CURVE?"
command and read the waveform back into MATLAB using readbinblock
.
writeline(s,"CURVE?") scopeWaveform = readbinblock(s,"int16");
Plot the waveform.
plot(scopeWaveform)
Clear the Connection
When you are finished working with the scope, clear the serialport
object.
clear s