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

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

Создайте инструментальный объект 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;