Instrument Control Toolbox | ![]() ![]() |
Example: Writing and Reading Text Data
This example illustrates how to communicate with a serial port instrument by writing and reading text data.
The instrument is a Tektronix TDS 210 two-channel oscilloscope connected to the serial port COM1. Therefore, many of the commands given below are specific to this instrument. A sine wave is input into channel 2 of the oscilloscope, and your job is to measure the peak-to-peak voltage of the input signal.
1. Create a serial port object - Create the serial port object s
associated with serial port COM1.
s = serial('COM1');
2. Connect to the instrument - Connect s
to the oscilloscope. Since the default value for the ReadAsyncMode
property is continuous
, data is asynchronously returned to the input buffer as soon as it is available from the instrument.
fopen(s)
3. Write and read data - Write the *IDN?
command to the instrument using fprintf
, and then read back the result of the command using fscanf
.
fprintf(s,'*IDN?') s.BytesAvailable ans = 56 idn = fscanf(s) idn = TEKTRONIX,TDS 210,0,CF:91.1CT FV:v1.16 TDS2CM:CMV:v1.04
You need to determine the measurement source. Possible measurement sources include channel 1 and channel 2 of the oscilloscope.
fprintf(s,'MEASUREMENT:IMMED:SOURCE?') source = fscanf(s) source = CH1
The scope is configured to return a measurement from channel 1. Since the input signal is connected to channel 2, you must configure the instrument to return a measurement from this channel.
fprintf(s,'MEASUREMENT:IMMED:SOURCE CH2') fprintf(s,'MEASUREMENT:IMMED:SOURCE?') source = fscanf(s) source = CH2
You can now configure the scope to return the peak-to-peak voltage, and then request the value of this measurement.
fprintf(s,'MEASUREMENT:MEAS1:TYPE PK2PK') fprintf(s,'MEASUREMENT:MEAS1:VALUE?')
Transfer data from the input buffer to MATLAB using fscanf
.
ptop = fscanf(s) ptop = 2.0199999809E0
4. Disconnect and clean up - When you no longer need s
, you should disconnect it from the instrument, and remove it from memory and from the MATLAB workspace.
fclose(s) delete(s) clear s
![]() | Rules for Completing Write and Read Operations | Using Events and Actions | ![]() |