블록다이어그램 객체
- 업데이트 날짜:2025-08-27
- 12분 (읽기 시간)
블록다이어그램의 객체에는 터미널과 노드가 있습니다. 이 객체들을 와이어로 연결하여 블록다이어그램을 만듭니다. 각 터미널의 색과 기호는 대응하는 컨트롤과 인디케이터의 데이터 타입을 나타냅니다. 상수는 블록다이어그램에 고정 데이터 값을 제공하는 블록다이어그램의 터미널입니다.
블록다이어그램 터미널
프런트패널 객체는 블록다이어그램에서 터미널로 나타납니다. 블록다이어그램의 터미널에서 더블 클릭을 하면, 대응하는 프런트패널의 컨트롤 또는 인디케이터가 하이라이트됩니다.
터미널은 프런트패널과 블록다이어그램 사이에 정보를 교환하는 통로입니다. 프런트패널 컨트롤에 입력한 데이터 값은 컨트롤 터미널을 통해서 블록다이어그램에 입력됩니다. 실행시, 출력 데이터 값은 인디케이터 터미널로 이동하여 블록다이어그램을 빠져 나오고, 프런트패널로 다시 들어가서 프런트패널 인디케이터에 나타납니다.
LabVIEW는 구조에 컨트롤과 인디케이터 터미널, 노드 터미널, 상수, 특정한 터미널을 가지고 있습니다. 터미널에 와이어를 연결하고 다른 터미널에 데이터를 전달합니다. 블록다이어그램 객체에서 마우스 오른쪽 버튼을 클릭하고 바로 가기 메뉴에서 보이는 아이템≫터미널을 선택하여 터미널을 나타내십시오. 객체에서 마우스 오른쪽 버튼을 클릭한 후 다시 보이는 아이템≫터미널을 선택하여 터미널을 숨깁니다. 바로 가기 메뉴 아이템은 확장 가능한 VI와 함수에서는 사용할 수 없습니다.
블록다이어그램에서 프런트패널 컨트롤 또는 인디케이터가 아이콘으로 나타나거나 데이터 타입 터미널로 나타나도록 설정할 수 있습니다. 기본적으로, 프런트패널 객체는 아이콘 터미널로 나타납니다. 예를 들어, 다음에 보이는 노브 아이콘 터미널은 프런트패널의 노브 컨트롤을 나타냅니다.
터미널 아래 부분의 DBL은 배정도 부동소수의 데이터 타입을 나타냅니다. 다음에 보이는 DBL 터미널은 배정도 부동소수 컨트롤을 나타냅니다.
터미널에서 마우스 오른쪽 버튼을 클릭한 후 아이콘으로 보기 바로 가기 메뉴 아이템 옆에 있는 확인 표시를 제거하여 터미널의 데이터 타입을 디스플레이합니다. 아이콘 터미널을 사용하면 블록다이어그램에서 프런트패널 객체의 타입을 디스플레이할 수 있고, 동시에 프런트패널 객체의 데이터 타입도 나타낼 수 있습니다. 데이터 타입 터미널을 사용하여 블록다이어그램의 공간을 절약합니다.
컨트롤 터미널은 인디케이터 터미널보다 경계가 더 두껍습니다. 또한 화살표를 통해 터미널이 컨트롤인지 인디케이터인지 알 수 있습니다. 오른쪽에 나가는 화살표가 있는 것이 컨트롤이며, 왼쪽에 들어오는 화살표가 있는 것이 인디케이터입니다.
컨트롤과 인디케이터 데이터 타입
다음 테이블은 컨트롤과 인디케이터 터미널의 서로 다른 데이터 타입 기호와 사용법을 보여줍니다.
각 터미널의 색과 기호는 대응하는 컨트롤과 인디케이터의 데이터 타입을 나타냅니다. 많은 데이터 타입은 데이터를 처리할 수 있는 대응하는 함수의 세트를 가집니다. 예를 들어 문자열 팔레트의 [문자열] 함수는 문자열 데이터 타입에 대응됩니다.
숫자 데이터 타입 사용에 관한 추가적인 정보는 숫자 데이터 타입을 참조합니다.
| 컨트롤 | 인디케이터 | 데이터 타입 | 용도 | 기본값 |
|---|---|---|---|---|
| | 단정도 부동소수 | 메모리를 절약하고 숫자의 범위를 오버플로우하지 않습니다. | 0.0 |
| | 배정도 부동소수 | 숫자형 객체의 기본 포맷입니다. | 0.0 |
| | 확장형 부동소수 | 플랫폼에 따라 다르게 작동합니다. 필요한 경우에만 사용하십시오. | 0.0 |
| | 복소수 단정도 부동소수 | 실수와 허수 부분을 가진 단정도 부동소수와 같습니다. | 0.0 + 0.0i |
| | 복소수 배정도 부동소수 | 실수와 허수 부분을 가진 배정도 부동소수와 같습니다. | 0.0 + 0.0i |
| | 복소수 확장형 부동소수 | 실수와 허수 부분을 가진 확장된 부동소수와 같습니다. | 0.0 + 0.0i |
| | | 고정 소수점 숫자 | 사용자가 정의한 범위내의 값을 저장합니다. 이 데이터 타입은 부동소수 형의 다이나믹 범위가 필요하지 않거나, FPGA 타겟과 같이 부동소수 연산이 FPGA 리소스를 많이 사용하는 타겟에서 리소스를 절약하고자 할 때 유용합니다. | 0.0 |
| | 8비트 부호있는 정수 | 전체 숫자를 나타내며 양 또는 음의 값이 될 수 있습니다. | 0 |
| | 16비트 부호있는 정수 | 위와 같습니다. | 0 |
| | 32비트 부호있는 정수 | 위와 같습니다. | 0 |
| | 64비트 부호있는 정수 | 위와 같습니다. | 0 |
| | 8비트 부호없는 정수 | 음수 아닌 정수만을 나타내며 두 형 모두 비트 수가 같으므로 부호있는 정수보다 더 큰 범위의 양수를 가집니다. | 0 |
| | 16비트 부호없는 정수 | 위와 같습니다. | 0 |
| | 32비트 부호없는 정수 | 위와 같습니다. | 0 |
| | 64비트 부호없는 정수 | 위와 같습니다. | 0 |
| | <64.64> 비트 타임스탬프 | 높은 정밀도로 절대 시간을 저장합니다. | 1904년 1월 1일 오전 12:00:00.000 (세계시) |
| | 열거형 타입 | 사용자가 선택할 수 있는 아이템 리스트를 제공합니다. | — |
| | 불리언 | 불리언(참/거짓) 값을 저장합니다. | 거짓 |
| | 문자열 | 정보와 데이터에 플랫폼에 독립적인 포맷을 제공합니다. 이를 사용하여 간단한 텍스트 메시지를 작성하고, 숫자 데이터를 전달 및 저장할 수 있습니다. | 빈 문자열 |
| | 배열 | 원소의 데이터 타입을 사각형 괄호 안에 갖게 되고, 그 데이터 타입의 색깔을 가집니다. 배열에 차원을 추가하는 경우, 괄호가 굵어집니다. | — |
| | | 복소수 원소의 행렬 | 와이어 패턴은 같은 데이터 타입을 가진 배열의 와이어 패턴과 다릅니다. | — |
| | | 실수 원소의 행렬 | 와이어 패턴은 같은 데이터 타입을 가진 배열의 와이어 패턴과 다릅니다. | — |
| | 클러스터 | 여러 가지의 데이터 타입을 포함합니다. 클러스터 안의 모든 원소가 숫자형이면 클러스터 데이터 타입이 갈색으로 나타나고, 숫자형 타입이 아닌 원소가 있으면 핑크색으로 나타납니다. 에러 코드 클러스터는 짙은 노란색으로 나타나는 반면, LabVIEW 클래스 클러스터는 기본적으로 빨간색이거나 리포트 생성 VI에 대해 짙은 청록색입니다. | — |
| | 경로 | 사용하는 플랫폼의 표준 구문을 사용하여 파일 또는 디렉토리의 위치를 저장합니다. | 빈 경로 |
| | 다이나믹 | (익스프레스 VI) 신호와 연관된 데이터와 신호의 이름 또는 데이터가 수집된 날짜와 시간 같은 신호와 연관된 정보를 제공하는 특성을 포함합니다. | — |
| | 웨이브폼 | 웨이브폼의 데이터, 시작 시간, t를 가집니다. | — |
| | 디지털 웨이브폼 | 시작 시간, x, 디지털 데이터, 디지털 웨이브폼의 모든 특성을 가집니다. | — |
| | 디지털 | 디지털 신호와 연관된 데이터를 포함합니다. | — |
| | 참조 번호(refnum) | 파일, 디바이스 또는 네트워크 연결과 같은 객체에 대한 유일한 식별자로 작동합니다. | — |
| | 배리언트 | 컨트롤 또는 인디케이터 이름, 데이터 타입 정보, 그리고 데이터 자신을 포함합니다. | — |
| | I/O 이름 | 인스트루먼트 또는 측정 디바이스와 통신을 할 수 있도록 설정한 리소스를 I/O VI에 전달합니다. | — |
| | 그림 | 라인, 원, 텍스트, 기타 타입의 그래픽 모양을 가질 수 있는 그림을 디스플레이하는 그리기 해설의 세트를 포함합니다. | — |
메모리 사용을 최적화하기 위해서는 일관되고 단순한 데이터 타입을 선택하십시오.
부동소수 데이터의 기호형 숫자값
정의되지 않았거나 예상치 못한 데이터는 모든 이후의 수행을 무효로 만듭니다. 부동소수 연산에서 잘못된 계산 또는 의미 없는 결과가 나오는 경우, 다음의 두 기호 값이 반환됩니다.
- NaN (숫자 아님)은 음수의 제곱근 구하기와 같이 유효하지 않은 연산에서 생성된 부동소수 값을 나타냅니다.
- Inf(무한대)는 데이터 타입 범위 밖의 부동소수 값을 나타냅니다. 예를 들어, 1을 0으로 나누면 Inf가 생성됩니다. LabVIEW는 +Inf 또는 -Inf를 반환할 수 있습니다.
LabVIEW는 정수값의 오버플로우 또는 언더플로우 조건을 확인하지 않습니다.
부동소수의 오버플로우와 언더플로우는 IEEE 754, Standard for Floating-Point Arithmetic을 따릅니다.
부동소수 연산은 NaN과 Inf 데이터를 안정적으로 전달합니다. 그러나 정수와 고정 소수점 수는 기호형 숫자값을 지원하지 않습니다. 명백하게 또는 함축적으로 +Inf를 정수나 고정 소수점 수로 변환할 때, 값은 해당 데이터 타입의 가장 큰 값이 됩니다. 예를 들어, +Inf를 16비트 부호있는 정수로 변환하면 16비트 부호있는 정수의 가장 큰 값인 32,767이 생성됩니다. LabVIEW는 -Inf를 해당 데이터 타입의 가장 작은 값으로 변환합니다.
명백하게 또는 함축적으로 NaN를 정수나 고정 소수점 수로 변환할 때, 값은 해당 데이터 타입의 가장 큰 값이 됩니다.
데이터를 정수 또는 고정 소수점 데이터 타입으로 변환하기 전에, 프로브 도구를 사용하여 중간 부동소수 값이 유효한지 확인합니다. 비교 함수 [숫자/경로/참조 번호 아님?]을 유효하지 않으리라 예상되는 값에 연결하여 NaN을 프로그램적으로 확인합니다. 또한 [범위내 확인과 강제변환] 함수를 사용하여 값을 지정한 범위 내로 유지할 수도 있습니다.
| 노트(FPGA Module) FPGA의 NaN 출력의 비트 패턴이 개발 컴퓨터의 출력과 다를 수 있습니다. |
상수
상수는 블록다이어그램에 고정 데이터 값을 제공하는 블록다이어그램의 터미널입니다. 범용 상수는 원주율(π)과 무한대(∞)와 같이 고정된 값을 가지는 상수입니다. 사용자 정의 상수는 VI를 실행하기 전에 정의하고 편집하는 상수입니다.
상수에서 마우스 오른쪽 버튼을 클릭한 후, 바로 가기 메뉴에서 보이는 아이템≫라벨을 선택하여 상수에 라벨을 붙입니다. 범용 상수는 미리 정의된 라벨 값을 가지며, 수행 도구 또는 라벨링 도구를 사용하여 편집할 수 있습니다.
대부분의 상수는 팔레트의 맨 위 또는 맨 아래에 위치합니다.
범용 상수
수학적인 계산과 문자열 또는 경로를 포맷할 때에는 범용 상수를 사용합니다. LabVIEW는 다음과 같은 타입의 범용 상수를 포함합니다:
- 범용 숫자형 상수―자연로그 밑(e)과 광속과 같이 수학과 물리값에 일반적으로 사용되는 정밀한 자릿수의 세트. 범용 숫자형 상수는 수학 & 과학 상수 팔레트에 위치합니다.
- 범용 문자열 상수―라인 피드와 캐리지 리턴과 같이 일반적으로 사용되는 디스플레이할 수 없는 문자열 문자의 세트. 범용 문자열 상수는 문자열 팔레트에 위치합니다.
- 범용 파일 상수―경로 없음, 참조 번호 아님, 기본 디렉토리와 같이 일반적으로 사용되는 파일 경로 값의 세트. 범용 파일 상수는 파일 상수 팔레트에 위치합니다.
사용자 정의 상수
함수 팔레트에는 불리언, 숫자, 링, 열거형 타입, 색 상자, 문자열, 배열, 클러스터, 경로 상수와 같은 타입에 의해 구성된 상수가 있습니다.
VI 또는 함수의 입력 터미널에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 상수≫생성을 선택하여 사용자 정의 상수를 생성합니다.
VI가 실행 중일 때에는 사용자 정의 상수의 값을 변경할 수 없습니다.
또한 프런트패널 컨트롤을 블록다이어그램으로 끌어서 상수를 생성할 수 있습니다. LabVIEW는 프런트패널 컨트롤을 블록다이어그램으로 끌 때 프런트패널 컨트롤의 값을 가지는 상수를 생성합니다. 프런트패널 컨트롤은 프런트패널에 남습니다. 컨트롤의 값을 변경하는 것은 상수 값에 영향을 주지 않으며, 그 반대도 마찬가지입니다.
수행 도구 또는 라벨링 도구를 사용하여 상수를 클릭하고 그 값을 편집합니다. 자동 도구 선택이 활성화된 경우, 상수를 더블 클릭하여 라벨링 도구로 바꾼 후 값을 편집합니다.
상수 계산 단순화 및 루프 불변값
LabVIEW는 상수 계산 단순화와 루프 불변값을 사용하여 VI의 성능을 최적화합니다.
- 상수 계산 단순화를 사용하여, LabVIEW는 매 실행 시 상수 값의 처리 결과를 계산하는 대신 첫 번째 VI 실행 시 그 결과를 계산합니다. 모든 입력이 상수인 For 루프와 같은 구조에 상수 계산 단순화를 적용하면, LabVIEW는 VI를 실행할 때마다 구조의 출력을 계산하는 대신, 첫 번째 VI 실행 시 구조를 실행하고 구조의 출력을 계산합니다.

노트 디버깅을 활성화하면 LabVIEW는 구조에 대해 상수 계산 단순화를 사용하지 않습니다. - 루프 불변값은 For 루프 또는 While 루프가 계산하는 상수 아닌 값으로, 이는 루프의 반복에 따라 변경되지 않습니다. 예를 들어, For 루프 내의 [더하기] 함수가 인덱싱되지 않는 입력 터널에만 연결되어 있는 경우 [더하기] 함수의 출력이 루프의 반복에 따라 변경되지 않기 때문에 이는 루프 불변값이 됩니다. LabVIEW는 루프가 반복될 때마다 루프 불변값을 계산하는 대신 루프가 실행되기 전에 이를 계산합니다.
도구≫옵션≫블록다이어그램을 선택한 후 블록다이어그램 페이지에서 해쉬 마크 옵션을 설정하면 LabVIEW가 블록다이어그램에 상수 계산 단순화 및 루프 불변값 해쉬 마크를 디스플레이하도록 설정할 수 있습니다.
블록다이어그램 노드
노드는 입력과 출력 중 하나만 있거나 입출력이 모두 있는 블록다이어그램의 객체이며 VI가 실행될 때 동작합니다. 노드는 텍스트 기반 프로그래밍 언어에서의 명령문(statement), 연산자(operator), 함수(function) 및 서브루틴(subroutine)과 유사한 개념입니다. LabVIEW는 다음과 같은 타입의 노드를 가집니다:
- 함수―연산자, 함수 또는 명령문과 비교 가능한 내장된 실행 원소.
- SubVI―서브루틴과 비슷한, 다른 VI의 블록다이어그램에서 사용되는 VI.
- 익스프레스 VI―일반적인 측정 작업을 수행하도록 디자인된 SubVI. 설정 대화 상자를 사용하여 익스프레스 VI를 설정할 수 있습니다.
- 구조―For 루프, While 루프, 케이스 구조, 플랫 시퀀스 구조와 다층 시퀀스 구조, Timed 구조, 이벤트 구조처럼 실행을 컨트롤하는 원소.
- 수식 노드와 식 노드―수식 노드는 블록다이어그램에 직접 방정식을 입력할 수 있는 크기 조정이 가능한 구조입니다. 식 노드는 단일 변수를 포함하는 식을 계산하는 구조입니다.
- 프로퍼티 노드와 인보크 노드―프로퍼티 노드는 클래스의 프로퍼티를 설정하거나 찾는 구조입니다. 인보크 노드는 클래스의 메소드를 실행하는 구조입니다.
- 참조에 의한 호출 노드―동적으로 로드된 VI를 호출하는데 사용하는 구조입니다.
- 라이브러리 함수 호출 노드―대부분의 표준 공유 라이브러리 또는 DLL을 호출하는데 사용하는 구조입니다.
다형성 VI와 함수
다형성 VI와 함수는 다른 데이터 타입의 입력 데이터에 따라 조정됩니다. 대부분의 LabVIEW 구조는 일부 VI 및 함수와 같이 다형성입니다.
함수의 다형성 정도는 다양하며, 다형성 입력이 없거나, 일부 또는 전체 입력이 다형성일 수 있습니다. 일부 함수의 입력은 숫자값과 불리언 값을 받습니다. 일부는 숫자값 또는 문자열을 받습니다. 또한 몇몇은 스칼라 숫자값 뿐만 아니라 숫자값의 배열, 숫자값의 클러스터, 숫자값의 클러스터 배열 등을 받습니다. 어떤 함수 입력은 오직 1차원 배열만을 받을 수 있으며, 이 때 배열 원소는 모든 타입이 될 수 있습니다. 일부 함수는 복소수 값을 포함한 모든 타입의 데이터를 받습니다.