В этом примере показано, как генерировать сигналы на аналоговом токовом выходном канале устройства NI.
Чтобы обнаружить устройство, выводящее ток, обратитесь к устройству в таблице, возвращенной daqlist команда. В этом примере используется модуль NI 9265 в National Instruments ® CompactDAQ Chassis NI cDAQ-9178. Это 4-канальное аналоговое устройство вывода тока и модуль 8 в корпусе.
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{8, "DeviceInfo"}
deviceInfo =
ni: National Instruments NI 9265 (Device ID: 'cDAQ1Mod8')
Analog output supports:
0 to +0.020 A range
Rates from 0.6 to 100000.0 scans/sec
4 channels ('ao0','ao1','ao2','ao3')
'Current' measurement type
This module is in slot 8 of the 'cDAQ-9178' chassis with the name 'cDAQ1'.
Создайте DataAcquisition и добавьте два аналоговых выходных канала.
dq = daq("ni"); dq.Rate = 100; ch1 = addoutput(dq, "cDAQ1Mod8", "ao0", "Current"); ch2 = addoutput(dq, "cDAQ1Mod8", "ao1", "Current");
Каналы NI 9265 имеют диапазон от 0 до 20 мА. Создайте клин от 0 до 20 мА на канале 1 и постоянный 10 мА на канале 2. Для каждого сигнала используйте достаточное количество точек, чтобы сформировать 10 секунд выходных данных с заданной скоростью сканирования.
n = 10 * dq.Rate; data1 = linspace(20e-6, 20e-3, n)'; data2 = repmat(10e-3, n, 1); data = [data1 data2]; plot(1:n, data) grid on xlabel('Data Points') ylabel('A') legend('data1','data2')

Использовать write для формирования выходных сигналов.
write(dq, data)
Чтобы уменьшить длительность вывода, увеличьте частоту сканирования генерации. В течение одной секунды вывода измените Rate к количеству образцов в сканировании.
dq.Rate = n; write(dq, data)