Error -200284 : DAQmx에서 VI를 읽을 때 샘플을 얻지 못했습니다.

업데이트 됨 May 17, 2024

해당 제품

하드웨어

  • Chassis for SCXI

소프트웨어

  • LabVIEW Base
  • LabVIEW Full
  • LabVIEW

드라이버

  • NI-DAQmx

문의사항

DAQmx 읽기 VI를 사용하여 LabVIEW 프로그램을 실행할 때 다음과 같은 오류가 나타납니다 :

에러 -200284이(가) 다음에서 발생했습니다 :
가능한 이유 :
요구된 일부 또는 모든 샘플을 아직 수집하지 못했습니다.
  • 매번 이 에러가 발생하지는 않습니다. 때로는 데이터의 분해능을 높이려고 할 때 에러가 발생합니다. 이 에러가 발생하지 않고 샘플 수를 늘리려면 어떻게 해야합니까?

해결책

샘플을 읽기 전에 타임아웃이 발생했기 때문에 에러가 리턴되었습니다. 다음은 이 에러를 피할 수 있는 다양한 방법입니다.

타임아웃 값을 조정하십시오:
DAQmx 읽기에 타임아웃 입력이 있습니다. 타임아웃은 샘플을 사용할 수 있게 되기까지 대기하는 시간 (초)을 지정합니다. 시간이 경과하면, VI는 타임아웃이 발생하기 전에 읽은 샘플과 에러를 반환합니다. 입력이 연결되지 않은 경우 기본값인 10 초로 설정됩니다. 타임아웃을 -1로 설정하면 VI는 무기한 대기합니다. 타임아웃을 0으로 설정하면 VI는 요청 된 샘플을 읽으려고 시도하고 불가능한 경우 에러를 반환합니다.

샘플 속도가 낮고 읽을 샘플이 많으면 시간이 경과하여 에러가 발생할 수 있습니다. 이 문제를 해결하려면 속도와 읽을 샘플을 수용하도록 타임아웃을 늘리십시오. 일반적으로 타임아웃 값은 읽을 샘플 수를 샘플 속도로 나눈 값보다 커야합니다.

프로그램에서 나중에 읽으십시오:
종종 프로그램이 신호를 생성하는 장비를 제어하고 있다면 샘플을 읽을 수 있을 때까지 지체가 있습니다. 이 경우 DAQmx 읽기를 포함한 태스크는 샘플을 읽을 수 있게 된 후에 시작되어야합니다. 이는 신호를 생성하는 장비를 제어하는 ​​명령 이후에 읽기가 이루어 지도록 에러 와이어를 적절하게 연결하여 수행 할 수 있습니다. 또한 대기 시간 VI를 사용하여 샘플을 사용할 수 있게 되기까지 충분한 시간을 허용 할 수 있습니다.

샘플 속도를 증가하십시오:
샘플 속도가 낮으면 장치나 작업에 너무 느릴 수 있습니다. 하드웨어가 원하는 속도를 지원할 수 있는지 확인하십시오. 타임아웃이 기본값으로 설정되어 있고 하나 이상의 샘플을 수집하는 동안 속도가 0.1Hz보다 느린 경우 속도를 증가시켜야합니다. 샘플 속도는 읽을 샘플을 시간 초과로 나눈 값보다 커야합니다.

읽을 샘플 수를 줄이십시오:
읽을 샘플 수가 많으면 카운터 입력 작업에 오류가 발생할 수 있습니다. 읽을 샘플의 수는 Read VI가 타임 아웃되기 전에 읽을 수있는 샘플의 수보다 클 수 있습니다. 타임 아웃이 기본값 (10 초)으로 설정되어 있고 관심있는 샘플의 주파수가 1Hz이면 DAQmx 읽기 VI는 반복을 완료하기 전에 최대 100 개의 샘플을 읽을 수 있습니다. 이 경우, 샘플 수가 100보다 크다면 DAQmx 읽기 VI는 존재할 것보다 더 많은 샘플을 읽으므로 -200284의 에러가 발생됩니다.

시작 트리거가 올바르게 구성되었는지 확인하십시오:
트리거링에는 두 가지 옵션이 있습니다.
  • 첫 번째 옵션은 트리거가 PFI / RTSI / Trig 라인에 오는 곳입니다. 트리거가 작동하는지 확인하고 하드웨어를 통해 신호를 올바르게 보내십시오. 그런 다음 하드웨어가 트리거가 전송되는 경로를 지원하는지 확인하십시오. 마지막으로, 소프트웨어 태스크가 해당 라인에서 해당 트리거를 찾고 있는지 확인하십시오.
  • 두 번째 옵션은 트리거가 동일한 보드의 다른 태스크에서 나옵니다. 하드웨어가 이 작업을 지원하는지 확인하십시오. 첫 번째 태스크는 트리거를 제공하고 두 번째 태스크는 첫 번째 태스크의 트리거 소스를 트리거로 설정합니다. 소프트웨어가 올바르게 프로그래밍되었는지 확인하십시오.

외부 타이밍이 올바르게 구성되었는지 확인하십시오:
외부 타이밍은 태스크를 참조합니다. 타이밍이 다른 작업 또는 장치에서 오는 경우 외부 타이밍으로 간주됩니다. 외부 타이밍에는 두 가지 옵션이 있습니다.
  • 첫 번째 옵션은 PFI / RTSI / Trig 라인에서 클럭이 들어오는 곳입니다. 클럭이 동작 중인지 확인하고 하드웨어를 통해 신호를 제대로 보내십시오. 하드웨어가 클럭이 전송되는 경로를 지원하는지 확인하십시오. 그런 다음 소프트웨어 태스크가 해당 라인에서 해당 클럭을 찾고 있는지 확인하십시오.
  • 두 번째 옵션은 클럭이 동일한 보드의 다른 작업에서 나옵니다. 하드웨어가 이 작업을 지원하는지 확인하십시오. 첫 번째 태스크에서는 클럭을 설정하고 두 번째 태스크는 첫 번째 태스크의 클럭을 소스로 사용하도록(예 : 아날로그 샘플 클럭을 사용하는 카운터 작업) 설정합니다. 이 경우 두 클럭이 정확히 동일하게 구성되었는지 소프트웨어에서 확인하십시오.

추가 정보

사용 예

다음은 카운터 태스크가 아날로그 샘플 클럭을 사용하는 예입니다.

DAQmx 타이밍의 기본 샘플 모드는 유한 샘플입니다. 카운터 태스크의 샘플 클럭은 연속 샘플로 설정 될 수 있지만 입력이 연결되지 않은 경우 기본 값 (유한 샘플)으로 설정됩니다. 채널 당 샘플을 연결하지 않고 샘플 클럭을 유한 샘플로 설정하면 속도에 따라 기본 버퍼 크기가 설정됩니다. 버퍼가 가득 차면 샘플 클럭이 중지되고 클럭 소스가 중지되었으므로 카운터 작업이 카운트 래치를 중지합니다. 연속 샘플로 설정된 카운터 작업은 제한 시간이 경과 할 때까지 더 많은 클럭 에지를 계속 예상합니다. 샘플 클럭 소스를 연속 샘플로 설정하면 클럭이 버퍼링 된 카운팅 작업에 대한 클럭 에지를 계속 제공 할 수 있습니다.

 

MAX 대 DAQ 어시스턴트

Measurement & Automation Explorer (MAX)를 사용하면 목적을 달성하기 위해 태스크를 구성할 수 있으며, 제대로 작동하면 LabVIEW에서 태스크를 설정하거나 태스크가 동일한 매개 변수로 구성되어 있는지 확인할 수 있습니다. LabVIEW에서 태스크의 예제 코드 및 / 또는 구성 코드를 생성하여 컴퓨터가 태스크를 어떻게 구성하는지 확인할 수 있습니다.

DAQ 어시스턴트를 사용하면 태스크를 구성 할 수 있으며, DAQmx 코드를 생성하여 컴퓨터가 태스크를 어떻게 구성하는지 확인할 수 있습니다.