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

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

Введение

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

Требования

Для этого примера требуется система Microsoft ® Windows ® и пакет NI-SCOPE 3.6 или выше. Перед использованием этого примера убедитесь, что Измерение & Automation Explorer распознает драйвер 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 Instrument Driver Editor (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;