주요 콘텐츠

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

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

참고 항목

함수

도움말 항목