exponenta event banner

Функции

Общие сведения о функциях

Функции позволяют вызывать прибор для выполнения некоторых задач или задач, которые могут возвращать результаты в виде текстовых или цифровых данных. Функция может включать одну команду для прибора или последовательность команд прибора. Функция может включать в себя программный код MATLAB ® для определения того, какие команды посылаются в прибор, или для выполнения анализа данных, возвращаемых из прибора. Например, функция может потребовать, чтобы измерительный прибор провел свою самокалибровку, возвращая в результате состояние. Другая функция может считывать масштабирование измерителя, запрашивать измерение, корректировать измеренные данные в соответствии с показаниями шкалы и затем возвращать результат.

Функциональные компоненты

Поведение функции определяется описанными ниже компонентами.

Код MATLAB

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

Если код определен как команда instrument, команда instrument может быть определена для ввода входного аргумента. Все вхождения <input argument name> в команде instrument заменяются входным значением, передаваемым в invoke функция. Например, если функция определена с помощью входного аргумента, start, и команда прибора определяется как Data:Start <start>и начальное значение, равное 10 передается в invoke функция, команда Data:Start 10 записывается на инструмент.

Если код определен как команда instrument, команда instrument также может быть определена для возврата выходного аргумента. Выходной аргумент может быть возвращен в виде числовых или текстовых данных.

Если код определен как программный код MATLAB, можно определить, какие команды посылаются в прибор, и результаты данных из прибора могут быть обработаны, скорректированы или проанализированы по мере необходимости.

Примечание

Код, используемый для программного кода MATLAB вашей функции, не может включать вызовы fclose или fopen функции объекта интерфейса, используемого для доступа к инструменту.

Текст справки

В тексте справки содержится информация о функции.

Примеры функций

Этот раздел содержит несколько примеров функций и шагов для проверки поведения этих функций.

Простая функция

В этом примере создается функция, которая заставляет осциллограф Tektronix ® TDS 210 регулировать вертикальные, горизонтальные и триггерные элементы управления для отображения стабильной формы сигнала. В редакторе драйверов приборов MATLAB

  1. Выберите Functions узел в дереве.

  2. Введите имя функции, autoset, в поле Add function text и нажмите кнопку Add. Имя новой функции, autoset, появляется в таблице Имя функции (Function Name).

  3. Разверните окно Functions для отображения всех определенных функций.

  4. Выберите autoset из функций, отображаемых в дереве.

  5. Выберите вкладку Код, чтобы определить команды, выполняемые для этой функции.

    • Выбрать Instrument Commands в поле Стиль функции.

    • На панели «Команды функции» введите AUTOSet EXECute в поле «Добавить команду» и нажмите кнопку «Добавить».

  6. Выберите вкладку Справка, чтобы определить текст справки для этой функции.

    • В текстовом поле Справка введите INVOKE(OBJ, 'autoset') causes the oscilloscope to adjust its vertical, horizontal, and trigger controls to display a stable waveform.

  7. Нажмите кнопку «Сохранить».

Проверка поведения функции.  Эта процедура проверяет поведение функции. В этом примере имя драйвера: tektronix_tds210_ex.mdd. Связь с осциллографом Tektronix TDS 210 по основному адресу 2 осуществляется через плату GPIB корпорации Measurement Computing™ с индексом платы 0. В командной строке MATLAB

  1. Создайте объект устройства, obj, с использованием icdevice функция.

    g = gpib('mcc',0,2);
    obj = icdevice('tektronix_tds210_ex.mdd',g);
  2. Просмотрите созданный метод.

    methods(obj)
    Methods for class icdevice:
    
    class          display        icdevice       instrnotify    methods        size           
    connect        end            inspect        instrument     ne             subsasgn       
    ctranspose     eq             instrcallback  invoke         obj2mfile      subsref        
    delete         fieldnames     instrfind      isa            openvar        vertcat        
    devicereset    get            instrfindall   isequal        propinfo                      
    disconnect     geterror       instrhelp      isvalid        selftest                      
    disp           horzcat        instrhwinfo    length         set                           
    
    Driver specific methods for class icdevice:
    
    autoset    
  3. Просмотрите справку, которую вы написали.

    instrhelp(obj,'autoset')
       INVOKE(OBJ, 'autoset') causes the oscilloscope to adjust its vertical,
       horizontal, and trigger controls to display a stable waveform.
  4. С помощью элементов управления на приборе установите объем так, чтобы его отображение было нестабильным. Например, установите уровень триггера вне диапазона формы сигнала так, чтобы форма сигнала прокручивалась по дисплею.

  5. Подключите к инструменту и выполните функцию. Наблюдайте за стабилизацией отображения формы сигнала.

    connect(obj)
    invoke(obj,'autoset')
  6. Отключитесь от прибора и удалите объект.

    disconnect(obj)
    delete([obj g])

Функция с командами КИП, использующими входные и выходные аргументы

В этом примере создается функция, которая конфигурирует, какая форма сигнала будет передана из осциллографа Tektronix TDS 210, и конфигурирует начальную и конечную точки данных формы сигнала. В редакторе драйверов приборов MATLAB

  1. Выберите Functions узел в дереве.

  2. Введите имя функции, configureWaveform, в поле Add function text и нажмите кнопку Add. Имя новой функции, configureWaveform, появляется на панели Имя функции (Function Name).

  3. Разверните окно Functions для отображения всех определенных функций.

  4. Выберите configureWaveform из функций, отображаемых в дереве.

  5. Выберите вкладку Код, чтобы определить команды, выполняемые для этой функции.

    • Выбрать Instrument Commands в поле Стиль функции.

    • Введите входные аргументы source, start, stop в поле Input arguments.

    • Войти Data:Source <source> в поле «Добавить команду» и нажмите кнопку «Добавить». В таблице выберите тип вывода None и тип формата N/A.

    • Аналогично, добавьте команду: Data:Source? с ASCII Вывод и text Формат.

    • Аналогично, добавьте команду: Data:Start <start> с NONE Вывод и N/A Формат.

    • Аналогично, добавьте команду: Data:Start? с ASCII Вывод и numeric Формат.

    • Аналогично, добавьте команду: Data:Stop <stop> с NONE Вывод и N/A Формат.

    • Аналогично, добавьте команду: Data:Stop? с ASCII Вывод и numeric Формат.

  6. Выберите вкладку Справка, чтобы определить текст справки для этой функции.

    • В текстовом поле Справка введите [SOURCE, START, STOP] = INVOKE(OBJ, 'configureWaveform', SOURCE, START, STOP) configures the waveform that will be transferred from the oscilloscope.

  7. Нажмите кнопку «Сохранить».

Проверка поведения функции.  Эта процедура проверяет поведение функции. В этом примере имя драйвера: tektronix_tds210_ex.mdd. Связь с осциллографом Tektronix TDS 210 по основному адресу 2 осуществляется через плату GPIB компании Measurement Computing Corporation с индексом платы 0. В командной строке MATLAB

  1. Создайте объект устройства, obj, с использованием icdevice функция.

    g = gpib('mcc',0,2);
    obj = icdevice('tektronix_tds210_ex.mdd',g);
  2. Просмотрите созданный метод.

    methods(obj)
    Methods for class icdevice:
    
    class              fieldnames         instrhwinfo        obj2mfile          
    connect            get                instrnotify        openvar            
    ctranspose         geterror           instrument         propinfo           
    delete             horzcat            invoke             selftest           
    devicereset        icdevice           isa                set                
    disconnect         inspect            isequal            size               
    disp               instrcallback      isvalid            subsasgn           
    display            instrfind          length             subsref            
    end                instrfindall       methods            vertcat            
    eq                 instrhelp          ne                                    
    
    Driver specific methods for class icdevice:
    
    autoset            configureWaveform        
  3. Просмотрите справку, которую вы написали.

    instrhelp(obj,'configureWaveform')
       [SOURCE, START, STOP] = INVOKE(OBJ, 'configureWaveform', SOURCE, START,
       STOP) configures the waveform that will be transferred from the oscilloscope.
  4. Подключите к инструменту и выполните функцию.

    connect(obj)
    [source,start,stop] = invoke(obj,'configureWaveform','CH1',1,500)
    source =
    
        'CH1'
    
    
    start =
    
         1
    
    
    stop =
    
            500
    
    [source,start,stop] = invoke(obj,'configureWaveform','CH2',0,3500)
    source =
    
        'CH2'
    
    
    start =
    
         1
    
    
    stop =
    
            2500
    
  5. Отключитесь от прибора и удалите объект.

    disconnect(obj)
    delete([obj g])

Функция стиля кода MATLAB

В этом примере создается функция, которая будет передавать и масштабировать сигнал от осциллографа Tektronix TDS 210. В редакторе драйверов приборов MATLAB

  1. Выберите Functions узел в дереве.

  2. Введите имя функции, getWaveform, в поле Add function text и нажмите кнопку Add. Имя новой функции, getWaveform, появляется в таблице Имя функции (Function Name).

  3. Разверните окно Functions для отображения всех определенных функций.

  4. Выберите getWaveform из функций, отображаемых в дереве.

  5. Выберите вкладку Код, чтобы определить команды, выполняемые для этой функции.

    • Выбрать M-Code в поле Стиль функции.

    • Обновите строку функции в текстовом поле Определить функцию MATLAB, чтобы включить выходной аргумент.

      function yout = getWaveform(obj)
    • Добавьте следующий программный код MATLAB в текстовое поле Define MATLAB. (Инструмент может потребовать небольшой паузы перед любыми заявлениями, которые считывают форму сигнала, чтобы позволить ему завершить сбор данных.)

      % Get the interface object.
      g = obj.Interface;
      
      % Configure the format of the data transferred.
      fprintf(g, 'Data:Encdg SRIBinary');
      fprintf(g, 'Data:Width 1');
      
      % Determine which waveform is being transferred.
      source = query(g, 'Data:Source?');
      
      % Read the waveform.
      fprintf(g, 'Curve?');
      ydata = binblockread(g, 'int8');
      
      % Read the trailing terminating character.
      fscanf(g);
      
      % Scale the data.
      fprintf(g, ['WFMPre:' source ':Yoff?']);
      yoffset = fscanf(g, '%g');
      
      fprintf(g, ['WFMPre:' source ':YMult?']);
      ymult = fscanf(g, '%g');
      
      yout = (ydata*ymult) + yoffset;

  6. Щелкните вкладку Справка (Help), чтобы определить текст справки для этой функции.

    • В текстовом поле Справка введите DATA = INVOKE(OBJ, 'getWaveform') transfers and scales the waveform from the oscilloscope.

  7. Нажмите кнопку «Сохранить».

Проверка поведения функции.  Эта процедура проверяет поведение функции. В этом примере имя драйвера: tektronix_tds210_ex.mdd. Связь с осциллографом Tektronix TDS 210 по основному адресу 2 осуществляется через плату GPIB компании Measurement Computing Corporation с индексом платы 0. В командной строке MATLAB

  1. Создайте объект устройства, obj, с использованием icdevice функция.

    g = gpib('mcc',0,2);
    obj = icdevice('tektronix_tds210_ex.mdd',g);
  2. Просмотрите созданный метод.

    methods(obj)
    Methods for class icdevice:
    
    class              fieldnames         instrhwinfo        obj2mfile          
    connect            get                instrnotify        openvar            
    ctranspose         geterror           instrument         propinfo           
    delete             horzcat            invoke             selftest           
    devicereset        icdevice           isa                set                
    disconnect         inspect            isequal            size               
    disp               instrcallback      isvalid            subsasgn           
    display            instrfind          length             subsref            
    end                instrfindall       methods            vertcat            
    eq                 instrhelp          ne                                    
    
    Driver specific methods for class icdevice:
    
    autoset            configureWaveform  getWaveform        
  3. Просмотрите справку, которую вы написали.

    instrhelp(obj,'getWaveform')
       DATA = INVOKE(OBJ, 'getWaveform') transfers and scales the waveform from
       the oscilloscope.
  4. Подключите к инструменту и выполните функцию.

    connect(obj)

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

    invoke(obj,'configureWaveform','CH1',1,500);

    Передача формы сигнала.

    data = invoke(obj,'getWaveform');

    Проанализируйте и просмотрите форму сигнала.

    size(data)
    ans =
    
       500     1
    plot(data)
  5. Отключитесь от прибора и удалите объект.

    disconnect(obj)
    delete([obj g])