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

В этом примере показано, как получить данные из устройства National Instruments ™.

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

Чтобы обнаружить устройство, которое поддерживает входные измерения, получите доступ к устройству в таблице, возвращенной daqlist команда. Этот пример использует модуль NI 9201 в Национальном Instruments® CompactDAQ Chassis NI cDAQ-9178. Это - 8 устройств аналогового входа канала и является модулем 4 в шасси.

d = daqlist("ni")
d =

  12×4 table

     DeviceID                 Description                    Model             DeviceInfo     
    ___________    __________________________________    _____________    ____________________

    "cDAQ1Mod1"    "National Instruments NI 9205"        "NI 9205"        [1×1 daq.DeviceInfo]
    "cDAQ1Mod2"    "National Instruments NI 9263"        "NI 9263"        [1×1 daq.DeviceInfo]
    "cDAQ1Mod3"    "National Instruments NI 9234"        "NI 9234"        [1×1 daq.DeviceInfo]
    "cDAQ1Mod4"    "National Instruments NI 9201"        "NI 9201"        [1×1 daq.DeviceInfo]
    "cDAQ1Mod5"    "National Instruments NI 9402"        "NI 9402"        [1×1 daq.DeviceInfo]
    "cDAQ1Mod6"    "National Instruments NI 9213"        "NI 9213"        [1×1 daq.DeviceInfo]
    "cDAQ1Mod7"    "National Instruments NI 9219"        "NI 9219"        [1×1 daq.DeviceInfo]
    "cDAQ1Mod8"    "National Instruments NI 9265"        "NI 9265"        [1×1 daq.DeviceInfo]
    "Dev1"         "National Instruments PCIe-6363"      "PCIe-6363"      [1×1 daq.DeviceInfo]
    "Dev2"         "National Instruments NI ELVIS II"    "NI ELVIS II"    [1×1 daq.DeviceInfo]
    "Dev3"         "National Instruments PCIe-6363"      "PCIe-6363"      [1×1 daq.DeviceInfo]
    "Dev4"         "National Instruments PCIe-6363"      "PCIe-6363"      [1×1 daq.DeviceInfo]

deviceInfo = d{4, "DeviceInfo"}
deviceInfo = 

ni: National Instruments NI 9201 (Device ID: 'cDAQ1Mod4')
   Analog input 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'.


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

Создайте DataAcquisition, установите Rate свойство (значением по умолчанию являются 1 000 сканов в секунду), и добавляет каналы аналогового входа с помощью addinput.

dq = daq("ni");
dq.Rate = 8000;
addinput(dq, "cDAQ1Mod4", "ai0", "Voltage");
addinput(dq, "cDAQ1Mod4", "ai1", "Voltage");

Получите один скан как таблицу

Используйте read получать один скан. Результатом является таблица с двумя столбцами данных, потому что два входных канала используются, чтобы получить скан.

tabledata = read(dq)
tabledata =

  1×2 timetable

    Time     cDAQ1Mod4_ai0    cDAQ1Mod4_ai1
    _____    _____________    _____________

    0 sec     0.00081472       0.00090579  

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

Используйте read получать один скан. Результатом является массив размера 1x2, потому что два входных канала используются, чтобы получить скан.

matrixdata = read(dq, "OutputFormat", "Matrix")
matrixdata =

   1.0e-03 *

    0.1270    0.9134

Получите данные на заданное время

Используйте read чтобы получить несколько сканов, блокируя выполнение MATLAB до, все запрошенные данные получены. Полученные данные возвращены как расписание с шириной, равной количеству каналов и высоты, равной количеству сканов.

% Acquire data for one second at 8000 scans per second.
data = read(dq, seconds(1));

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

plot(data.Time, data.Variables);
ylabel("Voltage (V)")

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

data = read(dq, 2*dq.Rate);
plot(data.Time, data.Variables);
ylabel("Voltage (V)")