Этот пример показов, как сгенерировать синусоиду на генераторе функции с помощью программного обеспечения NI-FGEN.
Instrument Control Toolbox™ поддерживает связь с инструментами через интерфейсы и драйверы.
Для получения дополнительной информации о тулбоксе посетите страницу продукта Instrument Control Toolbox.
В этом примере вы научитесь генерировать синусоиду с помощью программного пакета NI-FGEN версии 2.7.2 или выше и генератора NI PXI-5402 функции. Можно также использовать любой другой генератор функций, поддерживаемый программным пакетом NI-FGEN версии 2.7.2 или выше.
Используйте 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 Measurement and Automation. Для примера: Имя ресурса 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
, Смещение Постоянного 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 Instrument Object, это остановит генерацию сигналов.
disconnect(ictObj);
delete(ictObj);
clear ictObj;