Функции позволяют вызывать прибор для выполнения некоторых задач или задач, которые могут возвращать результаты в виде текстовых или цифровых данных. Функция может включать одну команду для прибора или последовательность команд прибора. Функция может включать в себя программный код MATLAB ® для определения того, какие команды посылаются в прибор, или для выполнения анализа данных, возвращаемых из прибора. Например, функция может потребовать, чтобы измерительный прибор провел свою самокалибровку, возвращая в результате состояние. Другая функция может считывать масштабирование измерителя, запрашивать измерение, корректировать измеренные данные в соответствии с показаниями шкалы и затем возвращать результат.
Поведение функции определяется описанными ниже компонентами.
Код MATLAB определяет код, который выполняется при вычислении функции с помощью invoke функция. Код может быть определен как команда прибора, которая будет записана на прибор, или как программный код MATLAB.
Если код определен как команда instrument, команда instrument может быть определена для ввода входного аргумента. Все вхождения <input argument name> в команде instrument заменяются входным значением, передаваемым в invoke функция. Например, если функция определена с помощью входного аргумента, start, и команда прибора определяется как Data:Start <start>и начальное значение, равное 10 передается в invoke функция, команда Data:Start 10 записывается на инструмент.
Если код определен как команда instrument, команда instrument также может быть определена для возврата выходного аргумента. Выходной аргумент может быть возвращен в виде числовых или текстовых данных.
Если код определен как программный код MATLAB, можно определить, какие команды посылаются в прибор, и результаты данных из прибора могут быть обработаны, скорректированы или проанализированы по мере необходимости.
В тексте справки содержится информация о функции.
Этот раздел содержит несколько примеров функций и шагов для проверки поведения этих функций.
В этом примере создается функция, которая заставляет осциллограф Tektronix ® TDS 210 регулировать вертикальные, горизонтальные и триггерные элементы управления для отображения стабильной формы сигнала. В редакторе драйверов приборов MATLAB
Выберите Functions узел в дереве.
Введите имя функции, autoset, в поле Add function text и нажмите кнопку Add. Имя новой функции, autoset, появляется в таблице Имя функции (Function Name).
Разверните окно Functions для отображения всех определенных функций.
Выберите autoset из функций, отображаемых в дереве.
Выберите вкладку Код, чтобы определить команды, выполняемые для этой функции.
Выбрать Instrument Commands в поле Стиль функции.
На панели «Команды функции» введите AUTOSet EXECute в поле «Добавить команду» и нажмите кнопку «Добавить».

Выберите вкладку Справка, чтобы определить текст справки для этой функции.
В текстовом поле Справка введите INVOKE(OBJ, 'autoset') causes the oscilloscope to adjust its vertical, horizontal, and trigger controls to display a stable waveform.
Нажмите кнопку «Сохранить».
Проверка поведения функции. Эта процедура проверяет поведение функции. В этом примере имя драйвера: tektronix_tds210_ex.mdd. Связь с осциллографом Tektronix TDS 210 по основному адресу 2 осуществляется через плату GPIB корпорации Measurement Computing™ с индексом платы 0. В командной строке MATLAB
Создайте объект устройства, obj, с использованием icdevice функция.
g = gpib('mcc',0,2); obj = icdevice('tektronix_tds210_ex.mdd',g);
Просмотрите созданный метод.
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
Просмотрите справку, которую вы написали.
instrhelp(obj,'autoset')INVOKE(OBJ, 'autoset') causes the oscilloscope to adjust its vertical, horizontal, and trigger controls to display a stable waveform.
С помощью элементов управления на приборе установите объем так, чтобы его отображение было нестабильным. Например, установите уровень триггера вне диапазона формы сигнала так, чтобы форма сигнала прокручивалась по дисплею.
Подключите к инструменту и выполните функцию. Наблюдайте за стабилизацией отображения формы сигнала.
connect(obj)
invoke(obj,'autoset')Отключитесь от прибора и удалите объект.
disconnect(obj) delete([obj g])
В этом примере создается функция, которая конфигурирует, какая форма сигнала будет передана из осциллографа Tektronix TDS 210, и конфигурирует начальную и конечную точки данных формы сигнала. В редакторе драйверов приборов MATLAB
Выберите Functions узел в дереве.
Введите имя функции, configureWaveform, в поле Add function text и нажмите кнопку Add. Имя новой функции, configureWaveform, появляется на панели Имя функции (Function Name).
Разверните окно Functions для отображения всех определенных функций.
Выберите configureWaveform из функций, отображаемых в дереве.
Выберите вкладку Код, чтобы определить команды, выполняемые для этой функции.
Выбрать 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 Формат.

Выберите вкладку Справка, чтобы определить текст справки для этой функции.
В текстовом поле Справка введите [SOURCE, START, STOP] = INVOKE(OBJ, 'configureWaveform', SOURCE, START, STOP) configures the waveform that will be transferred from the oscilloscope.
Нажмите кнопку «Сохранить».
Проверка поведения функции. Эта процедура проверяет поведение функции. В этом примере имя драйвера: tektronix_tds210_ex.mdd. Связь с осциллографом Tektronix TDS 210 по основному адресу 2 осуществляется через плату GPIB компании Measurement Computing Corporation с индексом платы 0. В командной строке MATLAB
Создайте объект устройства, obj, с использованием icdevice функция.
g = gpib('mcc',0,2); obj = icdevice('tektronix_tds210_ex.mdd',g);
Просмотрите созданный метод.
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
Просмотрите справку, которую вы написали.
instrhelp(obj,'configureWaveform')[SOURCE, START, STOP] = INVOKE(OBJ, 'configureWaveform', SOURCE, START, STOP) configures the waveform that will be transferred from the oscilloscope.
Подключите к инструменту и выполните функцию.
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
Отключитесь от прибора и удалите объект.
disconnect(obj) delete([obj g])
В этом примере создается функция, которая будет передавать и масштабировать сигнал от осциллографа Tektronix TDS 210. В редакторе драйверов приборов MATLAB
Выберите Functions узел в дереве.
Введите имя функции, getWaveform, в поле Add function text и нажмите кнопку Add. Имя новой функции, getWaveform, появляется в таблице Имя функции (Function Name).
Разверните окно Functions для отображения всех определенных функций.
Выберите getWaveform из функций, отображаемых в дереве.
Выберите вкладку Код, чтобы определить команды, выполняемые для этой функции.
Выбрать 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;

Щелкните вкладку Справка (Help), чтобы определить текст справки для этой функции.
В текстовом поле Справка введите DATA = INVOKE(OBJ, 'getWaveform') transfers and scales the waveform from the oscilloscope.
Нажмите кнопку «Сохранить».
Проверка поведения функции. Эта процедура проверяет поведение функции. В этом примере имя драйвера: tektronix_tds210_ex.mdd. Связь с осциллографом Tektronix TDS 210 по основному адресу 2 осуществляется через плату GPIB компании Measurement Computing Corporation с индексом платы 0. В командной строке MATLAB
Создайте объект устройства, obj, с использованием icdevice функция.
g = gpib('mcc',0,2); obj = icdevice('tektronix_tds210_ex.mdd',g);
Просмотрите созданный метод.
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
Просмотрите справку, которую вы написали.
instrhelp(obj,'getWaveform')DATA = INVOKE(OBJ, 'getWaveform') transfers and scales the waveform from the oscilloscope.
Подключите к инструменту и выполните функцию.
connect(obj)
Сконфигурируйте передаваемую форму сигнала.
invoke(obj,'configureWaveform','CH1',1,500);
Передача формы сигнала.
data = invoke(obj,'getWaveform');Проанализируйте и просмотрите форму сигнала.
size(data)
ans = 500 1
plot(data)
Отключитесь от прибора и удалите объект.
disconnect(obj) delete([obj g])