다음 반복으로 이전 반복의 값을 루프를 통해 전달하고자 할 때 시프트 레지스터를 사용합니다. 다음과 같이 시프트 레지스터는 루프 경계의 양 옆에 서로 반대인 터미널 쌍으로 나타납니다.

루프 오른쪽의 터미널에는 윗방향 화살표가 있고 반복이 끝날 때마다 데이터를 저장합니다. LabVIEW는 시프트 레지스터의 오른쪽 터미널에 저장된 데이터를 왼쪽 터미널로 전송합니다. 그 후에는 루프가 왼쪽 터미널에서 받은 데이터를 다음 반복의 초기값으로 사용합니다. 이 과정은 루프의 모든 반복이 실행될 때까지 계속됩니다. 루프가 실행된 후에 루프의 오른쪽의 터미널은 시프트 레지스터에 저장된 마지막 값을 반환합니다.

시프트 레지스터는 모든 데이터 타입을 전달할 수 있으며, 시프트 레지스터에 연결된 첫 번째 객체와 일치하도록 자동으로 데이터의 타입을 변환시킵니다. 각 시프트 레지스터의 터미널에 연결하는 데이터는 동일 타입이어야 합니다. 에러 클러스터가 병렬 For 루프의 시프트 레지스터에 연결되면 시프트 레지스터가 에러 레지스터로 변환됩니다.

한 루프에 여러 개의 시프트 레지스터를 놓을 수 있습니다. 루프 속에서 여러 개의 실행이 이전 루프 값을 사용해야 될 경우, 다음 블록다이어그램과 같이 여러 시프트 레지스터를 사용하여 구조 내 각기 다른 프로세스의 데이터 값을 저장합니다.

이전 블록다이어그램에서 오른쪽 위 시프트 레지스터 터미널은 첫번째 반복에서 2, 02의 합을 추가적인 작업의 두번째 반복을 위해 왼쪽 위 터미널에 초기값으로 전달합니다. 오른쪽 아래 터미널은 첫번째 반복에서 12의 곱인 2를 곱셈 작업의 두번째 반복을 위해 왼쪽 아래 터미널에 초기값으로 전달합니다.

두번째 반복은 22를 더하고 세번째 반복을 위해 왼쪽 위 터미널에 결과인 4를 전달합니다. 또한 두번째 반복도 22를 곱하고 세번째 반복을 위해 왼쪽 아래 터미널에 결과인 8을 전달합니다.

열번 반복 후 오른쪽 위 터미널은 더하기 작업의 마지막 결과를 위쪽 인디케이터에 전달하고 오른쪽 아래 터미널은 곱하기 작업의 마지막 결과를 아래쪽 인디케이터에 전달합니다.

데이터 통신 방법