해결책
LabVIEW 또는 LabWindows / CVI ™ 타이머 함수는 운영 체제의 타이머를 사용합니다. 이러한 타이머의 시간 정확도는 운영 체제에 의존적입니다. 운영 체제 별 일반적인 타이밍 정확도 목록은 아래와 같습니다.
운영 체제 | 일반적인 타이밍 분해능 (ms) |
---|
Windows 3.x | 55 |
Windows 9x / Me / NT / 2000 / XP / Vista / 7 / 8 / 10 | 1 |
Macintosh 68k | 17 |
PowerMac | 1 |
SUN Solaris | 10 |
Linux | 10 |
Mac OS X (PowerPC) | 10 |
예를 들어, Windows 7에서 구동하는 소프트웨어 타이밍 작업의 정확도는 +/- 1ms입니다.
LabVIEW / LabWindows 타이머 함수를 사용하여 루프를 제어하는 경우, 같은 시간에 컴퓨터에서 실행중인 다른 프로세스에 따라 루프의 회전 속도는 영향받습니다. 예를 들어, 동시적으로 Windows에 여러 개의 창이 열려 있고 데이터 수집 중에 다른 프로세스를 여는 경우, 중앙 처리 장치 (CPU)에 많은 오버 헤드가 발생할 수 있으며 이로 인해 루프 속도가 느려질 수 있습니다.
이러한 타이밍 제어의 정확도와 안정성을 높이기 위해서는 소프트웨어 타이밍 대신 하드웨어 타이밍을 사용하는 것이 좋습니다. 예를 들어 1ms마다 채널을 스캔하려는 경우 각 스캔 사이의 1ms 간격에 해당하는 소프트웨어 타이밍을 사용하는 대신 1000 Samples/s 의 속도로 스캔하도록 하드웨어를 구성 할 수 있습니다. 이 접근 방식은 운영 체제의 가변적인 타이밍에 영향받지 않고 동일한 타이밍 결과를 수행합니다.
따라서, 1ms 시스템 타이머보다 높은 정밀도를 요구하는 애플리케이션에서는 하드웨어 타이밍을 사용해야 합니다.