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