다형성 VI
- 업데이트 날짜:2025-08-27
- 3분 (읽기 시간)
다형성 VI는 서로 다른 데이터 타입에 적용됩니다. 다형성 VI는 같은 커넥터 팬 패턴을 가지는 VI의 모음입니다. 각 VI는 다형성 VI의 인스턴스로서, 각각의 인스턴스는 다른 인스턴스에 있는 다른 데이터 타입을 받는 입력 또는 출력 터미널을 1 개 이상 갖고 있습니다.
예를 들어, [키 읽기] VI는 다형성입니다. 이 VI의 기본값 터미널은 불리언; 배정도 부동소수; 32 비트 부호있는 정수; 경로; 문자열; 또는 32 비트 부호없는 정수 데이터를 받습니다.
대부분의 다형성 VI에서, 다형성 VI의 입력에 연결된 데이터 타입은 사용할 인스턴스를 결정합니다. 다형성 VI가 데이터 타입에 호환되는 인스턴스를 포함하지 않는 경우, 깨진 와이어가 나타납니다. 다형성 VI 입력에 연결한 데이터 타입이 사용할 인스턴스를 결정하지 않는다면, 그 인스턴스를 수동으로 선택해야 합니다. 다형성 VI의 인스턴스를 수동으로 선택하면, 그 VI는 선택한 인스턴스의 데이터 타입만을 받고 반환하기 때문에 이 VI는 더이상 다형성 VI로서 작동하지 않습니다.
인스턴스를 수동으로 선택하기 위해서, 다형성 VI에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 타입 선택을 선택하고 사용할 인스턴스를 선택합니다. 또한 수행 도구를 사용하여 다음에서 보는 것과 같이 다형성 VI 선택자를 클릭하고 바로 가기 메뉴에서 인스턴스를 선택할 수 있습니다.
블록다이어그램의 다형성 VI에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 보이는 아이템≫다형성 VI 선택자를 선택하여 선택자를 디스플레이합니다. 다루어지는 모든 데이터 타입을 다시 받도록 다형성 VI를 변경하기 위해, 다형성 VI에서 마우스 오른쪽 버튼을 클릭하고 바로 가기 메뉴에서 타입 선택≫자동을 선택하거나, 수행 도구를 사용하여 다형성 VI 선택자를 클릭하고 바로 가기 메뉴에서 자동을 선택합니다.
여러 다른 데이터 타입에서 같은 연산을 하고, 각 데이터 타입에서 연산이 다르게 구현되어야 하는 경우 다형성 VI를 만듭니다. 특정 데이터 타입을 위해 작업을 크게 바꾸지 않고도 여러 데이터 타입에서 작업이 비슷하게 구현될 수 있는 경우, 이 VI 대신 가변 VI 를 생성합니다.
예를 들어, 단정도 부동소수, 숫자값의 배열, 또는 웨이브폼에 동일한 수학 연산을 수행하려는 경우에는 [숫자 계산], [배열 계산], [웨이브폼 계산]이라는 3 개의 분리된 VI를 생성할 수 있습니다. 연산을 수행할 때, 입력으로 사용하려는 데이터 타입에 따라서 3 개의 VI 중에서 하나를 블록다이어그램에 놓습니다.
수동으로 VI의 버전을 블록다이어그램에 놓는 대신에, 단일 다형성 VI를 생성하고 사용할 수 있습니다.
다형성 계산 VI는 다음 그림에서와 같이 VI에 3 개의 인스턴스를 가집니다.
| 1 | 계산 |
| 2 | 숫자 계산 |
| 3 | 배열 계산 |
| 4 | 웨이브폼 계산 |
계산 VI는 다음 그림에서와 같이 블록다이어그램의 계산 SubVI에 연결한 데이터 타입에 따라서 올바른 VI의 인스턴스에 연결됩니다.
| 1 | 계산 |
| 2 | 숫자 계산 |
| 3 | 배열 계산 |
| 4 | 웨이브폼 계산 |
일반 VI와는 달리 다형성 VI에는 블록다이어그램 또는 프런트패널이 없습니다.
다형성 VI를 만들 때에는 다음 사항을 고려합니다:
- 다형성 VI에 포함되는 모든 VI는 동일한 커넥터 팬 패턴을 가져야만 합니다. 왜냐하면, 다형성 VI의 커넥터 팬은 다형성 VI를 생성하기 위해 사용하는 VI의 커넥터 팬과 일치하기 때문입니다.
- VI의 커넥터 팬에는 대응하는 입력과 출력 터미널이 있어야 합니다. 예를 들어, 한 VI의 커넥터 팬에 있는 터미널이 입력인 경우, 다른 VI의 커넥터 팬에 있는 대응하는 터미널 역시 입력이어야 하며 그렇지 않은 경우 사용하지 않아야 합니다.
- 각 VI의 커넥터 팬의 터미널 연결 수는 각각 다릅니다.
- 다형성 VI에 포함하는 여러 VI는 동일한 SubVI와 함수로 구성할 필요는 없습니다.
- 다른 다형성 VI에 다형성 VI를 사용할 수 없습니다.
- 가변 VI(.vim)는 다형성 VI 안에 포함될 수 없습니다.
사용할 인스턴스를 결정하기 위해서 다형성 VI의 입력에 사용자가 연결하는 데이터 타입을 원하고 사용자가 VI가 다형성인 것을 알지 못하게 하려는 경우, 다형성 VI를 만들 때 다음 지침을 고려합니다.
- 사용자가 인스턴스를 수동으로 선택할 필요가 없기 때문에 다형성 VI 선택자를 숨깁니다.
- 다형성 VI에 대한 아이콘을 생성하여 사용자가 다형성 VI 위로 커서를 움직일 때 각 인스턴스에 대한 아이콘이 기본 도움말 윈도우에 나타나지 않도록 합니다.
- 다형성 VI의 설명을 생성하여 사용자가 다형성 VI 위로 커서를 움직일 때 각 인스턴스에 대한 설명이 기본 도움말 윈도우에 나타나지 않도록 합니다. 사용되는 인스턴스에 개의치 않고 다형성 VI를 설명하는 설명을 포함합니다.
블록다이어그램에 다형성 VI를 놓으면, LabVIEW는 다형성 VI를 메모리에 로드합니다. 다형성 VI윈도우에서 다형성 VI를 수정하고 변경된 사항을 저장하지 않고 윈도우를 닫으면, 변경된 사항은 계속해서 메모리에 남아있습니다. VI를 닫고 다시 열면, 다형성 VI의 변경된 사항은 더 이상 나타나지 않습니다.
다형성 SubVI를 포함하는 VI에 대한 완전한 설명을 생성할 때, 다형성 VI와 인스턴스는 문서의 SubVI 섹션 리스트에 나타납니다.