주요 콘텐츠

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

여러 채널 및 여러 장치에서 데이터 수집

이 예제는 동일한 섀시에 있는 여러 채널과 여러 장치에서 데이터를 수집하는 방법을 보여줍니다. 이 예제에서는 ID가 cDAQ6Mod3인 NI 9201 장치의 채널 하나와 ID가 cDAQ6Mod1인 NI 9205 장치의 채널 두 개에서 동시에 전압 데이터를 수집합니다.

데이터 수집 장치용 인터페이스 생성 및 채널 추가

DataAcquisition 객체를 생성합니다. addinput 함수를 사용하여 채널 ID가 0과 1인 cDAQ6Mod1용 아날로그 입력 전압 채널 두 개를 추가합니다.

d = daq("ni");
addinput(d,"cDAQ6Mod1",0:1,"Voltage");
d.Channels
    Index   Type      Device      Channel   Measurement Type         Range              Name   
    _____   ____    ___________   _______   ________________   __________________   _______________

      1     "ai"    "cDAQ6Mod1"   "ai0"     "Voltage (Diff)"   "-10 to +10 Volts"   "cDAQ1Mod1_ai0"
      2     "ai"    "cDAQ6Mod1"   "ai1"     "Voltage (Diff)"   "-10 to +10 Volts"   "cDAQ1Mod1_ai1"

별도의 장치인 cDAQ6Mod3에 채널 ID 0을 가진 추가 채널을 추가합니다. NI 장치의 경우, ai0와 같은 단자 이름 또는 0과 같은 상응하는 숫자를 이름으로 사용하십시오. 그런 다음 DataAcquisition 객체의 모든 채널을 표시합니다.

ch = addinput(d,"cDAQ6Mod3","ai0","Voltage");
d.Channels
    Index   Type      Device      Channel   Measurement Type         Range              Name   
    _____   ____    ___________   _______   ________________   __________________   _______________

      1     "ai"    "cDAQ6Mod1"   "ai0"     "Voltage (Diff)"   "-10 to +10 Volts"   "cDAQ1Mod1_ai0"
      2     "ai"    "cDAQ6Mod1"   "ai1"     "Voltage (Diff)"   "-10 to +10 Volts"   "cDAQ1Mod1_ai1"
      3     "ai"    "cDAQ6Mod3"   "ai0"     "Voltage (Diff)"   "-10 to +10 Volts"   "cDAQ1Mod6_ai0"

이제 d를 사용하여 두 장치에서 동시에 데이터를 수집할 수 있으며, 수집된 데이터는 행렬 또는 타임테이블 형식으로 반환됩니다.

데이터를 행렬 형식으로 가져오고 모든 채널의 데이터를 그래프로 표시하기

1초 동안 데이터를 수집합니다. 수집된 데이터를 행렬 data로 저장하되, 각 열에는 하나의 채널에서 수집된 데이터가 포함되도록 합니다. 그런 다음, 두 장치에서 수집한 모든 데이터를 그래프로 표시하십시오.

data = read(d,seconds(1),OutputFormat="Matrix");
plot(data)
title("Acquired Data from Multiple Channels");
xlabel("Sample Number");
ylabel("Voltage (V)");
legend("ai0 -cDAQ6Mod1","ai1 -cDAQ6Mod1","ai0 -cDAQ6Mod3");

plot acquired data from multiple channels

타임테이블 형식으로 데이터 수집하기

타임테이블 형식으로 데이터를 수집할 때, 소프트웨어는 채널 속성 Name을 사용하여 출력에서 채널 데이터를 식별합니다. 이 효과를 확인하려면 cDAQ6Mod3에서 ai0 채널의 이름을 변경한 다음 채널 속성을 확인하십시오. 자세한 내용은 Channel Properties 항목을 참조하십시오.

ch.TerminalConfig = "SingleEnded";
ch.Name = "Velocity_sensor";
ch
ch = 

 Index   Type     Device      Channel     Measurement Type           Range               Name   
 _____   ____   ___________   _______   ____________________   __________________  _________________

   1     "ai"   "cDAQ6Mod3"   "ai0"     "Voltage (SingleEnd)"  "-10 to +10 Volts"  "Velocity_sensor"

1초 동안 데이터를 수집하고, 이를 data 변수에 타임테이블 형식으로 저장하십시오.

data = read(d,seconds(1));

각 장치의 데이터를 별도로 그래프로 표시하기

이번에는 두 장치의 모든 데이터를 하나의 그래프에 표시하는 대신, 두 개의 서브플롯을 사용하십시오. 첫 번째 그래프에는 장치 1의 전압 신호가 표시되고, 두 번째 그래프에는 장치 2의 신호가 표시됩니다. 채널 이름을 사용하여 각 그래프에 data의 어떤 시계열을 표시할지 지정합니다.

figure;
tiledlayout(2,1);
nexttile
plot(data.Time,[data.cDAQ6Mod1_ai0 data.cDAQ6Mod1_ai1]);
title("Acquired Data from Device 1");
xlabel("Time (s)");
ylabel("Voltage (V)");
nexttile
plot(data.Time,data.Velocity_sensor);
title("Acquired Data from Device 2");
xlabel("Time (s)");
ylabel("Voltage (V)");

plot acquired data from multiple devices

참고 항목

함수

도움말 항목