Функции

Понимание функций

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

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

Поведение функции задано компонентами, описанными ниже.

КОД MATLAB

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

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

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

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

Примечание

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

Помогите тексту

Текст справки предоставляет информацию о функции.

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

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

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

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

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

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

  3. Расширьте Functions узел, чтобы отобразить все заданные функции.

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

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

    • Выберите Instrument Commands в Функциональном поле стиля.

    • В Функциональной панели команд введите AUTOSet EXECute в Добавить поле команды и нажимают кнопку Add.

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

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

  7. Нажмите кнопку Save.

Проверка Поведения Функции.  Эта процедура проверяет поведение функции. В этом примере именем драйвера является tektronix_tds210_ex.mdd. Связь с осциллографом Tektronix TDS 210 в первичном адресе 2 сделана через Измерение плата GPIB Корпорации 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. Имя новой функции, configureWaveform, появляется в панели Имени функции.

  3. Расширьте Functions узел, чтобы отобразить все заданные функции.

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

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

    • Выберите Instrument Commands в Функциональном поле стиля.

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

    • Введите Data:Source <source> в Добавить поле команды и нажимают кнопку Add. В таблице выберите Выходной тип 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. Выберите вкладку Help, чтобы задать текст справки для этой функции.

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

  7. Нажмите кнопку Save.

Проверка Поведения Функции.  Эта процедура проверяет поведение функции. В этом примере именем драйвера является 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. Имя новой функции, getWaveform, появляется в таблице Function Name.

  3. Расширьте Functions узел, чтобы отобразить все заданные функции.

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

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

    • Выберите M-Code в Функциональном поле стиля.

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

      function yout = getWaveform(obj)
    • Добавьте следующий программный код MATLAB в Задавать текстовое поле функции 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, чтобы задать текст справки для этой функции.

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

  7. Нажмите кнопку Save.

Проверка Поведения Функции.  Эта процедура проверяет поведение функции. В этом примере именем драйвера является 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])