Получите данные Используя устройства NI

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

Узнайте устройства аналогового входа

Чтобы обнаружить устройство, которое поддерживает подсистемы аналогового входа, кликните по имени устройства в списке в Командном окне или получите доступ к устройству в массиве, возвращенном daq.getDevices команда. Этот пример использует устройство NI 9201 с ID 'cDAQ1Mod4'. Это - 8 модулей аналогового входа канала и находится в пазе 4 Шасси 'cDAQ1'.

devices = daq.getDevices
devices(4)
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


ans = 

ni: National Instruments NI 9201 (Device ID: 'cDAQ1Mod4')
   Analog input subsystem supports:
      -10 to +10 Volts range
      Rates from 0.6 to 500000.0 scans/sec
      8 channels ('ai0' - 'ai7')
      'Voltage' measurement type
   
This module is in slot 4 of the 'cDAQ-9178' chassis with the name 'cDAQ1'.


Создайте сеанс и добавьте канал аналогового входа

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

s = daq.createSession('ni');
addAnalogInputChannel(s,'cDAQ1Mod4', 0, 'Voltage');
addAnalogInputChannel(s,'cDAQ1Mod4', 1, 'Voltage');

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

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

s.Rate = 8000
s = 

Data acquisition session using National Instruments hardware:
   Will run for 1 second (8000 scans) at 8000 scans/second.
   Number of channels: 2
      index Type  Device   Channel MeasurementType      Range       Name
      ----- ---- --------- ------- --------------- ---------------- ----
      1     ai   cDAQ1Mod4 ai0     Voltage (Diff)  -10 to +10 Volts
      2     ai   cDAQ1Mod4 ai1     Voltage (Diff)  -10 to +10 Volts
   

Получите одно сканирование

Используйте inputSingleScan функция, чтобы получить одно сканирование. Результатом является массив размера M-1, где M соответствует количеству входных каналов.

data = s.inputSingleScan
data =

   1.0e-03 *

    0.8147    0.9058

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

Можно получить несколько сканирований с помощью startForeground функция. Это блокирует выполнение MATLAB, пока все данные не получены. Полученные данные возвращены в парах TIME-DATA. ВРЕМЯ Является матрицей M-1, где M является количеством сканирований. ДАННЫЕ являются матрицей M на n, где M является количеством сканирований, и N является количеством каналов аналогового входа на сеансе. Мы теперь запустим приоритетную операцию.

[data,time] = s.startForeground;

Отобразите полученные данные на графике

Этот сеанс теперь получил 8 000 сканирований за одну секунду. Отобразите полученные данные на графике для каждого канала.

plot(time,data);
xlabel('Time (secs)');
ylabel('Voltage')

Получите данные на Заданное Время

По умолчанию сеанс запускается на срок одной секунды. Сконфигурируйте сеанс, чтобы запуститься на заданное время с помощью DurationInSeconds свойство.

Отметьте, тот Уровень = DurationInSeconds/NumberOfScans. Изменение длительности изменяет количество сканирований на сеансе соответственно. Приобретение теперь запустится в течение двух секунд, получая 16 000 сканирований.

s.DurationInSeconds = 2;
s
[data,time] = s.startForeground;
plot(time,data);
xlabel('Time (secs)');
ylabel('Voltage')
s = 

Data acquisition session using National Instruments hardware:
   Will run for 2 seconds (16000 scans) at 8000 scans/second.
   Number of channels: 2
      index Type  Device   Channel MeasurementType      Range       Name
      ----- ---- --------- ------- --------------- ---------------- ----
      1     ai   cDAQ1Mod4 ai0     Voltage (Diff)  -10 to +10 Volts
      2     ai   cDAQ1Mod4 ai1     Voltage (Diff)  -10 to +10 Volts