소프트웨어 타임을 사용하는 LabVIEW 어플리케이션의 정확성

업데이트 됨 Aug 13, 2020

해당 제품

소프트웨어

  • LabVIEW
  • LabWindows/CVI

문의사항

소프트웨어 타이밍을 이용해서 데이터 수집 중입니다. 데이터 수집은 LabVIEW (또는 LabWindows / CVI) 타이머 함수를 사용해서 루프를 제어하고 있습니다. 이때, 왜 1ms보다 더 빠른 속도를 사용할 수 없는 이유와 루프의 시간 간격이 일정하지 않은 이유는 무엇입니까?

해결책

LabVIEW 또는 LabWindows / CVI ™ 타이머 함수는 운영 체제의 타이머를 사용합니다. 이러한 타이머의 시간 정확도는 운영 체제에 의존적입니다. 운영 체제 별 일반적인 타이밍 정확도 목록은 아래와 같습니다.
운영 체제일반적인 타이밍 분해능 (ms)
Windows 3.x55
Windows 9x / Me / NT / 2000 / XP / Vista / 7 / 8 / 101
Macintosh 68k17
PowerMac1
SUN Solaris10
Linux10
Mac OS X (PowerPC)10
 
예를 들어, Windows 7에서 구동하는 소프트웨어 타이밍 작업의 정확도는 +/- 1ms입니다.

LabVIEW / LabWindows 타이머 함수를 사용하여 루프를 제어하는 경우, 같은 시간에 컴퓨터에서 실행중인 다른 프로세스에 따라 루프의 회전 속도는 영향받습니다. 예를 들어, 동시적으로 Windows에 여러 개의 창이 열려 있고 데이터 수집 중에 다른 프로세스를 여는 경우, 중앙 처리 장치 (CPU)에 많은 오버 헤드가 발생할 수 있으며 이로 인해 루프 속도가 느려질 수 있습니다. 

이러한 타이밍 제어의 정확도와 안정성을 높이기 위해서는 소프트웨어 타이밍 대신 하드웨어 타이밍을 사용하는 것이 좋습니다. 예를 들어 1ms마다 채널을 스캔하려는 경우 각 스캔 사이의 1ms 간격에 해당하는 소프트웨어 타이밍을 사용하는 대신 1000 Samples/s 의 속도로 스캔하도록 하드웨어를 구성 할 수 있습니다. 이 접근 방식은 운영 체제의 가변적인 타이밍에 영향받지 않고 동일한 타이밍 결과를 수행합니다.

따라서, 1ms 시스템 타이머보다 높은 정밀도를 요구하는 애플리케이션에서는 하드웨어 타이밍을 사용해야 합니다.

추가 정보

Real-time OS를 사용하는 경우, 상위 해상도 리스트와 동일(10ms)하게 수행되지만, 실행 시 더 적은 인터럽트로 실행됩니다.