LabVIEW에서 NI-DAQmx로 연속 수집 할 때 샘플 수를 설정하는 방법

업데이트 됨 Nov 30, 2022

환경

소프트웨어

  • LabVIEW Full

드라이버

  • NI-DAQmx

왜 그리고 어떻게 LabVIEW에서 NI-DAQmx를 사용하여 연속으로 데이터를 수집 할 때 읽을 샘플 수를 지정해야 합니까?

배열 / 웨이브폼의 크기와 DAQmx PC 버퍼의 크기는 아래에 설명 된대로 DAQmx 태스크의 구성에 의해 암시적으로 결정됩니다.

DAQmx로 수집을 수행 할 때, 데이터는 먼저 DAQ 디바이스에서 컴퓨터의 메모리(RAM)로 전송됩니다. DAQmx PC 버퍼라는 컴퓨터의 RAM에 미리 할당 된 버퍼가 있습니다. DAQmx PC 버퍼는 읽지 않은 데이터의 보관 장소로 예약되어 있습니다.

그런 다음 DAQmx 읽기 함수를 실행하여 DAQmx PC 버퍼에서 DAQmx 응용 프로그램 내부의 배열 또는 웨이브폼으로 데이터를 읽을 수 있습니다.


LabVIEW에서 태스크를 위해 DAQmx 타이밍(DAQmx Timing) VI를 구성 할 때 샘플 모드(sample mode)연속 샘플 또는 유한 샘플로 설정되어 있는지 여부에 따라 채널당 샘플 값이 다른 효과를 갖습니다.

  • 유한 샘플의 경우, 채널당 샘플 값은 태스크가 완료되기 전에 획득 할 샘플 수를 결정합니다.
  • 연속 샘플의 경우 채널당 샘플 값은 기본 버퍼 크기가 충분하지 않은 경우 DAQmx PC 버퍼의 크기를 결정하는 데 사용됩니다. 그러나 대부분의 경우 기본 버퍼 크기가 사용되며이 값은 무시됩니다. 연속 수집을 위해 버퍼 크기가 결정되는 방법에 대한 더 자세한 정보는 DAQmx Buffer Size Allocation for Finite or Continuous Acquisition을 참조하십시오.

반면, DAQmx 읽기에는 채널당 샘플 개수라는 입력이 있습니다. 채널당 샘플 개수 값은 DAQmx 읽기가 실행될 때 버퍼에서 어플리케이션으로 읽혀지는 데이터의 각 배열 또는 웨이브폼의 샘플 크기를 결정합니다.

DAQmx 읽기는 요청 된 모든 샘플이 수집되어 어플리케이션에 데이터를 제공하기 전에 DAQmx PC 버퍼에 저장 될 때까지 대기합니다.

결과적으로 샘플링 속도가 느려서 할당 된 시간 내에이 크기의 배열이나 웨이브폼을 생성 할만큼 빠르지 않으면 VI는 타임 아웃 오류를 발생시킵니다. 이를 방지하려면 타임아웃 파라미터를 (기본값은 10 초)를 늘리거나 채널당 샘플 개수를 줄이십시오.

Additional Information

Note: 호스트 컴퓨터의 RAM에서 DAQ 디바이스와 DAQmx PC 버퍼 간의 전송 속도는 DAQ 디바이스 (PCI, USB, PXI 등)와의 통신에 사용되는 버스에 따라 다릅니다.

DAQ Assistant 패널과 SignalExpress 및 NI MAX에서 이 파라미터의 이름은 다음과 같이 수집할 샘플(Samples to Read) 로 변경됩니다 :

채널당 샘플 개수의 기본값은 -1이므로 DAQmx 읽기는 버퍼에서 즉시 사용할 수있는 모든 데이터를 읽습니다. 채널당 샘플 개수가 -1로 설정되어있을 때 버퍼에서 사용할 수있는 데이터가 없다면, DAQmx 읽기는 샘플이 수집 될 때까지 기다리지 않고 빈 배열을 반환합니다.