시퀀스 구조를 언제 사용할지 결정하기
- 업데이트 날짜:2025-08-27
- 2분 (읽기 시간)
시퀀스 구조는 실행의 순서를 강제로 지정하고 병렬 작업을 막습니다. 예를 들어, PXI, GPIB, 시리얼 포트 및 DAQ 디바이스와 같은 I/O 장치를 사용하는 비동기 작업은 시퀀스 구조가 금지하지 않는다면 다른 작업과 동시에 실행될 수 있습니다.
이러한 경우, LabVIEW의 고유한 병렬 처리 기능을 활용할 필요가 있습니다. 다음 중 한 가지 방법으로 시퀀스 구조의 지나친 사용을 피합니다:
- 실행 순서를 컨트롤 할 때는 노드 사이의 데이터 의존성을 이용하는 방법을 고려하십시오. 예를 들어, 에러 I/O와 같은 흐름 파라미터를 사용하여 실행 순서를 컨트롤할 수 있습니다.
- 케이스 구조와 While 루프를 사용합니다. 다음 그림과 같이 시퀀스 구조의 여러 프레임에서 인디케이터를 업데이트할 수는 없습니다.
이전 블록 다이어그램에서 테스트 어플리케이션에 사용된 VI에는 진행 중인 현재 테스트의 이름을 표시하는 상태 인디케이터가 있습니다. 각 테스트가 다른 프레임에서 호출된 SubVI이면, 다층 시퀀스 구조에서 보이는 깨진 와이어를 통해 알 수 있듯이 각 프레임으로부터 인디케이터를 업데이트할 수 없습니다. 다층 시퀀스 구조의 모든 프레임의 실행이 끝난 다음에만 내부 데이터 값이 구조 밖으로 빠져 나올 수 있으므로, 오직 하나의 프레임에서만 상태 인디케이터에 값을 할당할 수 있습니다. 대신에, 다음 블록다이어그램에서처럼 케이스 구조와 While 루프를 사용합니다.
케이스 구조의 각 케이스는 시퀀스 구조의 프레임에 대응됩니다. While 루프가 반복하면서 각 케이스를 순차적으로 실행합니다. 상태 인디케이터는 각 케이스에 대한 VI의 상태를 디스플레이합니다. 각 케이스의 실행이 끝나면 구조 밖으로 데이터가 전달되므로 대응하는 SubVI를 호출하기 전에 상태 인디케이터가 바로 업데이트됩니다. 시퀀스 구조와 달리, 케이스 구조는 모든 케이스가 While 루프를 종료할 수 있는 데이터를 전달할 수 있습니다. 예를 들어, 첫 테스트를 실행하는 중에 에러가 발생하면 케이스 구조가 거짓을 조건 터미널에 전달하여 루프를 끝냅니다. 그러나 시퀀스 구조는 에러가 발생하더라도 전체 프레임을 실행해야 합니다.