Сгенерируйте развернутую синусоиду Используя VISA и получите форму волны Используя осциллограф Быстрого Управления

В этом примере показано, как использовать функциональный преобразователь, чтобы сгенерировать развернутую форму волны синусоиды и также как получить его с помощью осциллографа.

Для полного списка поддерживаемого оборудования посетите страницу продукта Instrument Control Toolbox.

Требования

Этот пример был протестирован с помощью функционального преобразователя Keysight Technologies® 33522B и осциллографа Tektronix® TDS 1002. Адреса GPIB функционального преобразователя и осциллографа являются GPIB0:: 5:: INSTR и GPIB0:: 11:: INSTR, соответственно. Функциональный преобразователь сконфигурирован, чтобы сгенерировать 2 В p-p развернутая синусоида (20 - 200 Гц) со смещением 1 В каждые 100 мс на канале 1. Осциллограф сконфигурирован, чтобы получить форму волны на канале 1.

Сконфигурируйте осциллограф

Сконфигурируйте осциллограф с помощью Быстрого Управления (осциллограф).

scopeResource = "GPIB0::11::INSTR";
ch = "CH1";

Создайте осциллограф, возражают и открывают связь с инструментом.

scope = oscilloscope;
scope.Resource = scopeResource;
connect(scope)

autoSetup функция автоматически настраивает каналы, вертикальные, горизонтальные, и инициировала средства управления на основе связанных сигналов.

autoSetup(scope)

Включите и сконфигурируйте канал 1.

enableChannel(scope,ch);
configureChannel(scope,ch,"VerticalCoupling","DC")

Сконфигурируйте канал, чтобы отобразиться в 1 VOLTS/DIV.

configureChannel(scope,ch,"VerticalRange",1)

Установите тестовое затухание на 1x (опции включают 1, 10, 100).

configureChannel(scope,ch,"ProbeAttenuation",1)

The AcquisitionTime свойство представляет длительность формы волны в секундах. Установка AcquisitionTime изменит SEC/DIV управляйте соответственно. AcquisitionTime обычно соответствует 10 делениям (или один экран данных).

scope.AcquisitionTime = 0.25;

scope.TriggerLevel = 2.56;
scope.TriggerSource = ch;
scope.TriggerSlope = "rising";
scope.TriggerMode = "normal";

disp(scope)
oscilloscope: TEKTRONIX,TDS 1002

   Instrument Settings:
      AcquisitionStartDelay: 'Not supported'
            AcquisitionTime: 0.25 s
               ChannelNames: 'CH1', 'CH2', 'MATH', 'REFA', 'REFB'
            ChannelsEnabled: 'CH1'
            SingleSweepMode: 'off'
                    Timeout: 10 s
             WaveformLength: 2500

   Trigger Settings:
               TriggerLevel: 2.56
              TriggerSource: 'CH1'
               TriggerSlope: 'rising'
                TriggerMode: 'normal'

   Communication Properties:
                     Status: 'open'
                   Resource: 'GPIB0::11::INSTR'

lists of methods

Сконфигурируйте функциональный преобразователь

Сконфигурируйте функциональный преобразователь, чтобы сгенерировать форму волны развертки с помощью объекта VISA-GPIB.

fgenResource = "GPIB0::5::INSTR";
vfgen = visadev(fgenResource)
vfgen = 
  GPIB with properties:

         ResourceName: "GPIB0::5::INSTR"
                Alias: "FGEN_2CH"
               Vendor: "Agilent Technologies"
                Model: "33522B"
           BoardIndex: 0
       PrimaryAddress: 5
     SecondaryAddress: 65535
    NumBytesAvailable: 0

  Show all properties, functions

Сконфигурируйте амплитуду развертки и возместите.

writeline(vfgen,"SOUR1:VOLT +1.0")
writeline(vfgen,"SOUR1:VOLT:OFFS +1.0")

Включите режим развертки.

writeline(vfgen,"SOUR1:FREQ:MODE SWE");
writeline(vfgen,"SOUR1:SWE:STAT ON");
writeline(vfgen,"SOUR1:SWE:SPAC LIN");

Сконфигурируйте частоты остановки и запуск.

fstart = 20;
fstop = 200;

writeline(vfgen,compose("SOUR1:FREQ:STAR %d",fstart));
writeline(vfgen,compose("SOUR1:FREQ:STOP %d",fstop));

Сконфигурируйте время, потраченное, чтобы развернуться от частоты запуска до частоты остановки как sweepTime.

sweepTime = 0.1;
holdTime = 0;
returnTime = 0;

writeline(vfgen,compose("SOUR1:SWE:TIME %0.1f",sweepTime));

Сконфигурируйте время, чтобы остаться на частоте остановки как holdTime.

writeline(vfgen,compose("SOUR1:SWE:HTIME %0.1f",holdTime));

Сконфигурируйте время, требуемое возвратиться к частоте запуска как returnTime.

writeline(vfgen,compose("SOUR1:SWE:RTIME %0.1f",returnTime));

Сконфигурируйте триггер.

writeline(vfgen,"TRIG1:SLOP POS"); 
writeline(vfgen,"TRIG1:SOUR IMM");

Получите форму волны

Получите данные о форме волны с помощью осциллографа. AcquisitionTime свойство представляет длительность формы волны в секундах. WaveformLength свойство представляет число точек в данных о форме волны.

y = readWaveform(scope);
t = linspace(0,scope.AcquisitionTime,scope.WaveformLength);

Постройте форму волны

plot(t,y)
ylim([0.5,3.5]);
title("Acquired waveform (sweep)")
xlabel("Time (s)");
ylabel("Voltage (V)");

Очистка

Очистите рабочую область, когда вы будете закончены.

disconnect(scope)
clear scope vfgen