"Wait Until Next ms Multiple"함수를 이용할 때 첫번째 반복에서 정확한 시간지연이 이루어지지 않는다.



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

문제점: While loop에 소프트웨어 타이밍을 주기 위해 "Wait Until Next ms Multiple" 함수를 쓰고 있습니다. 이 현상은 주로 LabVIEW Real-Time을 사용할 때 발생하지만 윈도우즈에서 LabVIEW를 사용할 때도 마찬가지 현상이 일어납니다. while loop 안에 이 함수를 넣고 (예를 들어) 5000ms를 연결하면, 첫번째 반복시에 걸리는 실행시간은 0과 5000 사이에서 랜덤하게 달라집니다. 왜 이런 현상이 일어나는 것이며, 어떻게 수정할 수 있나요?

솔루션: "Wait Until Next ms Multiple" 함수는 컴퓨터의 내부 클럭으로부터 타임스탬프를 불러온다. 이 타임스탬프 값이 지정해준 시간으로 나누어줄 수 있을 때까지 시간지연이 된다. 따라서, 첫번째 반복에서는 지연되는 시간이 루프 시작시점의 절대시간에 의존적이다. 다음 반복에서부터 이 시간이 제대로 맞춰지게 되고 지정된 시간만큼의 정확한 시간지연이 일어난다.

이런 현상을 보상해줄 몇가지 방법이 있는데 그 중 하나가 아래 첨부된 VI에 있다(LabVIEW 5.0 이상에서 실행가능). 반드시, 루프에 들어가기전에 'Wait Until Next ms Multiple' 함수를 먼저 불러옴으로써 'initialize'가 이루어져야 한다.

관련 링크:

첨부:


ms_multiple_test.vi - ms_multiple_test.vi


리포트 날짜: 12/03/2001
마지막 업데이트: 05/23/2006
문서 번호: 2G27ANEW