exponenta event banner

Получение данных с помощью устройства NI StartDAQ

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

Обнаружение устройств аналогового ввода

Чтобы обнаружить устройство, поддерживающее входные измерения, обратитесь к устройству в таблице, возвращенной daqlist команда. В этом примере используется устройство NI FD-11603. Это устройство имеет два банка, каждый с 4 каналами. Канал 0 Банка 1 соединен с генератором частоты, который вырабатывает синусоидальную волну 1 кГц (1 Vpp с центром около 0,5 В).

d = daqlist("ni")
d=10×4 table
           DeviceID                        Description                  Model             DeviceInfo       
    _______________________    ___________________________________    __________    _______________________

    "Dev1"                     "National Instruments(TM) USB-6351"    "USB-6351"    [1×1 daq.ni.DeviceInfo]
    "FD11603-1D3BB09-Bank1"    "National Instruments(TM) FD-11603"    "FD-11603"    [1×1 daq.ni.DeviceInfo]
    "FD11603-1D3BB09-Bank2"    "National Instruments(TM) FD-11603"    "FD-11603"    [1×1 daq.ni.DeviceInfo]
    "FieldDAQ1-Bank1"          "National Instruments(TM) FD-11603"    "FD-11603"    [1×1 daq.ni.DeviceInfo]
    "FieldDAQ1-Bank2"          "National Instruments(TM) FD-11603"    "FD-11603"    [1×1 daq.ni.DeviceInfo]
    "FieldDAQ2-Bank1"          "National Instruments(TM) FD-11613"    "FD-11613"    [1×1 daq.ni.DeviceInfo]
    "FieldDAQ3-Bank1"          "National Instruments(TM) FD-11634"    "FD-11634"    [1×1 daq.ni.DeviceInfo]
    "FieldDAQ3-Bank2"          "National Instruments(TM) FD-11634"    "FD-11634"    [1×1 daq.ni.DeviceInfo]
    "FieldDAQ4-Bank1"          "National Instruments(TM) FD-11637"    "FD-11637"    [1×1 daq.ni.DeviceInfo]
    "FieldDAQ4-Bank2"          "National Instruments(TM) FD-11637"    "FD-11637"    [1×1 daq.ni.DeviceInfo]

Создание сбора данных и добавление каналов аналогового ввода

Создайте DataAcquisition, установите Rate свойство (значение по умолчанию - 1000 сканирований в секунду) и добавление каналов аналогового ввода с помощью addinput.

dq = daq("ni");
dq.Rate = 20000;
addinput(dq,"FD11603-1D3BB09-Bank1","ai0","Voltage");
Warning: Added channel does not support on-demand operations: only clocked operations are allowed.

Получение данных в течение указанной длительности

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

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

Постройте график полученных данных

t = data.Time;
v = data.Variables;
n = 200;
plot(t(1:n), v(1:n));
ylabel("Voltage (V)")

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

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