В этом примере показано, как получить цифровой сигнал от двух каналов драйвера NI-SCOPE National Instruments ® в режиме моделирования.
Toolbox™ управления приборами поддерживает связь с приборами через высокоуровневые драйверы. В этом примере можно получить цифровые формы сигналов от драйвера NI-SCOPE National Instruments ® в режиме моделирования.
В этом примере требуется система Microsoft ® Windows ® и пакет NI-SCOPE версии 3.6 или выше. Перед использованием этого примера убедитесь, что обозреватель измерений и автоматизации распознает драйвер 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 (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;