exponenta event banner

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

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

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;