MoonNote

반응형
     

 

 

 

이번 시간에는 반복문에 대해서 알아보겠습니다. 반복문이란 프로그래밍 언어에서 루프(Loop)라고 부르기도 하며 지정한 횟수만큼 또는 특정 정지 조건을 만족할 때까지 코드를 계속 반복 실행하는 구조를 말합니다. 대표적으로 For 루프와 While 루프가 있는데 이번 포스팅에서는 For 루프에 대해서 먼저 알아보도록 하겠습니다.

 

For 루프(For Loop)

랩뷰에서 For 루프는 함수 팔레트 >> 프로그래밍 >> 구조 >> For 루프를 선택하시면 생성할 수 있습니다.

랩뷰(LabVIEW) For 루프 위치

 

케이스 구조와 마찬가지로 For 루프를 선택하고 블록다이어그램에서 원하는 크기만큼 드래그하면 아래의 이미지처럼 생성이 됩니다. For 루프의 기본 구성은 총 2가지로(카운트 설정, 반복 횟수) 되어 있으며 아래의 이미지와 같이 생성됩니다.

랩뷰(LabVIEW) For 루프

① 카운트 터미널 : 몇 회 반복할지 지정하는 터미널입니다.

반복 횟수 :현재 반복하고 있는 횟수 정보를 반환하는 인디케이터 터널입니다.(시작 번호는 0부터 시작)

 

개인적으로 For 루프를 처음 보았을 때 코드 작성 공간에서도 그래픽적인 요소를 굉장히 신경 썼구나라고 느꼈었는데, 보면 종이를 여러 장 겹쳐 놓은 듯한 이미지로 좌측 상단에 지정한 횟수만큼 N번 반복하기 위한 터미널 설정이 있는 것을 볼 수가 있습니다. 순서도(Flow Chart)를 그려서 생각해보면 다음과 같은 로직으로 실행됩니다.

LabVIEW For 문 및 순서도(Flow Chart)

 

For 루프 구조 사용 예시

For 루프를 통하여 난수를 한번 10회동안 반복 생성하고 인디케이터로 디스플레이해보겠습니다. 먼저 루프 카운트는 10으로 설정하여 10회 반복하겠다라고 설정해주시고 함수 팔레트 >> 프로그래밍 >> 숫자형 >> 난수를 선택하여 For 루프 안쪽에 놓아줍니다. 완성된 코드는 아래와 같습니다.

LabVIEW 10회 난수 생성

 

이제 실행을 시키면 되긴한데,,실행하면 바로 순식간에 코드가 끝나버릴 겁니다. 반복문을 사용하게 되면 얼마의 주기마다 코드를 실행할지 타이밍 설정을 할 수 있는데요. 현재 따로 타이밍 지정을 하지 않고 기능 코드만 작성하다 보니 아무래도 PC가 처리할 수 있는 CPU 코어의 최대 속도로 10회 반복하고 끝나버려 우리가 10번 실행했는지 인지하기 어렵게 되죠. 반복문에 대한 포스팅이 끝나면 자세히 타이밍 함수 사용 유무에 따른 리소스에 관해 다루어보도록 하겠습니다. 타이밍 함수는 함수 팔레트 >> 프로그래밍 >> 타이밍 팔레트에서 루프 타임을 지정하는 함수를 찾으실 수 있는데요. 루프 타임 설정은 ¹[기다림(ms)] 함수²[다음 ms 배수까지 기다림] 함수 2개 중 하나를 사용하고 본문에서는 [기다림(ms)] 함수를 사용하여 실행해보겠습니다.

 

LabVIEW 타이밍 함수 팔레트

 

[기다림(ms)] 함수를 선택하고 루프 안에 놓은 다음 좌측 입력 터미널 쪽에 1000이라고 숫자 값을 입력시켜주면 1000ms마다 돌리겠다는 의미로 10회 반복하는데 약 10초가 걸리게 됩니다. 아래의 이미지는 타이밍 설정된 코드 및 프런트 패널에 디스플레이되는 실행 결과입니다.

 

[기다림(ms)] 함수 추가 코드

 

For문 10회 반복 실행 결과

 

반복 횟수 터미널에서도 한번 인디케이터를 생성하여 현재 돌아가고 있는 사이클 정보를 살펴보겠습니다.

 

i 박스 부분에 마우스 커서를 올려두시고 터미널이 보일 때 우클릭 >> 생성 >> 인디케이터 생성을 눌러줍니다.

반복 횟수(Iteration) 인디케이터 생성

실행 결과입니다. 보시면 시작 숫자가 0부터 시작하는 것을 볼 수 있는데 사람은 1부터 보통 숫자를 세지만 기계는 0부터 시작한다라고 생각하시면 될 듯합니다.

10회 반복시 iteration 정보

 

이상 LabVIEW For Loop에 대하여 알아보았습니다.

 

 

 

 

 

 

 

※ 이 글이 도움이 되었다면 "🤍공감" 버튼을 클릭해주세요. 클릭 한번이 글 쓰는데 큰 힘이 됩니다.

공유하기

facebook twitter kakaoTalk kakaostory naver band