Main Content

Read Waveform Data from Keysight DSO-X 1204A Oscilloscope Using IVI-C Driver

This example shows how to initialize the AgInfiniiVision IVI-C driver, read a few properties from the driver, acquire waveform data using Keysight® Technologies DSO-X 1204A oscilloscope, and output the result in MATLAB®.

Requirements

To run this example, you must have the following installed on your computer:

  • Keysight IO libraries version 2021 or newer

  • Keysight InfiniiVision 1000, 1200, 2000, 3000, 4000, 6000, C7300, M924x and P924x X-Series Oscilloscope IVI driver version 2.8.2.0

For a walkthrough of this example, play the following video.

Video Player is loading.
Current Time 0:00
Duration 0:00
Loaded: 0%
Stream Type LIVE
Remaining Time 0:00
 
1x
  • Chapters
  • descriptions off, selected
  • captions off, selected

      View Installed IVI-C Drivers and Connected Instruments

      View a list of the IVI-C drivers and associated MATLAB drivers that are installed on your computer using ividriverlist.

      list = ividriverlist
      list=17×4 table
                   VendorDriver          MATLABDriver            IVIClass                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          SupportedModels                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
                __________________    __________________    __________________    __________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
      
          1     "Ag3352x"             "Ag3352x"             "IVIFgen"             {["33509B"    "33510B"    "33511B"    "33512B"    "33519B"    "33520B"    "33521A"    "33521B"    "33522A"    "33522B"    "33609A"    "33610A"    "33611A"    "33612A"    "33619A"    "33620A"    "33621A"    "33622A"    "EDU33211A"    "EDU33212A"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ]}
          2     "AgInfiniiVision"     "AgInfiniiVision"     "IVIScope"            {["C7302"    "C7302C"    "C7304"    "C7304C"    "C7312"    "C7312C"    "C7314"    "C7314C"    "C7322"    "C7322C"    "C7324"    "C7324C"    "C7332"    "C7332C"    "C7334"    "C7334C"    "C7352"    "C7352C"    "C7354"    "C7354C"    "DSO-X 1102A"    "DSO-X 1102G"    "DSO-X 2002A"    "DSO-X 2004A"    "DSO-X 2012A"    "DSO-X 2014A"    "DSO-X 2022A"    "DSO-X 2024A"    "DSO-X 3012A"    "DSO-X 3012T"    "DSO-X 3014A"    "DSO-X 3014T"    "DSO-X 3022T"    "DSO-X 3024A"    "DSO-X 3024T"    "DSO-X 3032A"    "DSO-X 3032T"    "DSO-X 3034A"    "DSO-X 3034T"    "DSO-X 3052A"    "DSO-X 3052T"    "DSO-X 3054A"    "DSO-X 3054T"    "DSO-X 3102A"    "DSO-X 3102T"    "DSO-X 3104A"    "DSO-X 3104T"    "DSO-X 4022A"    "DSO-X 4024A"    "DSO-X 4032A"    "DSO-X 4034A"    "DSO-X 4052A"    "DSO-X 4054A"    "DSO-X 4104A"    "DSO-X 4154A"    "DSO-X 6002A"    "DSO-X 6004A"    "DSOX1202A"    "DSOX1202G"    "DSOX1204A"    "DSOX1204G"    "EDU-X 1002A"    "EDU-X 1002G"    "EDUX1052A"    "EDUX1052G"    "M9241A"    "M9242A"    "M9243A"    "MSO-X 2002A"    "MSO-X 2004A"    "MSO-X 2012A"    "MSO-X 2014A"    "MSO-X 2022A"    "MSO-X 2024A"    "MSO-X 3012A"    "MSO-X 3012T"    "MSO-X 3014A"    "MSO-X 3014T"    "MSO-X 3022T"    "MSO-X 3024A"    "MSO-X 3024T"    "MSO-X 3032A"    "MSO-X 3032T"    "MSO-X 3034A"    "MSO-X 3034T"    "MSO-X 3052A"    "MSO-X 3052T"    "MSO-X 3054A"    "MSO-X 3054T"    "MSO-X 3102A"    "MSO-X 3102T"    "MSO-X 3104A"    "MSO-X 3104T"    "MSO-X 4022A"    "MSO-X 4024A"    "MSO-X 4032A"    "MSO-X 4034A"    "MSO-X 4052A"    "MSO-X 4054A"    "MSO-X 4104A"    "MSO-X 4154A"    "MSO-X 6002A"    "MSO-X 6004A"    "P9241A"    "P9242A"    "P9243A"]}
          3     "AgRfSigGen"          "AgRfSigGen"          "IVIRfSigGen"         {["E4428C"    "E4438C"    "E8241A"    "E8244A"    "E8247C"    "E8251A"    "E8254A"    "E8257C"    "E8257D"    "E8257N"    "E8267C"    "E8267D"    "E8663B"    "E8663D"    "N5166B"    "N5171B"    "N5172B"    "N5173B"    "N5181A"    "N5181B"    "N5182A"    "N5182B"    "N5182N"    "N5183A"    "N5183B"    "N5183N"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ]}
          4     "IviACPwr"            "IviACPwr"            "IVIACPwr"            {[""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ]}
          5     "IviCounter"          "IviCounter"          "IVICounter"          {[""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ]}
          6     "IviDCPwr"            "IviDCPwr"            "IVIDCPwr"            {[""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ]}
          7     "IviDigitizer"        "IviDigitizer"        "IVIDigitizer"        {[""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ]}
          8     "IviDmm"              "IviDmm"              "IVIDmm"              {[""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ]}
          9     "IviDownconverter"    "IviDownconverter"    "IVIDownconverter"    {[""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ]}
          10    "IviFgen"             "IviFgen"             "IVIFgen"             {[""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ]}
          11    "IviPwrMeter"         "IviPwrMeter"         "IVIPwrMeter"         {[""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ]}
          12    "IviRfSigGen"         "IviRfSigGen"         "IVIRfSigGen"         {[""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ]}
          13    "IviScope"            "IviScope"            "IVIScope"            {[""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ]}
          14    "IviSpecAn"           "IviSpecAn"           "IVISpecAn"           {[""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ]}
          15    "IviSwtch"            "IviSwtch"            "IVISwtch"            {[""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ]}
          16    "IviUpconverter"      "IviUpconverter"      "IVIUpconverter"      {[""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ]}
            ⋮
      
      

      List the IVI-C instruments that are connected to your computer using ividevlist with a timeout value of 40 seconds. Specifying a value for the timeout is optional. You can try a larger timeout value if your instrument does not appear within the default timeout period of 30 seconds.

      devlist = ividevlist("Timeout",40)
      devlist=1×5 table
                 MATLABDriver                       ResourceName                      VendorDriver          Model       SerialNumber
               _________________    ____________________________________________    _________________    ___________    ____________
      
          1    "AgInfiniiVision"    "USB0::0x2A8D::0x0386::CN59216227::0::INSTR"    "AgInfiniiVision"    "DSOX1204A"    "CN59216227"
      
      

      In this example, you use the AgInfiniiVision MATLAB driver.

      Connect to Instrument

      Connect to the DSO-X 1204A oscilloscope using ividev with the instrument's MATLAB driver name and resource name.

      dev = ividev("AgInfiniiVision","USB0::0x2A8D::0x0386::CN59216227::0::INSTR")
      dev = 
        AgInfiniiVision with properties:
      
                          Model: "DSOX1204A" 
                   Manufacturer: "KEYSIGHT TECHNOLOGIES" 
                   SerialNumber: "CN59216227" 
                   ResourceName: "USB0::0x2A8D::0x0386::CN59216227::0::INSTR" 
                   VendorDriver: "AgInfiniiVision" 
                       Simulate: 0 
      
                     ChannelIDs: ["Channel1", "Channel2", "Channel3", "Channel4"] 
              DigitalChannelIDs: [] 
                MathFunctionIDs: ["Math1", "Math2"] 
                 MeasurementIDs: ["Channel1", "Channel2", "Channel3", "Channel4", "FUNC", ... ] 
                   SerialBusIDs: [] 
                     WaveGenIDs: "WaveGen1" 
      
          InherentIVIAttributes: [1x1 InherentIVIAttributes] 
                    Acquisition: [1x1 Acquisition] 
                        Channel: [1x4 Channel] 
             InstrumentSpecific: [1x1 InstrumentSpecific] 
                        Trigger: [1x1 Trigger] 
            WaveformMeasurement: [1x1 WaveformMeasurement] 
      
      Show all functions
      
      

      Get General Instrument Properties

      Query information about the driver and its attributes. You can explore properties and sub-properties of the object by clicking on the property links from the object display output.

      dev.InherentIVIAttributes
      ans = 
        InherentIVIAttributes with properties:
      
          AdvancedSessionInformation: [1x1 AdvancedSessionInformation] 
                  DriverCapabilities: [1x1 DriverCapabilities] 
                DriverIdentification: [1x1 DriverIdentification] 
            InstrumentIdentification: [1x1 InstrumentIdentification] 
                         UserOptions: [1x1 UserOptions] 
      
      
      dev.InherentIVIAttributes.DriverIdentification
      ans = 
        DriverIdentification with properties:
      
          SpecificDriverClassSpecMajorVersion: 4 
          SpecificDriverClassSpecMinorVersion: 1 
                    SpecificDriverDescription: "IVI driver for the Keysight 1000X, 1200X, 2000X, 3000X, 4000X, 6000X, C7300, M924x and P924x Oscilloscope families. [Compiled for 64-bit.]" 
                         SpecificDriverPrefix: "AgInfiniiVision" 
                       SpecificDriverRevision: "2.8.2.0" 
                         SpecificDriverVendor: "Keysight Technologies" 
      
      

      Read Waveform from Oscilloscope

      Reset the instrument to a known state and automatically configure the measurement parameters.

      reset(dev)
      autoSetup(dev)

      Get the actual record length, which is the number of points that the oscilloscope acquires.

      recordLength = actualRecordLength(dev)
      recordLength = 62500
      

      Enable channel 1 on the oscilloscope.

      dev.Channel("Channel1").ChannelEnabled = true;

      Explore the properties of channel 1.

      dev.Channel("Channel1")
      ans = 
        Channel with properties:
      
                       RepCapID: "Channel1" 
                 ChannelEnabled: 1 
                 InputImpedance: 1e+06 (Ohms)
          MaximumInputFrequency: 7e+07 (Hz)
               ProbeAttenuation: 10 
                ProbeSenseValue: 10 
               VerticalCoupling: 1 
                 VerticalOffset: 12.6 (Volts)
                  VerticalRange: 40 (Volts)
      
      

      Set the channel probe attenuation to 1.

      dev.Channel("Channel1").ProbeAttenuation = 1;

      Specify the sweep time duration in milliseconds.

      maxTimeMilliseconds = 1e3;

      Read a waveform from the oscilloscope.

      [waveformArray,actualPoints] = readWaveform(dev,"Channel1",recordLength,maxTimeMilliseconds);

      Visualize Data and Display Any Errors

      Get the number elements in the waveform array and verify that they match the actual number of points returned by the readWaveform function.

      n = numel(waveformArray);

      Calculate the time in between samples and create a time vector.

      dt = dev.Acquisition.HorizontalTimePerRecord/dev.Acquisition.HorizontalRecordLength;
      t = (0:n-1) * dt;

      Display the waveform.

      plot(t,waveformArray); 
      grid on;
      xlabel('Time (s)');
      ylabel('Volts (V)');

      If there are any errors, query the driver to retrieve and display them.

      errorNum = 1;
      while (errorNum ~= 0)
          [errorNum,errorMsg] = error_query(dev);
          fprintf('ErrorQuery: %d, %s\n',errorNum,errorMsg);
      end
      ErrorQuery: 0, No error
      

      Clean Up

      Disconnect and clear the ividev object from the workspace.

      clear dev

      See Also

      | |

      Related Topics

      Go to top of page