• 필수 조건—I/O 태스크는 하드웨어 타이밍에 의한 작업을 지원하지 않습니다.
  • 솔루션—LabVIEW의 Timed 루프나 LabWindows/CVI의 비동기 타이머를 사용하여 소프트웨어 타이밍을 사용자의 시간에 결정적인 루프에 적용합니다. NI-DAQmx 태스크가 요청할 때 타이밍을 사용하도록 설정합니다.

    장점

    • 하드웨어 타이밍에 의하지 않은 작업으로 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 (마이크로초 또는 밀리초 분해능)를 사용하는 방법 등이 있습니다. 이러한 방법에서는 어플리케이션이 지연되어도 피드백을 제공하지 않습니다.