Этот пример показывает, как сгенерировать синусоиду на функциональном преобразователе с помощью программного обеспечения NI-FGEN.
Instrument Control Toolbox™ поддерживает связь с инструментами через интерфейсы и драйверами.
Для получения дополнительной информации на тулбоксе, посетите страницу продукта Instrument Control Toolbox.
В этом примере вы будете учиться генерировать синусоиду с помощью версии 2.7.2 пакета программного обеспечения NI-FGEN или выше и функциональный преобразователь PXI-5402 NI. Можно также использовать любой другой функциональный преобразователь, поддержанный версией 2.7.2 пакета программного обеспечения NI-FGEN или выше.
Используйте команду instrhwinfo
, чтобы проверять, установлен ли пакет программного обеспечения NI-FGEN правильно.
driverInfo = instrhwinfo ('vxipnp','niFgen'); disp(driverInfo);
HardwareInfo with properties: Manufacturer: 'National Instruments Corp.' Model: 'National Instruments Function Generator' DriverVersion: '1.0' DriverDllName: 'C:\Program Files\IVI Foundation\VISA\Win64\bin\nifgen_...'
Используйте функцию icdevice
, чтобы создать инструментальный объект из MDD и установить связь с функциональным преобразователем с помощью того объекта.
Функция icdevice
берет два или больше входных параметра. Имя файла MDD, имя ресурса для функционального преобразователя и опционально, устанавливая определенные параметры.
Можно получить имя ресурса для функционального преобразователя от Измерения NI и Средства автоматизации. Например: именем ресурса PXI1Slot6
в NI, MAX был бы DAQ::PXI1Slot6
и Device 2
, будет DAQ::2
. Можно удалить аргумент optionstring
и соответствующий строковый параметр, если у вас есть фактическое оборудование.
% Specify Resource ID resourceID = 'DAQ::PXI1Slot6'; ictObj = icdevice('niFgen',resourceID,'optionstring','Simulate=true,DriverSetup=Model:5402'); % Connect driver instance connect(ictObj);
В целях этого примера функциональный преобразователь сконфигурирован, чтобы сгенерировать синусоиду на Канале 0
с частотой 10E6
, амплитудой 2
, Смещением DC 0
и стартовой фазой 0
.
% These values are defined in the driver's header file 'niFgen.h' NIFGEN_VAL_OUTPUT_FUNC = 0; NIFGEN_VAL_WFM_SINE = 1; NIFGEN_ATTR_FUNC_FREQUENCY = 10E+6; NIFGEN_ATTR_FUNC_AMPLITUDE = 2.0; NIFGEN_ATTR_FUNC_DC_OFFSET = 0; NIFGEN_ATTR_FUNC_START_PHASE = 0.0; % This value is described in the help file 'NI Signal Generators Help' ChannelName = '0';
invoke(ictObj.Configuration,'configureoutputmode',NIFGEN_VAL_OUTPUT_FUNC); invoke(ictObj.Configurationfunctionsstandardfunctionoutput,'configurestandardwaveform',ChannelName, NIFGEN_VAL_WFM_SINE, NIFGEN_ATTR_FUNC_AMPLITUDE, NIFGEN_ATTR_FUNC_DC_OFFSET, NIFGEN_ATTR_FUNC_FREQUENCY, NIFGEN_ATTR_FUNC_START_PHASE);
Если вы конфигурируете функциональный преобразователь с необходимыми настройками, используйте соответствующий вызов функции инициировать форму волны.
invoke(ictObj.Waveformcontrol,'initiategeneration');
Если генерация формы волны начинается, включите вывод функционального преобразователя.
Enabled = 1;
invoke(ictObj.Configuration,'configureoutputenabled', ChannelName, Enabled);
Удалите инструментальный объект MATLAB.
Примечание: Если вы удалите Инструментальный Объект MATLAB, он остановит генерацию формы волны.
disconnect(ictObj);
delete(ictObj);
clear ictObj;