Использование драйвера прибора NI-FGEN для генерации Sine wave

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

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

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

Требования

В этом примере вы научитесь генерировать синусоиду с помощью программного пакета NI-FGEN версии 2.7.2 или выше и генератора NI PXI-5402 функции. Можно также использовать любой другой генератор функций, поддерживаемый программным пакетом NI-FGEN версии 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'  }

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

Используйте 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;