시퀀스 구조는 실행의 순서를 강제로 지정하고 병렬 작업을 막습니다. 예를 들어, PXI, GPIB, 시리얼 포트 및 DAQ 디바이스와 같은 I/O 장치를 사용하는 비동기 작업은 시퀀스 구조가 금지하지 않는다면 다른 작업과 동시에 실행될 수 있습니다.

이러한 경우, LabVIEW의 고유한 병렬 처리 기능을 활용할 필요가 있습니다. 다음 중 한 가지 방법으로 시퀀스 구조의 지나친 사용을 피합니다:

  • 실행 순서를 컨트롤 할 때는 노드 사이의 데이터 의존성을 이용하는 방법을 고려하십시오. 예를 들어, 에러 I/O와 같은 흐름 파라미터를 사용하여 실행 순서를 컨트롤할 수 있습니다.
  • 케이스 구조와 While 루프를 사용합니다. 다음 그림과 같이 시퀀스 구조의 여러 프레임에서 인디케이터를 업데이트할 수는 없습니다.
    테스트 상태 업데이트를 보여주는 두 개의 프레임이 있는 시퀀스 구조.
    이전 블록 다이어그램에서 테스트 어플리케이션에 사용된 VI에는 진행 중인 현재 테스트의 이름을 표시하는 상태 인디케이터가 있습니다. 각 테스트가 다른 프레임에서 호출된 SubVI이면, 다층 시퀀스 구조에서 보이는 깨진 와이어를 통해 알 수 있듯이 각 프레임으로부터 인디케이터를 업데이트할 수 없습니다. 다층 시퀀스 구조의 모든 프레임의 실행이 끝난 다음에만 내부 데이터 값이 구조 밖으로 빠져 나올 수 있으므로, 오직 하나의 프레임에서만 상태 인디케이터에 값을 할당할 수 있습니다. 대신에, 다음 블록다이어그램에서처럼 케이스 구조와 While 루프를 사용합니다.
    케이스 구조와 While 루프를 사용하여 테스트 상태를 업데이트하는 LabVIEW 블록다이어그램.
    케이스 구조의 각 케이스는 시퀀스 구조의 프레임에 대응됩니다. While 루프가 반복하면서 각 케이스를 순차적으로 실행합니다. 상태 인디케이터는 각 케이스에 대한 VI의 상태를 디스플레이합니다. 각 케이스의 실행이 끝나면 구조 밖으로 데이터가 전달되므로 대응하는 SubVI를 호출하기 전에 상태 인디케이터가 바로 업데이트됩니다. 시퀀스 구조와 달리, 케이스 구조는 모든 케이스가 While 루프를 종료할 수 있는 데이터를 전달할 수 있습니다. 예를 들어, 첫 테스트를 실행하는 중에 에러가 발생하면 케이스 구조가 거짓을 조건 터미널에 전달하여 루프를 끝냅니다. 그러나 시퀀스 구조는 에러가 발생하더라도 전체 프레임을 실행해야 합니다.