NI-DAQmx 덮어쓰기, 오버플로우 에러의 이해 및 방지하기

업데이트 됨 Nov 10, 2023

해당 제품

소프트웨어

  • LabVIEW Full

드라이버

  • NI-DAQmx

문의사항

덮어쓰기 및 오버플로우 오류 란 무엇이며 NI-DAQmx에서 이를 방지할 수 있습니까?

일반적으로 나타나는 덮어쓰기 에러 메세지는 다음과 같습니다. Error -200279: 어플리케이션이 하드웨어 수집 속도를 따라갈 수 없습니다. 

오버플로우 에러 메세지는 다음과 같습니다. Error -200361: 내장 디바이스 메모리가 오버플로우됩니다. 시스템과 버스 대역폭의 한계 때문에 드라이버는 디바이스의 처리 속도만큼 빠르게 디바이스에서 데이터를 읽을 수 없습니다.

해결책

Part I - NI-DAQmx의 덮어쓰기 에러 :
  • 덮어쓰기 에러를 방지 하려면 버퍼 크기를 늘리거나, 더 빨리 읽거나, 더 느리게 쓸 필요가 있습니다.
  • LabVIEW에서 생산자/소비자 디자인 패턴 아키텍처를 구현하는 것도 고려해 볼 수 있습니다. 생산자/소비자 아키텍처를 사용하면 분석 및 뷰 단계를 두 번째 루프로 작성하여 데이터는 더 빨리 읽을 수 있습니다.
  • 더 빠른 컴퓨터를 이용하여 에러를 해결할 수 있습니다. 더 빠른 컴퓨터를 사용하면 PC 버퍼와 Application Development Environment 메모리 사이에서 보다 빠른 속도로 데이터를 전송할 수 있습니다.
Part II - NI-DAQmx의 오버플로우 에러:
  • 오버플로우 에러를 방지하려면 직접 메모리 액세스(DMA) 전송 메커니즘을 사용하거나, 요청 된 데이터 입력 속도를 줄이거나, PCI 버스를 공유하는 디바이스 수를 줄여야합니다. 
  • 인터럽트 요청(IRQ) 데이터 전송 메커니즘보다는 직접 메모리 액세스(DMA) 전송 메커니즘을 사용하십시오. DMA는 IRQ보다 빠르며 성능을 크게 향상시킬 수 있습니다. DMA 사용에 대한 더 자세한 정보는 NI-DAQmx 도움말과 DAQmx 채널 프로퍼티 노드, 데이터 전송 메커니즘 속성을 참조하십시오. (Note: DAQCard 및 USB 장치는 DMA를 지원하지 않습니다.)
  • DAQmx 타이밍 함수에서 채널당 샘플 비율을 낮추십시오.
  • PCI / PCIe 버스를 공유하려고 시도하는 다른 디이바이스를 분리하십시오.
더 큰 FIFO 버퍼가있는 NI 디바이스 또는 모듈을 구입하는 것도 고려해 보세요. 온보드 메모리를 늘리면 PCI / PCIe 버스 병목 현상이 줄어 듭니다.

추가 정보

NI-DAQmx의 덮어쓰기 에러:

이 에러는 응용 프로그램이 PC 버퍼에서 데이터를 충분히 빠르게 읽지 못할 때 정보가 손실되는 현상을 나타냅니다. 순환 PC 버퍼에 기록 된 샘플은 ADE (Application Development Environment) 메모리로 읽히기 전에 덮어 써집니다.


NI-DAQmx의 오버플로우 에러:

오버플로우 에러는 데이터 수집 카드의 First In First Out(FIFO) 메모리 버퍼가 수집 된 샘플을 저장할 수있는 최대 용량에 도달했으며, 더 이상 샘플을 수집할 수 없음을 나타냅니다. 오버플로우 에러는 요청 된 데이터 입력 속도에 미치지 못하는 버스 전송 속도로 인해 발생합니다.