В этом примере показано, как сгенерировать синусоиду на функциональном преобразователе с помощью программного обеспечения 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('ivi');
driverInfo.Modules'
ans = 18×1 cell array {'AgRfSigGen' } {'nidcpower' } {'nidmm' } {'niFgen' } {'nisACPwr' } {'niScope' } {'nisCounter' } {'nisDCPwr' } {'nisDigitizer' } {'nisDmm' } {'nisDownconverter'} {'nisFGen' } {'nisPwrMeter' } {'nisRFSigGen' } {'nisScope' } {'nisSpecAn' } {'nisSwtch' } {'nisUpconverter' }
Используйте 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;