Timed 루프 및 프레임이 있는 Timed 루프 설정하기 (Real-Time, Windows)
- 업데이트 날짜:2025-08-27
- 5분 (읽기 시간)
Timed 루프의 실행 방법을 설정하려면, Timed 루프 설정 또는 프레임이 있는 Timed 루프 설정 대화 상자를 사용합니다. 이 대화 상자를 디스플레이하려면, 입력 노드를 더블 클릭하거나 노드에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 입력 노드 설정을 선택합니다. 이 대화 상자를 사용하여 타이밍 소스 및 주기를 지정하고 고급 옵션을 설정할 수 있습니다.
또한 데이터를 입력 노드에 연결하여 Timed 루프의 옵션을 설정할 수 있습니다. 기본설정된 경우, Timed 루프의 입력 노드는 사용 가능한 입력 터미널을 모두 디스플레이하지는 않습니다. 입력 노드의 크기를 조정하거나 노드에서 마우스 오른쪽 버튼을 클릭하고 바로 가기 메뉴를 사용하여 숨겨진 터미널을 디스플레이할 수 있습니다.
Timed 루프 사용 요령
다음 리스트는 Timed 루프 사용에 대한 추가적인 정보를 제공합니다.
- While 루프와는 달리 Timed 루프의 조건 터미널은 연결할 필요가 없습니다.
- 데이터를 오른쪽 데이터 노드에 연결하여 다이나믹하게 다음 루프 반복의 옵션을 설정할 수 있습니다.
- Timed 루프에 시프트 레지스터를 추가하여 현재 반복에서 다음 반복으로 데이터를 전달할 수 있습니다.
- 예상과 다른 타이밍 동작을 피하려면, 시간 결정적인 우선순위의 실행이 설정된 VI와 Timed 루프를 동일한 블록다이어그램에 추가하지 않습니다.
프레임이 있는 Timed 루프 사용 요령
다음 리스트는 프레임이 있는 Timed 루프 사용에 대한 추가적인 정보를 제공합니다.
- 데이터를 프레임이 있는 Timed 루프 설정의 입력 노드에 연결하거나, 입력 노드에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 입력 노드 설정을 선택하여 프레임이 있는 Timed 루프 설정 대화 상자를 디스플레이하고 옵션 값을 입력할 수 있습니다.
- 구조의 경계에서 마우스 오른쪽 버튼을 클릭한 후 프레임을 추가, 삭제, 병합할 수 있습니다.
- 각 프레임이 한 번씩만 실행되도록 하려는 경우, Timed 루프 구조 경계에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 Timed 시퀀스로 대체를 선택합니다.
Timed 루프를 사용하는 예제는 labview\examples\Structures\Timed Loop\Timed Loop.lvproj를 참조하십시오.
다음 프레임 설정하기
현재 프레임의 오른쪽 데이터 노드를 더블 클릭하거나 노드에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 입력 노드 설정을 선택하여 다음 프레임 타이밍 설정 대화 상자를 디스플레이합니다. 이 대화 상자를 사용하여 다음 프레임에 대한 시작 시간, 우선순위, 데드라인, 타임아웃을 설정할 수 있습니다.
시작 시간은 다음 프레임이 실행을 시작하는 시간을 지정합니다. 이전 프레임의 시작에 상대적인 시작 시간 값을 프레임 타이밍 소스의 절대 단위로 지정해야 합니다. 시작 텍스트 박스에 값을 입력하여 시작 시간을 지정합니다.
또한 프레임의 오른쪽 데이터 노드의 입력 터미널을 사용하여 Timed 루프의 다음 반복에 대한 옵션을 다이나믹하게 설정하거나 다음 프레임의 옵션을 다이나믹하게 설정할 수 있습니다. 기본설정된 경우, Timed 루프의 오른쪽 데이터 노드는 사용 가능한 입력 터미널을 모두 디스플레이하지는 않습니다. 오른쪽 데이터 노드의 크기를 조정하거나 노드에서 마우스 오른쪽 버튼을 클릭하고 바로 가기 메뉴를 사용하여 숨겨진 터미널을 디스플레이할 수 있습니다.
Timed 루프의 주기 설정하기
주기는 Timed 루프의 반복 사이의 시간의 길이로 구조 타이밍 소스의 절대 단위로 지정됩니다.
다음 블록다이어그램의 Timed 루프는 기본 1 kHz 타이밍 소스를 사용합니다. 루프 A의 주기(dt)는 1,000 ms이고 루프 B의 주기는 2,000 ms입니다. 이는 루프 A는 1초마다 실행되고 루프 B는 2초마다 실행된다는 뜻입니다. 두 Timed 루프 모두 여섯 번 반복한 후 실행을 정지합니다. 루프 A는 6초 후 실행을 멈추고, 루프 B는 12초 후 실행을 멈춥니다.
Timed 루프의 서브다이어그램 또는 프레임을 가진 Timed 루프의 서브다이어그램은 각 반복에서 지정된 주기 전에 실행이 완료되어야 합니다. 서브다이어그램이 지정된 주기 전에 실행이 완료되지 않는 경우, Timed 루프는 이어지는 반복의 첫번째 프레임에서 출력 노드의 늦게 끝냄? [i-1] 출력 또는 왼쪽 데이터 노드의 늦게 끝냄? [i-1] 출력에서 참을 반환합니다.
Timed 루프 또는 프레임을 가진 Timed 루프의 서브다이어그램이 루프의 주기보다 먼저 실행이 완료되는 경우, Timed 루프는 휴면하게 되고 다른 코드나 구조가 블록다이어그램에서 실행되도록 허용합니다.
Timed 루프의 모드 설정하기
때때로 Timed 루프의 반복이 지정하는 시간보다 늦게 실행될 수도 있습니다. Timed 루프의 모드에 따라 루프가 늦은 실행을 처리하는 방법이 결정됩니다. Timed 루프 설정 또는 프레임이 있는 Timed 루프 설정 대화 상자의 늦은 반복에 대한 동작 섹션의 옵션을 사용하여 Timed 루프가 반복의 늦은 실행을 처리하는데 사용하는 모드를 지정합니다. 또한, 입력 노드의 모드 입력을 사용하여 Timed 루프의 모드를 지정할 수 있습니다.
다음 방법으로 Timed 루프의 늦은 실행을 처리할 수 있습니다.
- LabVIEW는 원래 수립된 스케줄대로 실행을 정렬할 수 있습니다.
- LabVIEW는 현재 시간에서 시작되는 새 스케줄을 정의할 수 있습니다.
- Timed 루프는 놓친 반복을 처리할 수 있습니다.
- Timed 루프는 놓친 반복을 뛰어넘을 수 있습니다.
예를 들어, 주기가 100 ms이고 오프셋이 30 ms인 Timed 루프를 설정하는 경우, 첫번째 루프 반복은 첫 타이밍 소스가 실행을 시작한지 30 ms 후에 실행되며 130 ms, 230 ms, 330 ms 등 100 ms의 배수로 실행되리라 예상합니다. 그러나 Timed 루프의 첫번째 실행은 240 ms가 지난 후 발생할 수 있습니다. 지정한 스케줄에서 다른 Timed 루프 또는 하드웨어 디바이스를 이미 실행하고 있을 수도 있으므로, 늦은 Timed 루프를 이미 실행 중인 글로벌 스케줄에 따라 정렬합니다. 이것은 Timed 루프가 최대한 빠르게 지정한 스케줄에 정렬할 수 있음을 의미합니다. 이 경우, 다음 Timed 루프 반복은 330 ms에서 실행되고 100 ms의 배수인 430 ms, 530 ms, 등에서 계속 실행됩니다. Timed 루프를 다른 Timed 루프나 다른 하드웨어 디바이스와 함께 정렬하는 것이 중요하지 않은 경우, Timed 루프는 즉시 실행되고 현재 시간을 실제 오프셋으로 사용할 수 있습니다. 이 경우, 다음 루프 반복은 240 ms, 340 ms, 440 ms와 같이 실행됩니다.
Timed 루프가 늦게 실행되는 경우, 다른 Timed 루프 또는 하드웨어 디바이스가 생성한 데이터를 잃어버릴 수 있습니다. 예를 들어, Timed 루프가 두 반복을 놓치고 현재 주기의 데이터 중 일부를 놓칠 경우, 버퍼는 놓친 반복의 데이터를 보유할 수 있습니다. Timed 루프가 지정한 스케줄에 따라 정렬하기 전에 놓친 데이터를 처리하도록 설정할 수도 있습니다. 그러나 놓친 반복을 처리하는 Timed 루프는 지터를 발생시킵니다. 지터는 루프 사이클 시간과 사용자가 지정한 시간 사이의 차이입니다. 놓친 데이터를 처리하지 않으려는 경우, Timed 루프는 루프 반복이 놓친 버퍼 안의 오래된 데이터를 무시하고, 다음 주기와 다음 반복에서 사용 가능한 데이터와 같은 최신 데이터만을 처리합니다.
설정 대화 상자를 사용하여 모드 설정하기
기본적으로, Timed 루프는 놓친 반복에서 생성된 모든 데이터를 버리고 원래 스케줄을 유지합니다. 이 모드 셋팅을 디스플레이하면, 입력 노드의 모드 입력 아이콘이 버림의 경우 D와 함께, 유지의 경우 M과 함께 나타납니다. Timed 루프 설정 또는 프레임이 있는 Timed 루프 설정 대화 상자의 놓친 주기 버림 확인란에서 확인 표시를 제거하여 놓치거나 늦은 루프 반복이 생성한 데이터를 처리합니다. 이 모드 셋팅을 디스플레이하면, 입력 노드의 모드 입력 아이콘은 프로세스를 나타내는 P와 함께 나타납니다. Timed 루프 설정 또는 프레임이 있는 Timed 루프 설정 대화 상자에 있는 원래 위상 유지 확인란에서 확인 표시를 제거하여 Timed 루프가 첫번째 반복에 기초한 새 일정에 맞춰 실행되도록 Timed 루프를 설정합니다.
입력 노드를 사용하여 모드 설정하기
입력 노드의 모드 입력을 사용하여 Timed 루프의 모드를 설정합니다. 모드 입력에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 생성≫상수 또는 생성≫컨트롤을 선택하여 열거형 상수나 컨트롤을 생성합니다. 이 상수나 컨트롤을 사용하여 모드를 선택할 수 있습니다.
입력 노드의 모드 입력을 사용하여 프로그램적으로 Timed 루프의 모드를 변경하거나 Timed 루프 설정 대화 상자의 현재 모드 설정을 유지합니다. 열거형 상수나 컨트롤에서 변경 없음을 선택하여 현재 모드 설정을 유지하거나, 옵션을 선택하여 Timed 루프의 늦거나 놓친 반복을 처리합니다.
Timed 루프에 대한 모드를 설정하는 예에 대해서는 labview\examples\Structures\Timed Loop에 있는 Timed Loop Mode VI를 참조하십시오.