Этот пример показывает, как получить данные из Национального Инструментального устройства, доступного 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