Выберите форму волны через ОСЦИЛЛОГРАФ NI инструментальный драйвер MATLAB в режиме симуляции

В этом примере показано, как получить цифровую форму волны от двух каналов Национального драйвера Instruments® NI-SCOPE в режиме симуляции.

Введение

Instrument Control Toolbox™ поддерживает связь с инструментами через высокоуровневые драйверы. В этом примере можно получить цифровые формы волны от Национального драйвера Instruments® NI-SCOPE в режиме симуляции.

Требования

Этот пример требует системы Microsoft® Windows® и пакета ОСЦИЛЛОГРАФА NI 3.6 или выше. Убедитесь, что Measurement & Automation Explorer распознает драйвер ОСЦИЛЛОГРАФА NI, прежде чем вы будете использовать этот пример.

Проверьте установку ОСЦИЛЛОГРАФА NI

Используйте instrhwinfo команда, чтобы проверять, установлен ли пакет программного обеспечения ОСЦИЛЛОГРАФА NI правильно. Если установлено правильно, ОСЦИЛЛОГРАФ NI перечислен как один из модулей, установленных на машине Windows. Этот пример пользуется библиотеками, установленными с ним.

driversInfo = instrhwinfo ('ivi');
disp(driversInfo.Modules');
    'nidmm'    
    'niScope'    
    'nisDCPwr'
    'nisDigitizer'
    'nisDmm'    
    'nisFGen'    
    'nisRFSigGen'
    'nisScope'
    

Создайте объект MATLAB Instrument

Используйте icdevice функция, чтобы создать инструмент возражает от MDD, который вы сгенерировали, и установите связь с осциллографом с помощью того объекта.

icdevice функционируйте берет два или больше входных параметра. Имя файла MDD, имя ресурса для осциллографа и опционально, специфичные для устройства параметры, которые могут быть установлены.

Можно получить имя ресурса для осциллографа из Проводника Измерения и Автоматизации NI. Например: имя ресурса PXI1Slot6 в NI MAX был бы DAQ::PXI1Slot6 и Device 1 был бы DAQ::Dev1. Можно удалить optionstring аргумент и соответствующий строковый параметр, если у вас есть фактическое оборудование.

Можно установить связь с осциллографом с помощью connect команда.

ictObj = icdevice('niscope.mdd', 'DAQ::Dev1', '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 (midedit), чтобы просмотреть другие свойства и функции, которые позволяют вам конфигурировать устройство. Инструмент показывает все свойства и функции, что пакет программного обеспечения ОСЦИЛЛОГРАФА NI поддерживает.

configuration = ictObj.Configuration;
invoke(configuration, 'autosetup');

Сконфигурируйте вертикальную область значений для каждого канала

Функция ConfigureVertical конфигурирует обычно сконфигурированные атрибуты цифрового преобразователя вертикальная подсистема, такие как область значений, смещение, связь, тестовое затухание и канал. Мы будем выбирать данные из каналов '0' и '1' и поэтому конфигурировать эти каналы. Обратитесь к документации Осциллографа NI для получения дополнительной информации.

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;