exponenta event banner

Получение формы сигнала через драйвер прибора NI-SCOPE MATLAB в режиме моделирования

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

Введение

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

Требования

В этом примере требуется система Microsoft ® Windows ® и пакет NI-SCOPE версии 3.6 или выше. Перед использованием этого примера убедитесь, что обозреватель измерений и автоматизации распознает драйвер NI-SCOPE.

Проверка установки 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'        }

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

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