Функции позволяют вам вызвать инструмент для выполнения некоторых задач или задач, которые могут вернуть результаты как текстовые данные или числовые данные. Функция может включать одну команду к инструменту или последовательность команд инструмента. Функция может включать в себя MATLAB® программный код для определения, какие команды посылаются на прибор или для выполнения анализа по данным, возвращенным с прибора. Для примера функция может запросить, чтобы счетчик запустил свою самокалибровку, возвращая в результате состояние. Другая функция может считать масштабирование счетчика, запрашивать измерение, корректировать измеренные данные в соответствии с показаниями шкалы и затем возвращать результат.
Поведение функции определяется компонентами, описанными ниже.
Код MATLAB определяет код, который выполняется, когда функция оценивается с invoke
функция. Код может быть определен как команда instrument, которая будет записана на инструмент, или как код программного обеспечения MATLAB.
Если код определен как команда instrument, можно задать команду instrument, чтобы взять входной параметр. Все вхождения <input argument name>
в команде instrument заменяются входным значением, переданным в invoke
функция. Для примера, если функция задана с помощью входного параметра, start
, и команда прибора определяется как Data:Start <start>
, и начальное значение 10
передается в invoke
function, the команды Data:Start 10
записывается на инструмент.
Если код определен как команда instrument, можно также задать команду instrument, чтобы вернуть выходной аргумент. Выходной аргумент может быть возвращен как числовые данные или как текстовые данные.
Если код определен как код программного обеспечения MATLAB, можно определить, какие команды отправляются в инструмент, и результаты данных с инструмента могут быть манипулированы, скорректированы или проанализированы по мере необходимости.
Текст справки содержит информацию о функции.
Этот раздел включает несколько примеров функций и шагов для проверки поведения этих функций.
Этот пример создает функцию, которая вызовет Tektronix® Осциллограф TDS 210 для регулировки его вертикальных, горизонтальных и триггерных органов управления для отображения стабильной формы волны. В редакторе драйверов приборов MATLAB,
Выберите Functions
узел в дереве.
Введите имя функции, autoset
, в поле Add function text и нажмите кнопку Add. Имя новой функции, autoset
, появляется в таблице Имя функции.
Разверните Functions
узел для отображения всех определенных функций.
Выберите autoset
узел из функций, отображаемых в дереве.
Выберите вкладку Code, чтобы задать команды, выполненные для этой функции.
Выберите Instrument Commands
в поле Function style.
На панели команд Function введите AUTOSet EXECute
в поле команда и нажмите кнопку Add.
Выберите вкладку «Справка», чтобы определить текст справки для этой функции.
В поле Текст справки введите 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 осуществляется через плату Измерения Computing™ Corporation GPIB с индексом платы 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
, появляется на панели Имя функции.
Разверните Functions
узел для отображения всех определенных функций.
Выберите configureWaveform
узел из функций, отображаемых в дереве.
Выберите вкладку Code, чтобы задать команды, выполненные для этой функции.
Выберите Instrument Commands
в поле Function style.
Введите входные параметры 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
Формат.
Выберите вкладку «Справка», чтобы определить текст справки для этой функции.
В поле Текст справки введите [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: 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
, появляется в таблице Имя функции.
Разверните Functions
узел для отображения всех определенных функций.
Выберите getWaveform
узел из функций, отображаемых в дереве.
Выберите вкладку Code, чтобы задать команды, выполненные для этой функции.
Выберите M-Code
в поле Function style.
Обновите линию функции в текстовом поле Define Функции MATLAB, чтобы включить выходной аргумент.
function yout = getWaveform(obj)
Добавьте следующий код программного обеспечения MATLAB в поле Define MATLAB function text. (Инструмент может потребовать короткой паузы перед любыми операторами, считывающими форму волны, чтобы позволить ему завершить набор данных.)
% 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;
Щелкните вкладку «Справка», чтобы определить текст справки для этой функции.
В поле Текст справки введите 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: 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])