그래픽 프로그래밍

이 섹션에 포함된 내용

 

비디오: LabVIEW의 데이터 흐름 프로그래밍

LabVIEW는 데이터 흐름 모델에 따라 VI를 실행합니다. 블록다이어그램 노드는 필요한 모든 입력을 받아야 실행될 수 있습니다. 노드가 실행되면, 출력 데이터를 생성한 후 이를 데이터 흐름 경로에 따라 다음 순서에 있는 노드로 전달합니다. 노드를 통과하는 데이터의 흐름은 블록다이어그램에 있는 VI 및 함수의 실행 순서를 결정합니다.

Visual Basic, C++, Java 및 대부분의 텍스트 기반 프로그래밍 언어에서는 프로그램 실행에 있어 흐름 제어 모델을 따릅니다. 흐름 제어 모델에서는 프로그램 원소의 순서가 프로그램의 실행 순서를 결정합니다.

데이터 흐름 프로그래밍의 예로 그림 1과 같이 두 숫자를 더한 후에 그 합에서 50.00을 빼는 블록다이어그램의 경우를 생각해 보도록 합니다. 이 경우 블록다이어그램은 왼쪽에서 오른쪽  방향으로 실행됩니다. 객체가 왼쪽에서 오른쪽 방향의 순서로 정렬되어 있기 때문이 아니라, [더하기] 함수가 실행을 마치고 데이터를 [빼기] 함수에 전달하기 전까지는 [빼기] 함수가 실행될 수 없기 때문입니다. 노드는 모든 입력 터미널에 데이터가 입력된 경우에만 실행되고, 노드가 실행을 완료한 경우에만 출력 터미널로 데이터를 전송합니다.

그림 1. 데이터 흐름 프로그래밍의 예

그림 2에서 [더하기], [난수], [나누기] 함수 중 어느 코드 영역이 가장 먼저 실행되는지 생각해 보십시오. 이 블록다이어그램의 경우 [더하기]와 [나누기] 함수의 입력이 동시에 제공되며, [난수] 함수에는 입력이 없기 때문에 어느 영역이 먼저 실행되는지 알 수 없습니다. 한 코드 영역이 다른 코드 영역보다 먼저 실행되어야 하고 두 함수 사이에 데이터 의존성이 없는 경우, 시퀀스 구조나 에러 클러스터 연결 등과 같은 다른 프로그래밍 기법을 사용해서 실행 순서를 정해 주어야 합니다.

그림 2. 여러 개의 코드 영역에 대한 데이터 흐름의 예

와이어

와이어는 블록다이어그램의 객체 사이에서 데이터를 전달합니다. 그림 1과 그림 2에서 와이어는 컨트롤과 인디케이터의 터미널을 [더하기]와 [빼기] 함수에 연결합니다. 각각의 와이어는 하나의 데이터 소스를 갖지만, 하나의 소스를 여러 개의 VI 및 함수에 연결하여 데이터를 전달할 수 있습니다. 와이어는 데이터 타입에 따라 각각 색, 스타일, 두께가 다름.


깨진 와이어는 위의 그림과 같이  중앙에 빨간 X가 있는 검정색 점선으로 표시됩니다. 와이어가 깨지는 원인은 다양하지만, 호환되지 않는 데이터 타입을 가진 두 개의 객체를 연결하려는 경우 와이어가 깨지게 됩니다.

테이블 1에는 가장 일반적으로 사용되는 와이어 타입이 나와 있습니다.

와이어 타입 스칼라 1D 배열 2D 배열
숫자형 주황색 (부동소수),
파란색 (정수)
불리언 녹색
문자열 분홍색

테이블 1. 일반적인 와이어 타입

released with niBCVideo v1.1

비디오: LabVIEW의 데이터 타입

LabVIEW는 와이어를 통해 여러 개의 터미널을 연결하여 VI에 데이터를 전달합니다. 와이어를 연결할 때에는 반드시 전달하는 데이터와 호환되는 입력 및 출력에 연결해야 합니다. 예를 들어 배열 출력을 숫자형 입력에 연결할 수 없습니다. 또한 와이어의 방향도 정확해야 합니다. 와이어는 한 개의 입력과, 적어도 한 개의 출력에 연결해야 합니다. 예를 들어 2 개의 인디케이터를 와이어로 연결할 수는 없습니다. 컨트롤의 데이터 타입, 인디케이터의 데이터 타입, 터미널의 데이터 타입이 연결의 호환성을 결정짓는 요소입니다. 예를 들어 녹색 경계가 있는 스위치는 익스프레스 VI에서 녹색 라벨을 가진 입력에 연결할 수 있습니다. 주황색 경계가 있는 노브의 경우, 주황색 라벨을 가진 입력에 연결이 가능합니다. 그러나 녹색 라벨을 가진 입력에 주황색 노브를 연결할 수는 없습니다. 와이어의 색은 터미널과 같습니다.

자동으로 객체 연결하기

블록다이어그램에서 한 객체를 선택한 상태에서 다른 객체 근처로 가져가면, 가능한 연결을 보여주는 임시 와이어가 나타납니다. 이때  마우스 버튼에서 손가락을 떼고 객체를 블록다이어그램에 놓으면 와이어가 자동으로 연결됩니다. 이미 블록다이어그램에 있는 객체에 자동으로 와이어를 연결할 수도 있습니다. LabVIEW는 가장 적합한 터미널을 서로 연결하고 맞지 않는 터미널은 서로 연결시키지 않습니다.

함수 팔레트에서 한 객체를 선택하거나, <Ctrl> 키를 누른 채로 객체를 끌어서 블록다이어그램에 이미 있는 객체를 복사하는 경우에는 기본 설정으로 자동 와이어링이 활성화됩니다. 위치 도구를 통해 블록다이어그램에 있는 객체를 움직이는 경우에는 기본 설정으로 자동 와이어링이 비활성화됩니다.

자동 와이어링 활성화는 도구≫옵션을 선택한 후 항목 리스트에서 블록다이어그램을 선택하여 설정할 수 있습니다.

수동으로 객체 연결하기

와이어링 도구를 터미널 위로 가져가면 터미널의 이름을 보여주는 팁 상자가 나타납니다. 또한 기본 도움말 윈도우와 아이콘에서 터미널이 깜박거려서 터미널을 바르게 연결하고 있는지 확인할 수 있도록 도와줍니다. 객체를 서로 연결하려면, 와이어 연결 도구를 첫 번째 터미널에서 클릭한 후 커서를 두 번째 터미널로 커서를 옮겨서 다시 클릭합니다. 와이어로 연결한 후, 와이어에서 마우스 오른쪽 버튼을 클릭하고 바로 가기 메뉴에서 와이어 정리를 선택하면 LabVIEW가 자동으로 와이어 경로를 선택합니다. 깨진 와이어가 있어 제거하려는 경우, Ctrl-B를 누르면 블록다이어그램에 있는 깨진 와이어가 모두 제거됩니다.

새로운 방법으로 LabVIEW의 기본 사항을 학습하십시오.

LabVIEW의 개념을 새로운 대화식 학습으로 배울 수 있습니다

대화식 학습으로 가기

이전 환경의 기본 사항
일반적인 도구 다음