Выберите форму волны через ОСЦИЛЛОГРАФ 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;