Используя инструментальный драйвер NI-FGEN, чтобы сгенерировать синусоиду

Этот пример показывает, как сгенерировать синусоиду на функциональном преобразователе с помощью программного обеспечения NI-FGEN.

Instrument Control Toolbox™ поддерживает связь с инструментами через интерфейсы и драйверами.

Для получения дополнительной информации на тулбоксе, посетите страницу продукта Instrument Control Toolbox.

Требования

В этом примере вы будете учиться генерировать синусоиду с помощью версии 2.7.2 пакета программного обеспечения NI-FGEN или выше и функциональный преобразователь PXI-5402 NI. Можно также использовать любой другой функциональный преобразователь, поддержанный версией 2.7.2 пакета программного обеспечения NI-FGEN или выше.

Проверьте установку 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_...'

Создайте инструментальный объект MATLAB

Используйте функцию 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;