Сгенерируйте Сигналы на устройствах NI то Выходное напряжение

Этот пример показывает, как сгенерировать данные с помощью Национального Инструментального устройства, доступного MATLAB® с помощью основанного на сеансе интерфейса.

Узнайте Устройства, которые могут Выходное напряжение

Чтобы обнаружить устройство, которое поддерживает подсистемы напряжения аналогового выхода, кликните по имени устройства в списке в Командном окне или получите доступ к устройству в массиве, возвращенном командой daq.getDevices. Этот пример использует Соотечественника Инструменты устройство NI 9263 CompactDAQ с ID 'cDAQ1Mod2', представляющим модуль в слоте 2 Шасси 'cDAQ1'.

devices = daq.getDevices
devices = 

Data acquisition devices:

index Vendor Device ID           Description           
----- ------ --------- --------------------------------
1     ni     cDAQ1Mod1 National Instruments NI 9205
2     ni     cDAQ1Mod2 National Instruments NI 9263
3     ni     cDAQ1Mod3 National Instruments NI 9234
4     ni     cDAQ1Mod4 National Instruments NI 9201
5     ni     cDAQ1Mod5 National Instruments NI 9402
6     ni     cDAQ1Mod6 National Instruments NI 9213
7     ni     cDAQ1Mod7 National Instruments NI 9219
8     ni     cDAQ1Mod8 National Instruments NI 9265
9     ni     Dev1      National Instruments PCIe-6363
10    ni     Dev2      National Instruments NI ELVIS II

devices(2)
ans = 

ni: National Instruments NI 9263 (Device ID: 'cDAQ1Mod2')
   Analog output subsystem supports:
      -10 to +10 Volts range
      Rates from 0.6 to 100000.0 scans/sec
      4 channels ('ao0','ao1','ao2','ao3')
      'Voltage' measurement type
   
This module is in slot 2 of the 'cDAQ-9178' chassis with the name 'cDAQ1'.


Создайте сеанс

Используйте функцию daq.createSession, чтобы создать сеанс, сопоставленный с поставщиком. Сеанс содержит информацию, описывающую оборудование, частоту развертки, длительность и другие свойства, сопоставленные с генерацией. Когда вы создаете сеанс, присваиваете его переменной.

s = daq.createSession('ni')
s = 

Data acquisition session using National Instruments hardware:
   Will run for 1 second (1000 scans) at 1000 scans/second.
   No channels have been added.
   

Добавьте каналы аналогового выхода

Используйте функцию addAnalogOutputChannel, чтобы добавить два канала аналогового выхода от этого устройства до сеанса.

addAnalogOutputChannel(s,'cDAQ1Mod2',0,'Voltage');
addAnalogOutputChannel(s,'cDAQ1Mod2',1,'Voltage');

Установите уровень сеанса

По умолчанию сеанс сконфигурирован для 1 000 сканирований/секунда. Измените частоту развертки, чтобы получить на 8 000 сканирований/секунда.

s.Rate = 8000
s = 

Data acquisition session using National Instruments hardware:
   No data queued.  Will run at 8000 scans/second.
   Number of channels: 2
      index Type  Device   Channel MeasurementType      Range       Name
      ----- ---- --------- ------- --------------- ---------------- ----
      1     ao   cDAQ1Mod2 ao0     Voltage (Diff)  -10 to +10 Volts
      2     ao   cDAQ1Mod2 ao1     Voltage (Diff)  -10 to +10 Volts
   

Сгенерируйте одно сканирование

Используйте функцию outputSingleScan, чтобы сгенерировать одно сканирование. Данные являются матрицей 1 на n, где N соответствует количеству выходных каналов. Здесь вы выводите 2 В на каждом канале.

outputSingleValue = 2;
outputSingleScan(s,[outputSingleValue outputSingleValue]);

Поставьте данные в очередь

Используйте функцию queueOutputData, чтобы сгенерировать несколько сканирований. Данные должны быть матрицей M на n, где M является количеством сканирований, вы хотите, и N является количеством каналов на сеансе. Сгенерируйте 2 тестовых сигнала (синусоида на 1 Гц и пандус на 1 Гц) и выведите их на каналах на этом сеансе. График изображает данные, сгенерированные обоими каналами вместе. (Проверяйте, используете ли устройство вы поддержки одновременная выборка.)

outputSignal1 = sin(linspace(0,pi*2,s.Rate)');
outputSignal2 = linspace(-1,1,s.Rate)';
plot(outputSignal1);
hold on;
plot(outputSignal2,'-g');
xlabel('Time');
ylabel('Voltage');
legend('Analog Output 0', 'Analog Output 1');
queueOutputData(s,[outputSignal1 outputSignal2]);

Запустите сеанс на переднем плане

Используйте функцию startForeground, чтобы запустить операцию аналогового выхода и выполнение блока MATLAB, пока все данные не будут сгенерированы.

s.startForeground;
Для просмотра документации необходимо авторизоваться на сайте