이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.
NI 장치를 사용하여 데이터 수집하기
이 예제에서는 National Instruments™ 장치에서 데이터를 수집하는 방법을 보여줍니다.
아날로그 입력 장치 검색
입력 측정을 지원하는 장치를 검색하려면, daqlist 명령으로 반환된 테이블에서 장치를 액세스합니다. 이 예제에서는 National Instruments™ CompactDAQ 섀시 NI cDAQ-9178에 장착된 NI 9201 모듈을 사용합니다. 이것은 8채널 아날로그 입력 장치이며 섀시의 모듈 4입니다.
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{4, "DeviceInfo"}
deviceInfo =
ni: National Instruments NI 9201 (Device ID: 'cDAQ1Mod4')
Analog input 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'.
DataAcquisition 생성 및 아날로그 입력 채널 추가
DataAcquisition을 만들고, Rate 속성(디폴트는 1000 스캔/초)을 설정하고, addinput를 사용하여 아날로그 입력 채널을 추가합니다.
dq = daq("ni"); dq.Rate = 8000; addinput(dq, "cDAQ1Mod4", "ai0", "Voltage"); addinput(dq, "cDAQ1Mod4", "ai1", "Voltage");
단일 스캔을 테이블로 수집
read를 사용하여 단일 스캔을 수집합니다. 스캔을 수집하는 데 두 개의 입력 채널이 사용되므로 결과는 두 개의 데이터 열을 가진 테이블이 생성됩니다.
tabledata = read(dq)
tabledata =
1×2 timetable
Time cDAQ1Mod4_ai0 cDAQ1Mod4_ai1
_____ _____________ _____________
0 sec 0.00081472 0.00090579
단일 스캔을 행렬로 수집
read를 사용하여 단일 스캔을 수집합니다. 스캔을 수집하는 데 두 개의 입력 채널이 사용되므로 결과는 크기가 1x2인 배열입니다.
matrixdata = read(dq, "OutputFormat", "Matrix")
matrixdata =
1.0e-03 *
0.1270 0.9134
지정된 기간 동안 데이터 수집
read를 사용하여 여러 번의 스캔 결과를 수집하고, 요청된 모든 데이터가 수집될 때까지 MATLAB®의 실행을 차단합니다. 수집된 데이터는 채널 수와 동일한 너비, 스캔 수와 동일한 높이를 가진 timetable형으로 반환됩니다.
% Acquire data for one second at 8000 scans per second.
data = read(dq, seconds(1));
수집 데이터 플로팅
plot(data.Time, data.Variables);
ylabel("Voltage (V)")

지정된 수의 스캔 수집
data = read(dq, 2*dq.Rate);
plot(data.Time, data.Variables);
ylabel("Voltage (V)")
