추가 정보
DAQmx 어플리케이션의 읽기 속도는 한번 읽기 당 수집 할 샘플 수와 초당 읽기 수의 두 가지 요소에 의해 결정됩니다.
읽기 속도와 샘플 속도를 동일하게 설정하더라도 프로그램은 예상 한 속도로 수행 할 수 없습니다. 이것은 while 루프 내부의 리소스 문제에 따라 예상보다 한 회전이 오래걸릴 수 있기 때문입니다. 이로 인해 DAQmx 읽기의 속도가 늦어지게 되고 읽지 못한 대기 샘플들이 버퍼에 축적됩니다. 아래에 표시된 것과 같은 루프 벤치마킹 기술을 사용하여 while 루프가 실제로 원하는 속도로 수행되는지 확인할 수 있습니다.
추가 문제 해결 고려 사항 :유한 샘플링 vs 연속 샘플링일부 응용 프로그램은 연속 샘플링을 필요로하지 않을 수 있으며 판독시 유효한 샘플 수만 필요합니다. 이 경우, 당신은
연속 샘플 대신
유한 샘플의 DAQmx 타이밍 VI의 샘플 모드를 설정 고려할 수 있습니다. 이 구성에서 모든 루프 사이클은 샘플을 사용할 수 있게되기 전에 잠시 기다립니다 (즉, 1 kHz에서 100 샘플을 읽으면 읽음에서 0.1 초를 기다린다는 의미입니다). 이것은 샘플이 읽기간에 손실되고 그 샘플이 읽기가 호출 되자마자 사용 가능하지 않음을 의미합니다. 그러나 위에서 언급한 시나리오 2를 경험하지 않으면 오류를 완화해야합니다.
DAQmx 프로퍼티 노드를 이용한 버퍼 모니터링연속 버퍼링 수집 중에 버퍼를 모니터링하여 현재 구성이 버퍼에 미치는 영향에 대한 자세한 정보를 얻을 수 있습니다. 획득 중에 사용 가능한 요소의 수가 계속 증가하면 결국 버퍼 오버플로를 방지하기 위해 위에 나열된 작업 중 하나를 수행하십시오. 버퍼에서 사용 가능한 데이터의 양을 모니터링하려면 DAQmx Read 프로퍼티 노드를
Status:Available Samples Per Channel
하여
Status:Available Samples Per Channel
프로퍼티를 읽습니다.
덮어 쓰기 오류를 피하기 위해 LabVIEW Dataflow 제어LabVIEW는 데이터 흐름 언어입니다. 즉, VI 또는 구조가 블록 다이어그램에서의 위치와 상관없이 모든 입력을 수신하자 마자 실행될 수 있습니다. 오류 와이어를 입력으로 사용하여 VI 또는 구조가 다른 것보다 먼저 실행되지 않도록하는 것이 유용합니다. 에러 와이어가 VI A와 VI B를 연결하면 A가 실행되고 에러 클러스터가 A에서 B로 전달 될 때까지 B는 필요한 입력을 모두 가지지 않습니다. LabVIEW에서 데이터 흐름에 대한 더 자세한 정보는
LabVIEW Help : Block Diagram Data Flow. (LabVIEW 도움말 : 블록 다이어그램 데이터 흐름 ) 을 참조하십시오.
지속적인 DAQmx 수집에서, DAQmx 작업 시작 VI가 실행될 때부터 DAQmx 작업 중지 VI 또는 DAQmx 작업 지우기 VI가 실행될 때까지 버퍼에 데이터가 기록됩니다. DAQmx 작업 시작 VI가 실행되는 시점과 첫 번째 DAQmx 읽기가 실행되는 시점 사이에 DAQmx PC 버퍼가 데이터로 채워집니다. 이 간격이 너무 길면 버퍼가 완전히 채워지고 DAQmx 읽기 VI가 버퍼에서 꺼내어 오류 -200279가 발생하기 전에 초기 데이터를 덮어 씁니다.
아래의 코드 조각은 데이터 흐름 실행으로 인해 버퍼 오버플로 오류가 발생할 수있는 일반적인 시나리오를 보여줍니다. 첫 번째 스 니펫에서는 DAQmx Start Task VI가 Open / Create / Replace file VI (팝업 대화 상자 생성) 다음에 실행된다는 보장이 없으므로 측정이 버퍼를 채우는 동안 파일을 선택하면 PC 버퍼 덮어 쓰기의 위험이 있습니다.
이 문제를 피하려면 각 함수의 에러 입력과 출력 터미널을 연결하여 두 번째 코드가 보여 주듯이 DAQmx Start Task VI가 Open / Create / Replace File VI 실행을 마친 후에 실행되도록하십시오 :
DSA (Dynamic Signal Acquisition) 장비의 샘플 속도National Instruments의 DSA 디바이스는 잡음을 줄이고 왜곡을 줄임으로써 신호 무결성을 극대화하는 24 비트 델타 시그마 아날로그 - 디지털 컨버터 (ADC)를 사용합니다. 이러한 특수 ADC는 사용 가능한 샘플 속도를 달성하기 위해 이산 정수 배수로 나누어 진 마스터 타임베이스를 사용합니다. 결과적으로 모든 DSA 장치의 사용 가능한 샘플 속도는 제한적입니다.
예를 들어, NI 9234는 총 31 개의 가능한 샘플 속도를 가지며 최소 샘플링 속도는 1.652 kS/s입니다. 사용 가능한 샘플 속도의 수와 값은 DSA 장치에 따라 다르므로 장치 사양 설명서에 지정해야합니다.
9234 디바이스의 샘플링 속도가 DAQmx Timing VI 또는 프로퍼티 노드를 사용하여 최소 속도보다 낮게 설정되면 실제 샘플 속도는 DAQmx API 백그라운드에서 디바이스에 사용 가능한 최소 속도까지 강제 설정됩니다. 결과적으로 실제로 발생하는 것보다 훨씬 낮은 샘플 속도에 적합한 읽기 속도로 응용 프로그램을 설계 할 수 있으며 이로 인해 오류 -200279가 발생할 수 있습니다.
수집에 DSA 장치를 사용하는 경우 가능한 샘플링 속도를 고려하고 응용 프로그램을 적절하게 설계하십시오.
참고 : DAQmx 타이밍 프로퍼티 노드를 사용하고
Sample Clock:Rate
프로퍼티를 읽으면 DAQmx 타이밍 VI에서 설정한 속도와 관계없이 디바이스에서 실제로 어떤 샘플 속도가 사용되고 있는지 확인할 수 있습니다.