Reading Waveforms from an Oscilloscope Using a Quick-Control Oscilloscope Object
This example shows how to use the Quick-Control Oscilloscope to acquire waveforms from an oscilloscope.
Instrument Control Toolbox™ software supports communication with instruments through Quick-Control Instrument objects. In this example you will learn to acquire a waveform from a Keysight Technologies® (formerly Agilent Technologies®) MSO6014 mixed signal oscilloscope using a Quick-Control oscilloscope object.
For a complete list of supported hardware, visit the Instrument Control Toolbox product page.
Introduction
This example is tested on a 32-bit Microsoft® Windows® system, National Instruments® Compliance Package 4.1 . Keysight I/O Suite and 546XX IVI-C driver version 1.3.20.0, which can be downloaded from Keysight’s website: http://www.keysight.com. Ensure that the VISA utility has been set up to recognize the instrument resource before you execute this example.
Creating an Oscilloscope
Before acquiring any data, you must create an oscilloscope instance.
myScope = oscilloscope()
myScope = oscilloscope: No connection has been setup with instrument, type help oscilloscope for more information
Discovering Available Resources
Find out available resources. A resource is a string identifier to the instrument. You have to set it before connecting to the instrument.
availableResources = getResources(myScope)
availableResources = TCPIP0::a-m6104a-004598.dhcp.bat365::inst0::INSTR
Connecting to the Oscilloscope Object
If multiple resources are available, use a VISA utility to verify the correct resource and set it.
myScope.Resource = 'TCPIP0::a-m6104a-004598::inst0::INSTR'; % Connect to the instrument. connect(myScope);
Examine the Current Oscilloscope Setting
get(myScope);
AcquisitionTime: 0.0100 AcquisitionStartDelay: -0.0050 TriggerLevel: 0.1000 TriggerSlope: 'rising' TriggerSource: 'Channel1' WaveformLength: 2000 TriggerMode: 'normal' SingleSweepMode: 'on' ChannelNames: {'Channel1' 'Channel2' 'Channel3' 'Channel4'} ChannelsEnabled: {'Channel1'} Resource: 'TCPIP0::a-m6104a-004598::inst0::INSTR' Driver: 'Ag546XX' DriverDetectionMode: 'auto' Timeout: 10 Status: 'open'
Configuring the Oscilloscope
Configure the oscilloscope's settings. The configuration we will use in this example is: acquisition time of 0.01 second with 2000 data points, trigger level of 0.1v and normal trigger mode, channel one enabled and vertical settings as shown below.
% Automatically configuring the instrument based on the input signal. autoSetup(myScope); myScope.AcquisitionTime = 0.01; myScope.WaveformLength = 2000; myScope.TriggerMode = 'normal'; myScope.TriggerLevel = 0.1; enableChannel(myScope, 'Channel1'); setVerticalCoupling (myScope, 'Channel1', 'AC'); setVerticalRange (myScope, 'Channel1', 5.0);
Getting a Waveform from Channel One
This function initiates an acquisition on the enabled channel. It then waits for the acquisition to complete and returns the waveform for the specified channel.
waveformArray = getWaveform(myScope, 'acquisition', true); % Plot the waveform. plot(waveformArray); xlabel('Samples'); ylabel('Voltage');
Cleaning Up
Once you have finished configuring the instrument and retrieved data from it, you need to close the connection and remove it from the workspace.
disconnect(myScope);
clear myScope;