В этом примере показано, как получить цифровую форму волны от двух каналов Национального драйвера Instruments® NI-SCOPE в режиме симуляции.
Instrument Control Toolbox™ поддерживает связь с инструментами через высокоуровневые драйверы. В этом примере можно получить цифровые формы волны от Национального драйвера Instruments® NI-SCOPE в режиме симуляции.
Этот пример требует системы Microsoft® Windows® и пакета ОСЦИЛЛОГРАФА NI 3.6 или выше. Убедитесь, что Measurement & Automation Explorer распознает драйвер ОСЦИЛЛОГРАФА NI, прежде чем вы будете использовать этот пример.
Используйте instrhwinfo
команда, чтобы проверять, установлен ли пакет программного обеспечения ОСЦИЛЛОГРАФА NI правильно. Если установлено правильно, ОСЦИЛЛОГРАФ NI перечислен как один из модулей, установленных на машине Windows. Этот пример пользуется библиотеками, установленными с ним.
driversInfo = instrhwinfo ('ivi');
disp(driversInfo.Modules');
'nidmm' 'niScope' 'nisDCPwr' 'nisDigitizer' 'nisDmm' 'nisFGen' 'nisRFSigGen' 'nisScope'
Используйте 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;