Функции позволяют вам вызывать инструмент, чтобы выполнить некоторую задачу или задачи, которые могут возвратить результаты как текстовые данные или числовые данные. Функция может включить одну команду к инструменту или последовательность инструментальных команд. Функция может включать код MATLAB, чтобы определить то, какие команды отправляются в инструмент или выполнять анализ данных, возвращенных в инструмент. Например, функция может запросить что измерительный участок ее внутренняя калибровка, возвратив состояние в результате. Другая функция может считать масштабирование метра, запросить измерение, настроить результаты измерений согласно считыванию показаний, и затем возвратить результат.
Поведение функции задано компонентами, описанными ниже.
Код MATLAB задает код, который выполнен, когда функция выполнена с invoke
функция. Код может быть задан как инструментальная команда, которая будет записана в инструмент, или это может быть задано как программный код MATLAB.
Если код задан как инструментальная команда, инструментальная команда может быть задана, чтобы взять входной параметр. Все случаи <input argument name>
в инструменте команда подставлены с входным значением, переданным invoke
функция. Например, если функция задана с входным параметром, start
, и инструментальная команда задана как Data:Start <start>
, и значение запуска 10
передается invoke
функция, команда Data:Start 10
записан в инструмент.
Если код задан как инструментальная команда, инструментальная команда может также быть задана, чтобы возвратить выходной аргумент. Выходной аргумент может быть возвращен как числовые данные или как текстовые данные.
Если код задан как программный код MATLAB, можно определить, какие команды отправляются в инструмент, и данные следуют из инструмента, может управляться, настраиваться или анализироваться по мере необходимости.
Текст справки предоставляет информацию о функции.
Этот раздел включает несколько примеров функций и продвигается, чтобы проверить поведение этих функций.
Этот пример создает функцию, которая заставит осциллограф Tektronix® TDS 210 настраивать свою вертикаль, горизонтальную и триггерные средства управления, чтобы отобразить устойчивую форму волны. В инструментальном редакторе драйвера MATLAB,
Выберите Functions
узел в дереве.
Введите имя функции, autoset
, в Добавить поле текста функции и нажимают кнопку Add. Имя новой функции, autoset
, появляется в таблице Function Name.
Расширьте Functions
узел, чтобы отобразить все заданные функции.
Выберите autoset
узел от функций, отображенных в дереве.
Выберите вкладку Code, чтобы задать команды, выполняемые для этой функции.
Выберите Instrument Commands
в Функциональном поле стиля.
В Функциональной панели команд введите AUTOSet EXECute
в Добавить поле команды и нажимают кнопку Add.
Выберите вкладку Help, чтобы задать текст справки для этой функции.
В текстовом поле Help введите INVOKE(OBJ, 'autoset') causes the oscilloscope to adjust its vertical, horizontal, and trigger controls to display a stable waveform
.
Нажмите кнопку Save.
Проверка Поведения Функции. Эта процедура проверяет поведение функции. В этом примере именем драйвера является tektronix_tds210_ex.mdd
. Связь с осциллографом Tektronix TDS 210 в первичном адресе 2 сделана через Измерение плата GPIB Корпорации Computing™ в параметре плат 0. Из командной строки MATLAB,
Создайте объект устройства, obj
, использование icdevice
функция.
g = gpib('mcc', 0, 2); obj = icdevice('tektronix_tds210_ex.mdd', g);
Просмотрите метод, который вы создали.
methods(obj) Methods for class icdevice: Contents error instrhwinfo open class fieldnames instrnotify openvar close get instrument propinfo connect geterror invoke selftest ctranspose horzcat isa set delete icdevice isequal sim devicereset igetfield isetfield size disconnect inspect isvalid subsasgn disp instrcallback length subsref display instrfind methods vertcat end instrfindall ne eq instrhelp obj2mfile 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. Имя новой функции, configureWaveform
, появляется в панели Имени функции.
Расширьте Functions
узел, чтобы отобразить все заданные функции.
Выберите configureWaveform
узел от функций, отображенных в дереве.
Выберите вкладку Code, чтобы задать команды, выполняемые для этой функции.
Выберите Instrument Commands
в Функциональном поле стиля.
Введите входные параметры source, start, stop
в поле Входных параметров.
Введите Data:Source <source>
в Добавить поле команды и нажимают кнопку Add. В таблице выберите тип Output 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
Формат.
Выберите вкладку Help, чтобы задать текст справки для этой функции.
В текстовом поле Help введите [SOURCE, START, STOP] = INVOKE(OBJ, 'configureWaveform', SOURCE, START, STOP) configures the waveform that will be transferred from the oscilloscope
.
Нажмите кнопку Save.
Проверка Поведения Функции. Эта процедура проверяет поведение функции. В этом примере именем драйвера является 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: Contents error instrhwinfo open class fieldnames instrnotify openvar close get instrument propinfo connect geterror invoke selftest ctranspose horzcat isa set delete icdevice isequal sim devicereset igetfield isetfield size disconnect inspect isvalid subsasgn disp instrcallback length subsref display instrfind methods vertcat end instrfindall ne eq instrhelp obj2mfile 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. Имя новой функции, getWaveform
, появляется в таблице Function Name.
Расширьте Functions
узел, чтобы отобразить все заданные функции.
Выберите getWaveform
узел от функций, отображенных в дереве.
Выберите вкладку 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;
Кликните по вкладке Help, чтобы задать текст справки для этой функции.
В текстовом поле Help введите DATA = INVOKE(OBJ, 'getWaveform') transfers and scales the waveform from the oscilloscope
.
Нажмите кнопку Save.
Проверка Поведения Функции. Эта процедура проверяет поведение функции. В этом примере именем драйвера является 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: Contents error instrhwinfo open class fieldnames instrnotify openvar close get instrument propinfo connect geterror invoke selftest ctranspose horzcat isa set delete icdevice isequal sim devicereset igetfield isetfield size disconnect inspect isvalid subsasgn disp instrcallback length subsref display instrfind methods vertcat end instrfindall ne eq instrhelp obj2mfile 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])