Этот пример показывает, как получить цифровую форму волны из двух каналов драйвера National Instruments ™ ® NI-SCOPE в режиме симуляции.
Instrument Control Toolbox™ поддерживает связь с инструментами через высокоуровневые драйверы. В этом примере можно получить цифровые формы сигналов от драйвера National Instruments ™ ® NI-SCOPE в режиме симуляции.
Для этого примера требуется система Microsoft ® Windows ® и пакет NI-SCOPE 3.6 или выше. Перед использованием этого примера убедитесь, что Измерение & Automation Explorer распознает драйвер NI-SCOPE.
Используйте instrhwinfo
команда для проверки правильности установки программного пакета NI-SCOPE. При правильной установке NI-SCOPE указывается как один из модулей, установленных на компьютере с Windows. В этом примере используются библиотеки, установленные вместе с ним.
driversInfo = instrhwinfo ('ivi');
disp(driversInfo.Modules');
{'nidcpower' } {'nidmm' } {'niFgen' } {'nisACPwr' } {'niScope' } {'nisCounter' } {'nisDCPwr' } {'nisDigitizer' } {'nisDmm' } {'nisDownconverter'} {'nisFGen' } {'nisPwrMeter' } {'nisRFSigGen' } {'nisScope' } {'nisSpecAn' } {'nisSwtch' } {'nisUpconverter' } {'niSwitch' }
Используйте icdevice
функция для создания объекта инструмента из сгенерированного вами MDD и установления соединения с возможностями с помощью этого объекта.
icdevice
функция принимает два или более входные параметры. Имя файла MDD, имя ресурса для возможностей и, опционально, параметры конкретного устройства, которые можно задать.
Имя ресурса для возможностей можно получить из NI Measurement and Automation Explorer. Для примера: Имя ресурса PXI1Slot6
в NI MAX будет PXI1Slot6
. Можно удалить optionstring
аргумент и соответствующий строковый параметр, если у вас есть фактическое оборудование.
Установить подключение к возможностям можно с помощью connect
команда.
ictObj = icdevice('niscope.mdd', 'PXI1Slot6', 'optionstring', 'simulate=true'); connect(ictObj); disp(ictObj);
Instrument Device Object Using Driver : niScope Instrument Information Type: IVIInstrument Manufacturer: National Instruments Corp. Model: NI Digitizers Driver Information DriverType: MATLAB IVI DriverName: niScope DriverVersion: 1.0 Communication State Status: open
Для целей этого примера возможности настраиваются с помощью автоматической настройки, которая автоматически устанавливает вертикальную область значений, частоту дискретизации, уровень триггера и несколько других настроек.
Используйте MATLAB Instrument Driver Editor (midedit), чтобы просмотреть другие свойства и функции, которые позволяют вам конфигурировать устройство. Инструмент показывает все свойства и функции, которые поддерживает программный пакет NI-SCOPE.
configuration = ictObj.Configuration;
invoke(configuration, 'autosetup');
Функция ConfigureVertical конфигурирует наиболее часто конфигурируемые атрибуты вертикальной подсистемы дигитайзера, такие как область значений, смещение, связь, ослабление зонда и канал. Мы будем извлекать данные из каналов '0' и '1' и, следовательно, конфигурировать эти каналы. Для получения дополнительной информации см. документацию NI-Scope.
Range = 10; Offset = 0; Coupling = 1; ProbeAttenuation = 1; % Configure Channel 0 invoke(ictObj.Configurationfunctionsvertical, 'configurevertical', '0', Range, Offset, Coupling, ProbeAttenuation, true); % Configure Channel 1 invoke(ictObj.Configurationfunctionsvertical, 'configurevertical', '1', Range, Offset, Coupling, ProbeAttenuation, true);
Информация о форме волны является структурой, содержащей время выполнения, количество выборок, усиление и смещение коэффициентов масштабирования для получения формы волны от возможностей. Память будет предварительно выделена для информационной структуры формы волны для каждого канала.
numChannels = 2; channelList = '0,1'; numSamples = 1024; for i = 1:numChannels waveformInfo(i).absoluteInitialX = 0; waveformInfo(i).relativeInitialX = 0; waveformInfo(i).xIncrement = 0; waveformInfo(i).actualSamples = 0; waveformInfo(i).offset = 0; waveformInfo(i).gain = 0; waveformInfo(i).reserved1 = 0; waveformInfo(i).reserved2 = 0; end
Если вы конфигурируете возможности с необходимыми настройками, используйте соответствующий вызов функции, чтобы получить форму волны из каналов 0
и 1
. Предварительно выделите waveformArray, чтобы хранить данные со всех запрашиваемых каналов. Перед извлечением данных необходимо инициировать сбор формы волны. После выборки данных извлеките форму волны, соответствующую каждому каналу.
waveformArray = zeros(numChannels * numSamples, 1); TimeOut = 10; % seconds invoke(ictObj.Acquisition, 'initiateacquisition'); [waveformArray, waveformInfo] = invoke(ictObj.Acquisition, 'fetch', channelList,... TimeOut, numSamples, waveformArray, waveformInfo); waveformArray = reshape(waveformArray, numSamples, numChannels);
plot(waveformArray);
Удалите объект инструмента MATLAB.
disconnect(ictObj);
delete(ictObj);
clear ictObj;