Timed 루프를 사용한 하드웨어 타이밍에 의한 동시 업데이트 I/O(LabVIEW 경우)
- 업데이트 날짜:2025-12-03
- 4분 (읽기 시간)
장점
- 타이밍 소스를 사용하면 I/O 신호(샘플 클럭 신호 등)를 지정하여 Timed 루프 반복의 실행을 트리거할 수 있습니다.
- 태스크의 루프 컨트롤과 같은 타이밍 소스는 지연 확인을 엄격히 실시하여 여러 아날로그 채널이 멀티플렉스되고 샘플 수집되는 동안 다른 스레드가 실행되도록 허용합니다.
- Timed 루프는 반복이 시간 내에 완료되었는지 여부에 대해 피드백을 제공합니다.
- 다른 I/O 하드웨어 서브시스템을 사용하여 이 방식을 여러 Timed 루프에까지 확장함으로써 여러 속도 어플리케이션을 구현할 수 있습니다.
제약
- 일반 LabVIEW While 루프와 비교할 때 오버헤드가 다소 증가합니다.
- 워밍업 반복을 처리할 추가적인 코드가 필요합니다.
샘플 어플리케이션―Timed 루프를 사용한 하드웨어 타이밍에 의한 동시 업데이트 I/O(LabVIEW 경우)
이러한 종류의 어플리케이션의 예제는 일정한 개수의 아날로그 입력 채널에서 샘플을 읽고, 컨트롤 알고리즘(PID 등)을 사용하여 데이터를 프로세스하고, 새로운 컨트롤 값을 아날로그 출력 채널에 쓰는 아날로그 컨트롤 루프입니다.
태스크의 루프 컨트롤 타이밍 소스로 이러한 어플리케이션을 생성할 수 있습니다. 태스크의 루프 컨트롤 타이밍 소스는 아날로그 입력 태스크의 샘플 클럭 신호를 사용합니다. 이렇게 되면 해당 샘플 클럭과 관련된 모든 태스크의 지연을 철저하게 확인할 수 있습니다.
또한 태스크의 루프 컨트롤 타이밍 소스를 사용하면 샘플 클럭 이벤트가 처리되는 시간과 Timed 루프가 실행을 시작하는 시간 사이의 지연을 지정할 수 있습니다. 이러한 지연, 즉 휴면 시간은 아날로그 입력 샘플이 멀티플렉스되고 디지털화되기를 기다리는 동안 Timed 루프 내에서 DAQmx 읽기 함수/VI가 CPU 시간을 100% 사용하지 않도록 합니다.
타이밍 다이어그램
LabVIEW 예제―Timed 루프를 사용한 하드웨어 타이밍에 따른 동시 업데이트 I/O
- Timed 루프에대해 태스크에서 컨트롤 루프 타이밍 소스를 생성합니다. 이 신호는 Timed 루프의 실행을 주도하는 타임베이스의 역할을 합니다.
- Timed 루프는 이전 반복이 시간 내에 완료되었는지 여부 등 어플리케이션에 피드백을 제공합니다. 이는 "늦게 끝냄[i-1]" 노드를 통하여 이루어집니다.
- 루프의 첫번째 반복에서 발생할 수 있는 프로세서 캐쉬 및 기타 이벤트의 영향을 없애기 위해 몇 번의 워밍업 반복을 실행합니다.
샘플 블록다이어그램

- 태스크의 루프 컨트롤 타이밍 소스를 사용할 때 [DAQmx 읽기] VI는 암시적으로 폴링 모드로 설정됩니다. 폴링 모드를 사용하면 Timed 루프 내의 인터럽트로 인한 추가적인 스케줄 오버헤드를 방지할 수 있습니다.
- DAQmx 타이밍 프로퍼티를 통해 수동으로 아날로그 입력 변환 속도를 증가시킬 수 있습니다. 이렇게 하면 요청된 샘플 개수를 변환하는데 소요되는 시간을 감소시킬 수 있습니다. 전체 데이터 수집 시스템의 최소 설정 타임 스펙을 반드시 고려해야 신호 저하와 간섭을 방지할 수 있습니다.
- 이러한 태스크에는 [다음 샘플 클럭 기다림] VI를 사용하지 마십시오.
- 우선순위가 낮은 다른 Timed 루프를 포함, 우선순위가 낮은 프로세스는 Timed 루프가 다음 반복을 기다리는 동안 실행될 수 있습니다.
- 우선순위가 낮은 스레드가 추가적인 처리 시간을 요하는 여러 채널 컨트롤 어플리케이션을 최적화하려면 [DAQmx 타이밍 소스 생성] VI의 휴면 시간(마이크로초) 파라미터에 0이 아닌 값을 연결합니다. 0이 아닌 값을 연결하면 아날로그 입력 샘플을 변환하는데 소요되는 시간 동안 다른 스레드가 통신 또는 디스크에 로깅 등 다른 태스크를 수행할 수 있도록 허용합니다.
- 어플리케이션의 전반적인 속도에 영향을 미치지 않고도 설정할 수 있는 최대 휴면 시간은 수집되는 아날로그 채널의 개수, 샘플 변환 속도, 시스템 스펙 등 여러가지 요소에 따라 달라집니다.
다음 다이어그램은 여러 채널 설정에서 유휴 시간의 양이 가능한 최대 속도에 미치는 영향 및 우선순위가 낮은 스레드가 이러한 속도로 실행할 수 있는 작업의 양을 보여줍니다.

*아래의 기준 설정을 참조하십시오.
이 그래프는 특정한 하드웨어와 소프트웨어 설정을 사용하여 8 채널을 수집할 때 유휴 시간의 양이 0에서 5 µs로 증가하자마자 최대 가능 속도가 감소하는 것을 보여줍니다. 그러나 12 및 16 채널 설정의 경우는 그렇지 않습니다. 이 때에는 유휴 시간의 양을 각각 10과 15 µs로 증가시켜도 최대 가능 I/O 속도에 눈에 띄는 변화가 일어나지 않습니다. 12 및 16 채널의 경우, 추가적인 휴면 간격을 주면 다른 스레드가 어플리케이션의 전반적인 I/O 속도에 영향을 미치지 않고도 더욱 많은 작업(아래의 정의 참조)을 수행할 수 있습니다.
기준 설정
- 하드웨어 설정:
- NI PXI-8196 RT 컨트롤러
- NI PXI-6070 E 시리즈 MIO 디바이스
- NI PXI-6723 아날로그 출력 디바이스
- 소프트웨어 설정:
- LabVIEW Real-Time 8.0
- NI-DAQmx 8.0
- 이더넷 드라이버를 폴링 모드로 설정
- 기준 세부사항:
- 작업 단위는 위의 샘플 블록 다이어그램에서 설명된 I/O Timed 루프가 병렬로 실행되는 동안 일반적인 우선순위의 루프가 부호없는 64비트 정수를 증가시킬 수 있는 횟수로 정의됩니다.
- 아날로그 입력 변환은 명시적으로 설정되지 않습니다. 이는 DAQmx 드라이버가 채널 개수와 바람직한 샘플 클럭 속도를 바탕으로 이를 자동으로 계산함을 의미합니다.