В этом примере показано, как генерировать синусоидальную волну в генераторе функций с помощью программного обеспечения NI-FGEN.
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;