주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

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)")