Timed 구조의 셋팅 설정하기 (Real-Time, Windows)
- 업데이트 날짜:2025-08-27
- 6분 (읽기 시간)
Timed 구조의 설정 대화 상자를 사용하여 Timed 구조의 데드라인, 타임아웃, 보조 타이밍 소스와 같은 고급 셋팅을 설정할 수 있습니다. 입력 노드를 더블 클릭하거나 입력 노드에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 입력 노드 설정을 선택하여 Timed 루프 설정, Timed 시퀀스 설정, 또는 프레임이 있는 Timed 루프 설정 대화 상자를 디스플레이합니다.
데드라인 설정하기
데드라인은 서브다이어그램 또는 프레임의 실행 시간으로 프레임의 시작에 상대적입니다. 데드라인을 사용하여 서브다이어그램 실행의 시간 제한 참조를 설정합니다. 프레임이 데드라인까지 완료되지 않을 경우, 다음 프레임의 왼쪽 데이터 노드는 늦게 끝냄? 출력에 참을 반환하고 계속 실행됩니다. 데드라인 값을 프레임 타이밍 소스와 같은 단위로 지정합니다.
다음 예제에서 Timed 시퀀스 구조의 첫번째 프레임은 데드라인 50으로 설정되었습니다. 데드라인은 서브다이어그램이 1 kHz 클럭의 50 Ticks, 또는 50 ms 이전에 완료되어야 함을 지정합니다. 그러나 프레임에 60 ms 기다림이 필요한 VI가 있으므로 프레임의 코드가 완료하려면 60 ms가 걸립니다. 프레임 실행이 지정된 데드라인을 충족시키지 못했기 때문에 두번째 프레임의 늦게 끝냄? 출력은 참을 반환합니다.
타임아웃 설정하기
타임아웃은 프레임이 실행 시작을 기다릴 수 있는 시간의 최대 길이를 밀리초로 지정합니다. 타임아웃 값은 반복의 시작에 상대적이거나 이전 프레임의 끝에 상대적입니다. 서브다이어그램의 실행이 지정된 타임아웃 값 전까지 시작되지 않을 경우, Timed 루프는 해당 프레임의 왼쪽 데이터 노드의 휴면 해제 이유 출력에 타임아웃을 반환합니다.
사용자는 디지털 에지 카운터나 태스크 소스로부터의 신호를 포함한 여러 종류의 NI-DAQmx 타이밍 소스를 이용하여 Timed 구조를 컨트롤하고 타임아웃을 지정합니다. 다음 예에서 Timed 시퀀스 구조의 두번째 프레임은 [DAQmx 타이밍 소스 생성] VI가 외부 디바이스로부터 펄스를 받을 때 실행됩니다. 외부 디바이스는 이상적인 조건 아래서는 50 ms 마다 펄스를 보내지만, 펄스 타이밍은 변할 수 있습니다. 두번째 프레임의 타임아웃 값 60 ms는 반복이 시작된 후 이 프레임이 시작할 때까지 60 ms 동안 대기할 수 있음을 나타냅니다. 두번째 프레임이 60 ms 전에 시작되지 않는 경우, 구조는 나머지 반복을 시간에 관계 없이 계속 실행하며 두번째 프레임은 왼쪽 데이터 노드의 휴면 해제 이유 출력에 타임아웃을 반환합니다.
Timed 구조에서 타임아웃이 발생할 경우 구조는 시간에 관계 없이 남은 반복를 계속해서 실행합니다. Timed 구조는 나머지 프레임의 이벤트 발생 원인 출력에 타임아웃을 반환합니다. 나머지 프레임이 제공하는 타이밍 정보는 타임아웃이 발생한 프레임의 타이밍 정보와 같습니다. Timed 루프가 다른 반복을 완료해야 하는 경우, 루프는 타임아웃이 발생한 같은 프레임에서 멈추고 원래 타임아웃 이벤트를 기다립니다.
Timed 구조 첫번째 프레임의 기본 타임아웃 값은 -1이며, 이는 서브다이어그램 또는 프레임의 시작을 무한히 기다림을 나타냅니다. 다른 프레임의 기본 타임아웃 값은 0이며, 이는 이전 프레임의 타임아웃 값이 변경되지 않음을 나타냅니다.
오프셋 설정하기
오프셋은 구조가 서브다이어그램 또는 프레임의 실행 시작을 기다리는 시간의 길이이며, Timed 구조의 시작에 상대적입니다. 오프셋은 구조 타이밍 소스의 절대 단위로 정의됩니다.
두 구조에 같은 타이밍 소스의 오프셋과 셋팅을 사용하여 서로 다른 Timed 구조의 위상을 정렬할 수 있습니다. 다음 블록다이어그램의 Timed 루프는 같은 1 kHz 타이밍 소스를 사용하고 500의 오프셋 값 t0을 가지므로 Timed 루프는 타이밍 소스가 반복의 실행을 시작하기 위해 트리거된 후 500 ms 동안 기다립니다.
Timed 루프의 마지막 프레임에서 오른쪽 데이터 노드를 사용하여 루프의 다음 반복에 대한 오프셋을 다이나믹하게 변경할 수 있습니다. 그러나 다음 반복에 대한 오프셋을 다이나믹하게 변경할 때, 값을 오른쪽 데이터 노드의 모드 입력에 연결하여 반드시 모드를 지정해야 합니다.
| 노트 오른쪽 데이터 노드를 사용하여 오프셋을 변경한 경우 모드 입력에 변경 없음을 연결할 수 없습니다. 모드 값을 반드시 선택해야 합니다. |
Timed 루프에 대한 오프셋을 설정하는 예에 대해서는 labview\examples\Structures\Timed Loop 디렉토리에 있는 Timed Loop Offset VI를 참조하십시오.
프로세서 할당하기
기본으로 LabVIEW는 자동으로 사용할 수 있는 프로세서를 할당하여 Timed 구조의 실행을 처리합니다. 그러나 보다 많은 실행 컨트롤을 위해 여러 프로세서에서 수동으로 Timed 구조를 로드할 수 있습니다.
Timed 루프 설정, 프레임이 있는 Timed 루프 설정, Timed 시퀀스 설정, 다음 프레임 타이밍 설정 또는 다음 반복 설정 대화 상자의 프로세서 지정 섹션의 모드 풀다운 메뉴에서 수동을 선택하면 Timed 구조를 처리하는 프로세서를 수동으로 설정할 수 있습니다. 또한 0에서 255 사이의 정수를 프로세서 필드에 입력해서 실행을 처리하는데 사용할 프로세서를 지정해야 하는데, 여기서 0은 시스템에서 처음으로 사용 가능한 프로세서를 나타냅니다. 지정된 범위 밖의 숫자를 입력하려고 하면 LabVIEW가 강제적으로 0 부터 255 사이의 숫자로 만듭니다. 사용 가능한 프로세서의 개수를 넘는 숫자를 입력하는 경우, 런타임 에러가 발생하고 Timed 구조는 실행되지 않습니다.
모드 풀다운 메뉴에서 자동을 선택하는 경우 LabVIEW가 자동으로 프로세서를 구조에 할당하고 프로세서 값은 자동으로 -2로 설정됩니다. 프레임 또는 이후 반복의 모드 풀다운 메뉴에서 변경 없음을 선택하는 경우, LabVIEW는 이전 프레임 또는 반복을 처리했던 프로세서와 같은 프로세서를 사용하고 프로세서 값은 자동으로 -1로 설정됩니다.
또한 값을 Timed 구조 또는 Timed 구조 프레임의 입력 노드의 프로세서 입력에 연결하여 프로세서 할당을 설정할 수 있습니다.
수동 프로세스 할당을 통한 Timed 구조의 성능 최적화에 대해 더 자세히 알려면 여러 CPU 시스템에서 RT 어플리케이션 최적화하기를 참조하십시오.
보조 타이밍 소스 설정하기
보조 타이밍 소스를 사용하여 Timed 구조의 서브다이어그램 또는 프레임을 구조 자체와 다른 클럭 소스로 설정할 수 있습니다. Timed 루프 설정, 프레임이 있는 Timed 루프 설정 또는 Timed 시퀀스 설정 대화 상자의 프레임 타이밍 소스 섹션을 사용하여 보조 타이밍 소스를 선택합니다.
Timed 구조는 다음 보조 타이밍 소스를 지원합니다:
- 시퀀스 또는 루프의 타이밍 소스를 사용―Timed 구조와 같은 타이밍 소스를 사용하여 프레임의 타이밍을 정합니다.
- 아래의 내장된 소스 사용―별도의 내장 타이밍 소스를 사용하여 프레임의 타임을 정합니다.
- 1 kHz 클럭 <구조 시작 시 리셋>―1 kHz 클럭과 비슷한 타이밍 소스로 Timed 구조의 매 반복이 끝난 후 0으로 리셋합니다.
- 1 MHz 클럭 <구조 시작 시 리셋>―1 MHz 클럭과 비슷한 타이밍 소스로 Timed 구조의 매 반복이 끝난 후 0으로 리셋합니다.
Timed 구조의 절대 시간 및 상대 시간
지정된 타이밍 소스는 Timed 구조 실행을 제어합니다. 그러나 모든 Timed 구조 설정 옵션이 타이밍 소스의 절대값을 참조하는 것은 아닙니다. 프레임을 가지는 Timed 루프와 프레임이 있는 Timed 시퀀스 구조에서 일부 설정 옵션은 이전 프레임 또는 현재 프레임의 타이밍과 관련이 있습니다. 프레임 실행의 시작이나 끝을 참조하는 옵션은 상대 시간을 사용하는 반면 타이밍 소스를 참조하는 옵션은 절대 시간을 참조합니다.
Timed 구조에서 오프셋은 절대 시간이 제어하며 예상되는 시작, 예상되는 종료, 실제 시작, 실제 종료와 같은 출력은 프레임과 반복 타이밍의 절대 시간 단위로 계산됩니다. 시작 시간, 데드라인, 각 프레임의 타임아웃은 상대 시간이 제어합니다. 시작 시간과 타임아웃은 이전 프레임 실행 시작에 상대적이며 데드라인은 현재 프레임 시작에 상대적입니다.
다음 블록다이어그램에서, 1 kHz 클럭이 제어하고 프레임이 있는 Timed 루프는 주기가 1000 ms이며 오프셋은 100 ms입니다. 오프셋은 절대 시간이 제어하므로, 루프는 타이밍 소스 클럭이 100 ms, 1100 ms, 2100 ms, 3100 ms 등에 도달할 때 반복되어서 루프 실행이 완료될 때까지 지속됩니다.
| 노트 늦어진 Timed 루프는 Timed 루프의 모드에 따라 절대 또는 상대 시간을 사용합니다. |
| 1 | 오프셋 | 절대 시간―루프 타이밍 소스를 참조 |
| 2 | 데드라인 | 상대 시간―두번째 프레임의 시작을 참조 |
| 3 | 시작 | 상대 시간―첫번째 프레임의 시작을 참조 |
| 4 | 타임아웃 | 상대 시간―마지막 프레임의 시작을 참조 |
Timed 루프의 두번째 프레임은 시작 시간이 75 ms입니다. 시작 시간이 이전 프레임의 실행 시작에 상대적이기 때문에, 프레임 실행은 첫번째 프레임이 실행된 시간부터 75 ms가 지난 후에 시작됩니다. 타이밍 소스가 관리하는 절대 시간에 따르면 두번째 프레임의 시작 시간은 첫번째 반복에서 175 ms이며, 이는 첫번째 프레임이 타이밍 소스 클럭에서 100 ms에 시작된 후 두번째 프레임이 75 ms가 지나야 실행되기 때문입니다.
또한 프레임의 타임아웃 입력은 2000 ms입니다. 타임아웃은 이전 프레임이 실행을 시작한 후 또 다른 프레임의 시작을 기다리는 최대 시간을 설정합니다. 첫번째 프레임의 실행이 시작된 후 2000 ms 내에 두번째 프레임이 실행을 시작하지 않을 경우, LabVIEW는 시간에 관계 없이 남은 반복을 실행하고 왼쪽 데이터 노드의 휴면 해제 이유에 타임아웃을 반환합니다. 타임아웃인 2000 ms가 경과하기 전에 두번째 프레임이 실행을 시작하는 경우, 데드라인 150 ms는 프레임의 실행 소요 시간에 제한을 둡니다. 두번째 프레임이 실행을 시작한 순간부터 프레임이 늦게 끝냄 인디케이터에 참값을 출력하기 전까지 150 ms의 시간이 소요될 수 있습니다.