이 페이지는 기계 번역을 사용하여 번역되었습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
NI 장치를 사용하여 데이터 수집하기
이 예제에서는 National Instruments™ 장치에서 데이터를 수집하는 방법을 보여줍니다.
아날로그 입력 장치 검색
입력 측정을 지원하는 장치를 검색하려면 daqlist
명령에서 반환된 테이블의 장치에 액세스합니다. 이 예제에서는 National Instruments® CompactDAQ Chassis 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)")