소프트웨어 타이밍에 의한 I/O
- 업데이트 날짜:2025-12-03
- 2분 (읽기 시간)
장점
- 하드웨어 타이밍에 의하지 않은 작업으로 I/O 컨트롤 루프를 실행할 수 있습니다.
- 읽기, 처리, 쓰기 작업은 사용자가 Timed 루프 또는 비동기 타이머로 정의한 소프트웨어 타이밍 기간 내로 한정됩니다.
제약
I/O 샘플에는 소프트웨어 지터가 발생합니다.
샘플 어플리케이션―소프트웨어 타이밍에 의한 I/O
이러한 어플리케이션 종류의 예제는 디지털 I/O 컨트롤 루프입니다. 어플리케이션은 여러 이산 입력의 상태를 모니터하며 컨트롤 알고리즘을 기반으로 대응하는 출력을 토글합니다. 하드웨어 타이밍은 NI-DAQmx의 단일 포인트 디지털 I/O 태스크에는 사용할 수 없습니다.
타이밍 다이어그램
LabVIEW 예제―소프트웨어 타이밍에 의한 I/O
노트 이 예제는 LabVIEW 사용자들을 위해 작성된 것이지만 이 예제의 원리는 LabWindows/CVI와 같은 다른 ADE를 사용하는 경우에도 적용됩니다.
- 태스크는 시스템의 타임 소스(밀리초 또는 마이크로초 분해능)에 따라 구동되는 Timed 루프에 의해 실행됩니다. Timed 루프가 원하는 속도로 실행되도록 설정합니다.
- 모든 태스크를 소프트웨어 타이밍에 따른(필요할 때)로 설정합니다.
- Timed 루프는 이전 반복이 시간 내에 완료되었는지 여부 등 어플리케이션에 피드백을 제공합니다. 이는 "늦게 끝냄[i-1]" 노드를 통하여 이루어집니다.
샘플 블록다이어그램

노트
- Timed 루프를 사용하면 어플리케이션이 루프 안에서 주기를 조절할 수 있으며 컨트롤을 위해 다이나믹 타이밍 알고리즘을 구현할 수 있습니다.
- 우선순위가 낮은 프로세스는 Timed 루프가 다음 반복을 기다리는 동안 실행될 수 있습니다.
- 다른 소프트웨어 타이밍 방법에는 [기다림] VI와 [다음 ms 배수까지 기다림] VI (마이크로초 또는 밀리초 분해능)를 사용하는 방법 등이 있습니다. 이러한 방법에서는 어플리케이션이 지연되어도 피드백을 제공하지 않습니다.