From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.



LabVIEW 에서 어떻게 하면 -10846(Overwrite Error)에러를 피할 수 있습니까?



주요한 소프트웨어: LabVIEW Development Systems
주요한 소프트웨어 버전: N/A
문제가 해결된 소프트웨어 버전: N/A
부차적인 소프트웨어:

문제점:
LabVIEW 에서 "Cont Acq&Chart (buffered].vi" 예제를 실행하고 있습니다. scan rate 를 빠르게 하면 AI Buffer Read 에서 LabVIEW 가 -10846 에러와 다음과 같은 메세지가 출력됩니다: "The driver wrote new data into the data transfer buffer before the previously acquired data was read."


솔루션:
LabVIEW 는 내부 수집용 버퍼를 이용해서 데이터 수집을 하면서 데이터를 저장합니다. 데이터 수집한 양이 버퍼의 용량을 초과하면 버퍼는 circular 버퍼처럼 동작하고 한 번 이상 채우게 됩니다. 새로운 데이터를 버퍼에 쓰기 전에 버퍼에 있는 데이터를 읽어오지 못하면 -10846 overwrite 에러가 발생합니다. LabVIEW 에서 데이터 수집에 영향을 주는 요인들이 몇가지 있습니다: scan rate, 데이터 버퍼의 크기, 그리고 시간내에 읽을 scan 의 숫자 등이 있습니다. "Cont Acq&Chart [buffered]" 예제는 위의모든 파라미터(매개변수)들을 프론트 파넬에서 지정할 수 있게 되어있습니다. 버퍼가 너무 작거나 데이터를 빨리 읽어오지 못하면 overwrite 에러가 납니다. 버퍼의 용량이 너무 크면 'out of memory' 에러가 날 수 있습니다.

scan rate, 버퍼의 크기, 그리고 시간내에 읽을 수 있는 scan 숫자들을 바꿔가면서 테스트를 해 보십시오. 최상의 조합은 scan backlog 가 전혀 없거나 적습니다. 버퍼의 크기를 읽을 scan 의 숫자보다 2-4 배 정도 크게 하는것이 좋은 시작점입니다.

관련 링크:

KnowledgeBase 4EMEEPQ7: Understanding and Avoiding Overwrite and Overflow Errors with Traditional NI-DAQ



첨부:





리포트 날짜: 06/12/1998
마지막 업데이트: 11/16/2014
문서 번호: 1ABCHTVK