Сбор данных с помощью устройства NI FieldDAQ

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

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

Чтобы обнаружить устройство, которое поддерживает входные измерения, получите доступ к устройству в таблице, возвращенной daqlist команда. Этот пример использует устройство FD-11603 NI. Это устройство имеет два банка, каждый с 4 каналами. Канал 0 Bank 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 и добавьте аналоговые входные каналы

Создайте 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)")