You are here

LabVIEW 사용자 정의 컨트롤, 인디케이터 및 타입 정의

Control Editor를 사용하여 사용자 정의 컨트롤, 인디케이터 및 타입 정의를 생성하고 사용하는 방법을 설명합니다.

사용자 정의 컨트롤 및 인디케이터를 사용하여 이용 가능한 프런트패널 객체의 범위를 확장합니다. 표준 LabVIEW 컨트롤 및 인디케이터로부터 다양하게 변형된 어플리케이션에 적합한 사용자 정의 사용자 인터페이스 컴포넌트를 생성할 수 있습니다.
디렉토리나 VI 라이브러리에서 만든 사용자 정의 컨트롤이나 인디케이터를 저장한 다음 다른 프런트패널에서 사용할 수 있습니다. 또한 사용자 정의 컨트롤 또는 인디케이터 아이콘을 만들어 Controls 팔레트에 추가할 수도 있습니다.
타입 정의 및 엄격한 타입 정의를 사용하여 사용자 정의 컨트롤 또는 인디케이터의 모든 인스턴스를 마스터 정의에 링크시키면 마스터 정의만 편집하여 모든 인스턴스를 변경할 수 있기 때문에 여러 VI에서 동일한 사용자 정의 컨트롤이나 인디케이터가 필요할 때 유용합니다.

 
목차

  • 사용자 정의 컨트롤 및 인디케이터 생성
  • 사용자 정의 컨트롤 및 인디케이터 편집
  • 사용자 정의 컨트롤 및 인디케이터 사용
  • 독립형 사용자 정의 컨트롤 및 링크된 사용자 정의 컨트롤의 차이
  • 사용자 정의 모드
  • 외관 파트
  • 그래픽 임포트
  • 타입 정의

 

 사용자 정의 컨트롤 및 인디케이터 생성 
Control Editor 창은 프런트패널처럼 보이지만 단일 컨트롤 또는 인디케이터를 편집하고 저장할 때만 사용됩니다. Control Editor에는 블록다이어그램이 없기 때문에 실행이 불가능합니다.
Control Editor 도구모음은 현재 상태가 편집 모드 인지 사용자 정의 모드 인지 나타냅니다. Control Editor는 편집 모드에서 열립니다. 모든 프런트패널의 편집 모드에서와 마찬가지로 컨트롤 또는 인디케이터의 크기나 컬러를 변경하고 단축 메뉴에서 옵션을 선택할 수 있습니다. 사용자 정의 모드에서는 컨트롤이나 인디케이터의 파트를 개별적으로 변경할 수 있습니다. 컨트롤이나 인디케이터를 다양하게 변경하는 내용에 대해서는 이 문서의 사용자 정의 모드 섹션을 참조하십시오.

다음 단계에 따라 사용자 정의 컨트롤 또는 인디케이터를 만듭니다.

1. 파일>>새로 만들기 VI(File≫New)를 선택하여 새로 만들기(New) 대화상자를 표시합니다.

2. 새로 생성(Create new) 리스트에서 기타 파일>>사용자 컨트롤(Other Document Types»Custom Control)을 선택합니다.

3. 확인(OK) 버튼을 클릭합니다. Control Editor 창이 나타납니다.

4. Control Editor 창에 만들려는 컨트롤 또는 인디케이터와 가장 비슷한 것을 놓고 원하는 대로 변경합니다.

5. File≫Save as를 선택하여 다른 프런트패널에서 사용할 사용자 정의 컨트롤 또는 인디케이터를 저장합니다. 컨트롤 또는 인디케이터를 디렉토리나 VI 라이브러리에 저장합니다. 컨트롤이나 인디케이터의 변경 사항을 저장하지 않고 Control Editor 창을 닫으면 변경 사항을 저장할 것인지 묻는 Save Changes? 대화상자가 나타납니다.

 
사용자 정의 컨트롤 및 인디케이터 편집 
Control Editor를 사용하여 컨트롤이나 인디케이터의 크기, 컬러 및 상대 위치를 변경할 수 있고 컨트롤이나 인디케이터에서 이미지를 변경할 수 있습니다. 다음 단계에 따라 사용자 정의 컨트롤이나 인디케이터를 편집합니다.

1. Positioning 도구를 이용하여 편집하려는 사용자 정의 컨트롤이나 인디케이터를 선택합니다. 한번에 하나의 컨트롤 또는 인디케이터만 편집할 수 있습니다. Control Editor 창이 나타납니다.
2. 편집>>컨트롤 사용자 정의(Edit≫Customize Control)을 선택합니다. 이 메뉴 항목은 사용자 정의 컨트롤 또는 인디케이터를 선택한 경우에만 이용할 수 있습니다.
3. 컨트롤 또는 인디케이터에서 크기 조절 핸들 또는 원을 선택하여 컨트롤 또는 인디케이터의 위치나 크기를 조절합니다.
4. Coloring 도구를 이용하여 변경하려는 컬러의 컨트롤이나 인디케이터를 선택합니다.
5. Tools 팔레트의 Set Color에서 컬러를 선택하여 컨트롤이나 인디케이터의 컬러를 변경합니다.
6. Control Editor 창에서 파일>>변경된 사항 적용(File≫Apply Changes)를 선택하여 원래 프런트패널 컨트롤 또는 인디케이터를 새로 만든 사용자 정의 컨트롤 또는 인디케이터와 교체합니다. Apply Changes 메뉴 항목은 원래 컨트롤이나 인디케이터를 변경한 후에만 이용할 수 있습니다.
7. 원래 프런트패널에서만 사용자 정의 컨트롤이나 인디케이터를 사용할 수 있다면 컨트롤이나 인디케이터를 저장하지 않고 Control Editor 창을 닫아도 됩니다. 다른 프런트패널에서 새로운 컨트롤이나 인디케이터를 사용하려면 Control Editor를 종료하기 전에 저장해야 합니다. 사용자 정의 컨트롤 또는 인디케이터를 해당 위치에 두고 원래 VI를 저장합니다.

 

유효한 사용자 정의 컨트롤
컨트롤이나 인디케이터는 여러 컨트롤 또는 인디케이터의 클러스터일 수 있지만 Control Editor에는 한 개의 컨트롤 또는 인디케이터만 포함될 수 있습니다.

Invalid Control 버튼 은 클러스터나 배열로 컨트롤 또는 인디케이터를 옮겨가거나 옮겨 나올 때 일시적으로 Control Editor 도구모음에 나타납니다. 에러 설명을 보려면 Invalid Control 버튼을 클릭합니다.

 
사용자 정의 컨트롤 및 인디케이터 사용 
다음 단계에 따라 프런트패널에 사용자 정의 컨트롤이나 인디케이터를 구성합니다.

1. 다른 프런트패널에서 사용자 정의 컨트롤 또는 인디케이터를 사용하려면 컨트롤 선택(Select a Control)을 선택합니다. 열 컨트롤 선택(Choose a custom control to open) 대화상자가 나타납니다
2. 원하는 컨트롤이나 인디케이터를 선택한 다음 프런트패널에 놓습니다.
3. 사용자 정의 컨트롤 또는 인디케이터를 해당 위치에 두고 VI를 저장합니다.

다음 단계에 따라 사용자 정의 컨트롤 또는 인디케이터를 블록다이어그램에 배열합니다.
1. 블록다이어그램에서 사용자 정의 컨트롤 또는 인디케이터를 사용하려면 Select a VI를 선택합니다. Choose the VI to open 대화상자가 나타납니다.
2. 원하는 컨트롤이나 인디케이터를 선택한 다음 블록다이어그램에 놓습니다. 블록다이어그램에서 사용자 정의 컨트롤 또는 인디케이터를 사용할 경우 사용자 정의 컨트롤 또는 인디케이터와 데이터 타입이 동일한 상수가 생성됩니다.
3. 사용자 정의 컨트롤 또는 인디케이터를 해당 위치에 두고 VI를 저장합니다.

사용자 정의 컨트롤 및 인디케이터를 Controls 및 Functions 팔레트에 추가할 수도 있습니다. 사용자 정의 컨트롤 및 인디케이터를 Controls 및 Functions 팔레트에 추가하는 내용은 LabVIEW Help를 참조하십시오.

사용자 정의 컨트롤 또는 인디케이터를 VI에 놓으면 LabVIEW는 사용자 정의 컨트롤 또는 인디케이터를 만든 파일과 VI의 컨트롤 또는 인디케이터의 연결을 제거합니다. 타입 정의만 정의에 링크된 인스턴스를 포함합니다.

 
독립형 사용자 정의 컨트롤 및 링크된 사용자 정의 컨트롤의 차이 
File≫Open을 선택하여 저장한 사용자 정의 컨트롤 또는 인디케이터를 엽니다. 사용자 정의 컨트롤 또는 인디케이터는 항상 Control Editor 창에서 열립니다.

사용자 정의 컨트롤 또는 인디케이터를 변경한 후 열더라도 그 컨트롤이나 인디케이터를 이미 사용하고 있는 VI에는 영향을 미치지 않습니다. 프런트패널에서 사용자 정의 컨트롤 또는 인디케이터를 사용할 때 컨트롤이나 인디케이터가 타입 정의가 아닌 한 사용자 정의 컨트롤 또는 인디케이터의 인스턴스와 그러한 사용자 정의 컨트롤이나 인디케이터를 저장한 파일 또는 VI 라이브러리는 연결되어 있지 않습니다. 사용자 정의 컨트롤 또는 인디케이터의 각 인스턴스는 별도의 독립적인 사본입니다.

타입 정의란 인스턴스가 정의에 링크되어 있는 사용자 정의 컨트롤 또는 인디케이터를 말합니다. 다양한 VI 프런트패널이나 블록다이어그램의 컨트롤 또는 인디케이터 인스턴스와 그 컨트롤이나 인디케이터의 마스터 사본을 연결하려면 사용자 정의 컨트롤 또는 인디케이터를 타입 정의로 저장합니다. 마스터 사본의 데이터 타입을 변경하면 그 마스터 사본을 사용하는 모든 VI의 모든 컨트롤 또는 인디케이터의 인스턴스에 영향을 미칩니다. 사용자 정의 컨트롤 또는 인디케이터를 엄격한 타입 정의로 저장하면 마스터 사본의 외관상의 변경도 사용자 정의 컨트롤 또는 인디케이터의 모든 인스턴스에 영향을 미칩니다. 타입 정의에 대한 자세한 내용은 이 문서의 타입 정의 섹션을 참조하십시오.

 

 

사용자 정의 모드 
컨트롤이나 인디케이터를 다양하게 변경하고자 할 때 Control Editor의 사용자 정의 모드를 사용합니다. Control Editor 도구모음의 Mode 버튼을 클릭하거나 Control Editor 창에서 수행>>사용자 정의 모드(Operate≫Change to Customize Mode) 또는 편집 모드(Change to Edit Mode)를 선택하면 편집 모드와 사용자 정의 모드간에 전환할 수 있습니다.

 

 컨트롤 또는 인디케이터의 독립 파트
모든 컨트롤 또는 인디케이터는 작은 파트들로 만들어집니다. 예를 들어 슬라이드 컨트롤은 다음 그림과 같이 스케일, 하우징, 증가 및 감소 화살표, 디지털 디스플레이, 단위 라벨 및 이름 라벨로 구성됩니다.

 

그림 1. 슬라이드 컨트롤

 

 Control Editor에서 사용자 정의 모드로 전환하면 컨트롤 또는 인디케이터의 각 파트는 독립적으로 바뀝니다. 다른 파트에 영향을 주지 않고 각 파트를 변경할 수 있습니다. 사용자 정의 모드에는 디지털 컨트롤의 이름 라벨이나 기수처럼 편집 모드에서 숨겨진 파트를 포함하여 컨트롤 또는 인디케이터의 모든 파트가 표시됩니다. 컨트롤이나 인디케이터의 각 파트는 서로 분리되어 있기 때문에 사용자 정의 모드에서는 컨트롤이나 인디케이터의 값을 조작하거나 변경할 수 없습니다.

 

다음 단계에 따라 Control Editor 창에서 컨트롤이나 인디케이터의 파트를 선택, 정렬 또는 분산시킬 수 있습니다.

1. Positioning 도구를 이용하여 정렬 또는 분산시키려는 컨트롤이나 인디케이터의 파트를 선택합니다.
2. 도구모음에서 Align Objects 풀다운 메뉴나 Distribute Objects 풀다운 메뉴를 선택하여 선택한 파트들을 정렬하거나 분배합니다.
3. 도구모음에서 Reorder 풀다운 메뉴를 선택하여 선택한 파트들의 레이어 순서를 변경합니다.
4. 사용자 정의 컨트롤 또는 인디케이터를 저장합니다.

 

Control Editor Parts 창
Control Editor 창에서 Window≫Show Parts Window를 선택하면 컨트롤이나 인디케이터 파트의 크기와 위치를 조절하는 데 도움이 됩니다. Control Parts 창이 나타나 컨트롤이나 인디케이터의 파트를 확인하고 각 파트의 정확환 위치와 크기를 픽셀로 보여줍니다.

Control Parts 창의 Current Part 디스플레이에는 Control Editor 창에서 선택한 파트의 이름과 그래픽이 표시됩니다. 컨트롤이나 인디케이터의 모든 파트를 보려면 Current Part 디스플레이를 클릭합니다. 컨트롤이나 인디케이터의 파트를 스크롤하려면 Current Part 디스플레이의 증가 또는 감소 화살표를 클릭합니다.

Control Editor에서 파트를 이동하거나 크기를 변경하면 LabVIEW는 Current Parts 디스플레이에서 크기와 위치를 업데이트합니다. Control Parts 창에 위치 및 크기 값을 직접 입력하여 Control Editor에서 파트를 이동하거나 크기를 변경할 수도 있는데, 이는 두 파트의 크기를 정확히 일치시켜야 하거나 한 파트를 다른 파트와 정렬할 때 유용합니다.

 

서로 다른 파트의 사용자 정의 모드 단축 메뉴
사용자 정의 모드에서 각 파트의 단축 메뉴가 컨트롤이나 인디케이터 단축 메뉴 대신 사용됩니다. 파트마다 다른 단축 메뉴가 있으며 편집 모드와 사용자 정의 모드에서 이용할 수 있는 메뉴 항목은 다양합니다. 단축 메뉴를 사용하여 다음 타입의 파트를 사용자 정의합니다.

  •  슬라이드 하우징, 슬라이더, 증가 및 감소 화살표 등의 외관 파트
  • 이름 라벨 등의 텍스트 파트
  • 슬라이드 디지털 디스플레이에 사용되는 Numeric 컨트롤 등 파트으로서의 컨트롤 또는 인디케이터. 노브, 미터기 및 차트도 디지털 디스플레이에 Numeric 컨트롤을 사용합니다. 더욱 복잡한 컨트롤도 있습니다. 예를 들어 그래프는 커서 디스플레이 파트에 클러스터 배열을 사용합니다.

 

외관 파트 
외관 파트에서는 다이나믹 사용자 상호 작용이 일어나지 않습니다. 사용자 정의 모드에서만 마우스 오른쪽 버튼으로 외관 파트를 클릭할 수 있습니다. Control Parts 창에 있는 파트 그래픽이 아닌 Control Editor에 있는 파트 자체를 마우스 오른쪽 버튼으로 클릭합니다.

다음 리스트는 외관 파트 단축 메뉴의 항목에 대한 설명입니다.

 Copy to Clipboard ? 파트의 그래픽 사본을 클립보드에 놓습니다. Edit≫Paste를 선택하여 클립보드 그래픽을 프런트패널에 붙여넣습니다. 마우스 오른쪽 버튼으로 파트를 클릭한 다음 단축 메뉴에서 Import Picture를 선택하여 다른 파트로 그래픽을 임포트합니다.

다른 파트에 하우징 사각형과 같은 단순한 모양이 필요할 때 페인트 프로그램에서 그러한 모양을 만들지 않고 다른 파트에서 복사하면 몇 가지 장점이 있습니다. 기존 파트나 장식에서 복사한 그래픽은 페인트 프로그램에서 만든 그래픽보다 크기를 조절하기 편리합니다. 예를 들어 페인트 프로그램에서 그린 사각형의 크기를 조절할 경우 크기가 균일하게만 확장되기 때문에 영역이 확장되고 테두리가 두꺼워집니다. 파트에서 복사한 사각형의 크기를 조절할 경우 가는 테두리가 동일하게 유지됩니다.

이미 만들어진 파트를 복사할 때의 또 다른 장점은 그러한 파트가 컬러 모니터와 흑백 모니터에서 기본적으로 동일하게 나타난다는 것입니다. 또한 Coloring 도구를 사용하여 파트나 장식에서 복사한 그래픽에 컬러를 추가할 수도 있습니다. 다른 소스에서 임포트한 그래픽의 컬러는 그 그래픽의 정의의 일부이기 때문에 그러한 컬러는 임포트될 때의 컬러가 그대로 유지됩니다.

 

Import Picture -- 외관 파트의 현재 그래픽을 현재 클립보드에 있는 그래픽과 교체합니다. 예를 들어 Boolean 스위치에 대해 개방 및 폐쇄 밸브의 그래픽을 임포트할 수 있습니다. 클립보드에 그래픽이 없으면 Import Picture 메뉴 항목은 희미해집니다.

 

Import at Same Size -- 현재 그래픽을 교체하고 파트의 원래 크기를 유지하여 클립보드 그래픽을 크기에 맞게 축소 또는 확대합니다. 클립보드에 그래픽이 없으면 Import at Same Size 메뉴 항목은 희미해집니다. 
Revert ? 파트를 원래 모양으로 복원합니다. 단축 메뉴에서 Revert를 선택해도 파트의 위치를 변경되지 않습니다. 프런트패널에서 Edit≫Edit Control을 선택하여 Control Editor 창을 열고 Revert 메뉴 항목을 사용하면 파트는 프런트패널에서 보이는 모양으로 돌아갑니다. File≫Open을 선택하여 Control Editor 창을 열면 Revert 메뉴 항목이 희미해집니다.

 

Original Size -- 파트의 그래픽을 원래 크기로 설정하는 메뉴 항목으로 다른 어플리케이션에서 임포트한 다음 크기를 조절한 그래픽에 유용합니다. 그래픽의 크기를 조절하면 일부 그래픽이 원본의 질보다 떨어지며, 이 경우 그래픽을 원래 크기로 복원하길 원할 수 있습니다. 그래픽을 임포트하지 않으면 Original Size 메뉴 항목은 희미해집니다.

 

그래픽 임포트 
다음 단계에 따라 Control Editor를 사용하여 그래픽을 Boolean 컨트롤로 임포트하고 전환 상태로 이용할 서로 다른 그래픽을 임포트합니다.

 1. Control Editor에서 Edit≫Import Picture from File을 선택하고 그래픽을 찾아 메모리에 로드합니다.
2. 편집 모드에서 마우스 오른쪽 버튼으로 Boolean 컨트롤을 클릭한 다음 단축 메뉴에서 False, True 또는 Decal을 선택합니다. 각 경우마다 필요에 따라 이 단계를 반복합니다. Decal은 Boolean 컨트롤의 상태에 따라 변하지 않습니다.
3. LabVIEW는 그래픽을 일반 상태와 그에 해당하는 전환 상태로 임포트합니다. 전환 상태에 대한 자세한 내용은 이 문서의 두 개 이상의 그래픽이 있는 외관 파트 섹션을 참조하십시오.
4. 다음 단계에 따라 컨트롤의 다른 원소에 그래픽을 사용합니다.

 
a. 마우스 오른쪽 버튼으로 Boolean 컨트롤을 클릭한 다음 단축 메뉴에서 Picture Item을 선택합니다.

b. 그래픽을 클립보드에 복사합니다.

c. 그래픽을 클립보드에 둔 상태에서 마우스 오른쪽 버튼으로 다시 컨트롤을 클릭한 다음 Import Picture를 선택합니다. 단축 메뉴에서 Import at Same Size를 선택하여 해당 원소와 동일한 크기로 그래픽을 임포트할 수도 있습니다.

  

둘 이상의 그래픽이 있는 외관 파트
일부 외관 파트에는 서로 다른 시기에 표시되는 둘 이상의 그래픽이 있습니다. 다른 그래픽이라도 크기가 같고 동일한 컬러를 사용합니다. 외관 파트의 현재 그래픽을 이동하거나 크기를 조절하면 다른 그래픽도 같은 양만큼 이동하거나 크기가 비례하게 변경됩니다. 예를 들어 Boolean 스위치에는 네 개의 그래픽이 있습니다. 첫 번째는 False 상태를 보여주고, 두 번째는 True 상태를 보여주며, 세 번째와 네 번째는 Switch When Released 또는 Latch When Released 상태를 보여줍니다. Boolean 컨트롤의 물리적 작동 설정에 대한 자세한 내용은 LabVIEW Help를 참조하십시오.

 마우스 버튼을 놓을 때까지는 이 두 가지 기계적 작동으로 Boolean 컨트롤 값은 변경되지 않습니다. 마우스 버튼을 클릭한 시점과 마우스 버튼을 놓는 시점 사이에 Boolean 컨트롤은 전환 상태로 세 번째 또는 네 번째 그래픽을 보여줍니다. 세 번째 그래픽은 True에서 False로의 전환 상태를 나타내며 네 번째는 False에서 True로의 전환 상태를 나타냅니다.

 Picture Item은 두 개 이상의 그래픽이 있는 외관 파트의 단축 메뉴에서 이용할 수 있습니다. 단축 메뉴에서 Picture Item을 선택하면 외관 파트에 속한 모든 그래픽이 표시됩니다. 현재 그래픽 항목은 둘레에 어두운 테두리가 있습니다. 그래픽을 임포트하면 현재 그래픽 항목만 변경됩니다. 다른 그래픽 항목 중 하나에 대해 그래픽을 임포트하려면 먼저 그 그래픽 항목을 선택한 다음 새로운 그래픽을 임포트합니다.

 

독립 그래픽이 있는 외관 파트
둘 이상의 그래픽이 있는 외관 파트에는 각기 다른 컬러를 사용하는 다른 크기의 그래픽이 있을 수 있습니다. 예를 들어 슬라이드는 크기가 다른 두 개의 그래픽을 사용하여 다중값 슬라이드에 활성화된 슬라이더를 보여줍니다.

Independent Sizes는 서로 다른 크기의 그래픽을 가질 수 있는 외관 파트의 단축 메뉴에서 이용할 수 있습니다. 사용자 정의 모드에서 단축 메뉴로부터 Independent Sizes를 선택하여 이 메뉴 항목 옆에 체크표시를 하면 외관 파트의 다른 그래픽을 변경하지 않고 각 그래픽을 개별적으로 이동하고 크기를 조절합니다.

 

텍스트 파트
텍스트 파트는 텍스트가 있는 그래픽입니다. Control Editor의 텍스트 파트 단축 메뉴는 외관 파트 단축 메뉴와 유사합니다. 이 메뉴의 다른 항목은 프런트패널 편집 모드의 텍스트 원소 단축 메뉴와 동일합니다. Controls Part 창은 텍스트 자체가 아닌 텍스트 파트의 배경 그래픽만 보여줍니다. 다시 말해 텍스트가 아닌 배경 그래픽을 사용자 정의할 수 있습니다.

 

파트로서의 컨트롤 및 인디케이터
컨트롤이나 인디케이터는 슬라이드, 노브, 미터기 또는 차트에 다른 컨트롤이나 인디케이터를 디지털 디스플레이 같은 파트로 포함시킬 수 있습니다. Numeric 컨트롤 또는 인디케이터의 디지털 디스플레이는 단독으로 사용되는 디지털 디스플레이와 전혀 다르지 않습니다.

 디지털 디스플레이도 파트로 구성됩니다. Control Editor에서 원래 컨트롤이나 인디케이터를 편집하면 디지털 디스플레이는 단일 파트로 작동하기 때문에 디스플레이의 파트를 개별적으로 변경하거나 이동할 수 없습니다. 그러나 Control Editor를 열어 디지털 디스플레이를 사용자 정의할 수 있습니다. 편집 모드에서 컨트롤 또는 인디케이터 파트를 선택할 수 없는 경우가 아니면 반드시 사용자 정의 모드에서 중첩된 Control Editor 창을 열 필요는 없습니다.

프런트패널의 편집 모드에서 메인 컨트롤 또는 인디케이터로부터 별도로 파트를 선택할 수 있다면 원래 프런트패널에서 직접 그 파트에 대해 Control Editor 창을 열 수 있습니다. 항상 사용자 정의 모드에서 메인 컨트롤 또는 인디케이터의 Control Editor 창의 파트에 대해 Control Editor 창을 열 수 있습니다.

 

다음 단계에 따라 다른 컨트롤 또는 인디케이터의 파트인 컨트롤 또는 인디케이터를 사용자 정의합니다.

1. 다른 컨트롤 또는 인디케이터의 파트인 컨트롤 또는 인디케이터에 대해 Control Editor를 열어 사용자 정의합니다.

2. Control Editor에서 파트를 선택합니다. 예를 들어 슬라이드 컨트롤에서 별도로 디지털 디스플레이를 선택할 수 있습니다.

3. Edit»Customize Control을 선택합니다.

  이러한 방식으로 Control Editor 창을 무한히 중첩할 수 있지만 대부분의 컨트롤이나 인디케이터는 최상위 레벨에서만 다른 컨트롤이나 인디케이터를 파트로 사용합니다. 단, 복잡한 컨트롤을 파트로 사용하고 이 파트는 다른 컨트롤을 파트로 사용하는 그래픽은 예외입니다.

 
사용자 정의 컨트롤 및 인디케이터에 외관 파트 추가
Control Editor를 사용하여 사용자 정의 컨트롤 또는 인디케이터를 만들 때 편집 모드나 사용자 정의 모드에서 외관 파트나 텍스트 파트를 사용자 정의 컨트롤 또는 인디케이터에 추가할 수 있습니다.

 클립보드로부터 그래픽이나 텍스트를 붙여넣거나 Labeling 도구로 라벨을 만들거나 Decorations 팔레트에서 그래픽을 선택할 경우, 그 그래픽이나 텍스트는 새로운 컨트롤이나 인디케이터의 파트가 되어 컨트롤이나 인디케이터를 프런트패널에 놓을 때 함께 나타납니다. 새로운 파트를 옮기거나 크기를 조절하거나 레이어(layer) 순서를 변경할 수 있습니다. 추가 사항은 사용자 정의 모드에서 Control Parts 창에 장식 파트로 나타납니다. Control Editor에서는 장식 파트를 삭제할 수도 있습니다.

 프런트패널의 사용자 정의 컨트롤 또는 인디케이터를 사용할 때 추가한 장식 파트의 크기 변경은 가능하지만 이동은 불가능합니다.

 

사용자 정의 컨트롤 경고
사용자 정의 컨트롤 또는 인디케이터를 만들 때 다음 문제를 고려하십시오.

한 플랫폼에서 만든 그래픽을 다른 플랫폼으로 로드하면 약간 다르게 보입니다. 예를 들어 불규칙적인 모양이나 투명한 배경이 있는 그래픽이 다른 플랫폼에서는 희색 배경이 있는 것처럼 나타날 수 있습니다. 플랫폼간 차이에 대한 자세한 내용은 Picture Differences section in the Porting and Localizing LabVIEW VIs 어플리케이션 노트를 참조하십시오.

 Control Editor는 컨트롤이나 인디케이터의 모양만 변경합니다. 다시 말해 컨트롤이나 인디케이터의 작동을 변경할 수는 없습니다. 컨트롤이나 인디케이터가 데이터를 표시하는 방식을 변경할 수는 없으며 컨트롤이나 인디케이터를 편집할 때, 특히 크기를 조절할 때 컨트롤이나 인디케이터가 작동하는 방식을 변경할 수 없습니다. 예를 들어, 링 컨트롤을 더 크게 만들면 증가 화살표와 감소 화살표의 높이도 증가합니다. 증가 화살표와 감소 화살표를 링 컨트롤 하단에 나란히 위치하도록 옮기면 링 컨트롤이 커질 때 버튼도 커집니다.

 사용자 정의 컨트롤 또는 인디케이터가 정확해 보이는 경우도 있지만 가끔씩 이상하게 작동하기도 합니다. 사용자 정의 컨트롤 또는 인디케이터의 모양은 마음에 드는데 불규칙적인 편집 작동이 불만이라면 엄격한 타입 정의를 사용하십시오. 편집 제한사항에 대한 자세한 내용은 이 문서의 엄격한 정의 섹션을 참조하십시오.

 

타입 정의

Control Editor를 사용하여 컨트롤 또는 인디케이터의 마스터 사본인 타입 정의를 생성합니다. LabVIEW는 타입 정의를 사용하는 위치와 상관 없이 컨트롤이나 인디케이터의 데이터 타입을 항상 동일하게 유지합니다. 타입 정의는 수많은 VI에서 동일한 컨트롤이나 인디케이터를 사용할 때 유용합니다. 컨트롤이나 인디케이터를 타입 정의로 저장한 다음 다른 VI에서 이 타입 정의를 사용하십시오. 그러면 컨트롤이나 인디케이터를 변경해야 할 경우 그러한 컨트롤이나 인디케이터를 사용하는 모든 VI에서 업데이트하는 대신 하나의 타입 정의 파일에서 데이터 타입 값만 업데이트하면 됩니다.

 타입 정의 인스턴스가 자동으로 업데이트되지 않도록 설정할 수 있습니다. 타입 정의 업데이트 방법에 대한 자세한 내용은 이 문서의 타입 정의 업데이트 섹션을 참조하십시오. 데이터 타입이 마스터 사본과 일치하는 한 슬라이드 대신 노브를 사용하는 등 이름, 설명, 기본값, 크기, 컬러 또는 컨트롤이나 인디케이터의 스타일이 다를 수 있습니다. 타입 정의는 사용자 정의 컨트롤 또는 인디케이터의 각 인스턴스에 맞는 타입을 식별합니다. 타입 정의 데이터 타입이 변경되면 인스턴스가 업데이트됩니다. 그러나 타입 정의는 데이터 타입만 식별하기 때문에 타입의 일부인 값만 업데이트됩니다.

예를 들어 Numeric 컨트롤에서 데이터 범위는 타입의 일부가 아닙니다. 따라서 타입 정의는 프런트패널에서 Numeric 컨트롤 타입 정의의 인스턴스에 대한 데이터 범위를 정의하지 않습니다. 또한 링 컨트롤의 항목 이름은 타입을 정의하지 않기 때문에 타입 정의가 모든 인스턴스에 대해 값을 정의하는 것은 아닙니다. 그러므로 링 컨트롤 문자열을 변경해도 타입 정의가 업데이트되지 않습니다. 그러나 Enum 타입의 타입 정의에서 항목 이름을 변경할 경우 항목 이름은 타입의 부분이기 때문에 인스턴스가 업데이트됩니다.

 

엄격한 타입 정의(strickly typed)
엄격한 타입 정의는 크기, 컬러 및 모양과 같은 외관상의 속성을 포함하여 컨트롤 또는 인디케이터에 대한 거의 모든 것을 동일하게 합니다. 엄격한 타입 정의는 또한 Numeric 컨트롤의 범위 확인이나 링 컨트롤의 항목 이름과 같은 다른 값도 정의합니다. 컨트롤이나 인디케이터가 엄격한 타입 정의의 마스터 사본과 다를 수 있는 측면은 이름, 설명 및 기본값 뿐입니다. 엄격한 타입 정의 인스턴스의 경우 자동 업데이트를 비활성화할 수 없습니다. 엄격한 타입 정의에 이용할 수 있는 속성은 Visible, Disabled, Key Focus, Blinking, Position 및 Bounds와 같이 컨트롤이나 인디케이터의 모양에 영향을 미치는 속성 뿐입니다.

 

블록다이어그램에서의 타입 정의
블록다이어그램에서 타입 정의를 사용할 때 타입 정의는 항상 컨트롤이나 인디케이터가 아닌 상수로 나타납니다. 따라서 블록다이어그램에서 엄격한 타입 정의의 인스턴스는 일반 타입 정의의 인스턴스 같은 역할을 합니다. 인스턴스는 엄격한 타입 정의의 데이터 타입이 변경될 때만 자동으로 업데이트됩니다.

 

타입 정의 생성
다음 단계에 따라 타입 정의를 생성합니다.

1. Control Editor 창 도구모음의 Type Def. Status 풀다운 메뉴에서 Type Def를 선택합니다.
2. 컨트롤 또는 인디케이터를 사용자 정의합니다.
3. Control Editor 창에서 File»Save를 선택합니다 .

File≫Open을 선택하여 저장한 타입 정의를 엽니다. 타입 정의는 항상 Control Editor 창에서 열립니다. 타입 정의가 변경되면 그 타입 정의를 사용하는 모든 VI가 영향을 받습니다.

 

타입 정의 사용
사용자 정의 컨트롤이나 인디케이터를 배열하고 편집하고 작동하는 방식과 마찬가지로 프런트패널이나 블록다이어그램에서 일반 타입 정의 및 엄격한 타입 정의를 배열하고 편집하고 작동합니다. 이름, 설명 및 기본값 변경을 제외하고는 프런트패널에서 엄격한 타입 정의를 편집할 수 없습니다.

단축 메뉴에 타입 정의 옵션이 포함되기 때문에 컨트롤이나 인디케이터가 타입 정의임을 알 수 있습니다. Edit≫Find를 선택하여 타입 정의인 컨트롤이나 인디케이터를 찾을 수도 있습니다. 엄격한 타입 정의는 편집이 불가능하고 대부분의 단축 메뉴 옵션이 없어지기 때문에 프런트패널이나 블록다이어그램에서 엄격한 타입 정의를 알아볼 수 있습니다.

프런트패널이나 블록다이어그램에서 사용하는 각 타입 정의에 대해 VI는 타입 정의를 저장한 파일이나 VI 라이브러리와 연결된 상태를 유지합니다.

VI는 각각의 타입 정의와 연결되어 있어야 하므로 타입 정의를 사용하는 VI를 실행하려면 타입 정의를 포함하는 파일이나 VI 라이브러리를 이용할 수 있어야 합니다. VI를 열었는데 LabVIEW가 VI에 필요한 타입 정의를 찾지 못하면 LabVIEW는 VI에서 그 타입 정의의 인스턴스를 비활성화하고 Run 버튼은 깨진 모양으로 나타납니다. 정확한 타입 정의를 찾아서 열거나 마우스 오른쪽 버튼으로 비활성화된 인스턴스를 클릭한 다음 단축 메뉴에서 Disconnect From Type Def를 선택합니다. 타입 정의 연결을 해제하면 인스턴스의 데이터 타입에 대한 제한이 없어져 일반 컨트롤, 인디케이터 또는 상수가 됩니다. 타입 정의를 찾아 컨트롤이나 인디케이터를 타입 정의로 교체하지 않는 한 연결을 재설정할 수 없습니다.

클러스터인 타입 정의 또는 엄격한 타입 정의를 사용할 경우 Bundle 함수와 Unbundle 함수를 사용하지 말고 블록다이어그램의 Bundle By Name 함수와 Unbundle By Name 함수를 사용하여 클러스터의 원소에 액세스합니다. Bundle By Name 함수와 Unbundle By Name 함수는 클러스터 순서가 아닌 이름별로 클러스터의 원소를 참조하며, 원소의 순서를 변경하거나 클러스터 타입 정의에 새 원소를 추가해도 함수는 영향을 받지 않습니다. Bundle by Name 함수나 Unbundle By Name 함수에서 참조하는 원소를 삭제할 경우 삭제된 원소에 대한 참조는 무효가 되므로 블록다이어그램을 변경해야 합니다. Bundle by Name 함수나 Unbundle by Name 함수의 무효 이름은 검정으로 나타납니다. Bundle by Name 함수나 Unbundle By Name 함수를 클릭하여 유효 이름을 선택할 수 있는 리스트를 표시합니다.

 

타입 정의 업데이트
프런트패널에서는 어떠한 타입 정의 또는 엄격한 타입 정의든 자동으로 변경할 수 있습니다. 타입 정의 또는 엄격한 타입 정의를 변경할 때 LabVIEW가 해당 타입 정의나 엄격한 타입 정의를 포함하는 VI를 업데이트하기 전에 타입 정의나 엄격한 타입 정의를 저장해야 합니다.

컬러를 지정하고 크기를 조절하는 등 프런트패널에서 타입 정의의 인스턴스를 다양하게 편집할 경우 타입 정의의 모든 인스턴스에 그러한 변경 사항이 적용되지 않기를 바랄 수도 있습니다. 그럴 경우 다음 단계에 따라 자동 업데이트 기능을 비활성화하십시오.

 

1. 프런트패널에서 마우스 오른쪽 버튼으로 타입 정의를 클릭한 다음 Auto-Update from Type Def. 단축 메뉴 항목에서 체크표시를 해제합니다. 해당 타입 정의 인스턴스의 데이터 타입을 변경할 경우 VI에서 Run 버튼이 깨진 모양으로 나타나고 LabVIEW는 프런트패널의 타입 정의를 비활성화합니다. 엄격한 타입 정의는 항상 자동으로 업데이트되기 때문에 엄격한 타입 정의 단축 메뉴에서는 Auto-Update from Type Def. 메뉴 항목을 이용할 수 없습니다.

2. 마우스 오른쪽 버튼으로 프런트패널의 타입 정의를 클릭한 다음 단축 메뉴에서 Update from Type Def.를 선택하여 타입 정의를 수정하거나 타입 정의에 맞게 데이터 타입을 변경합니다. 타입 정의를 수정해야만 VI를 실행할 수 있습니다.

타입 정의를 사용할 때 인스턴스에 고유 기본값을 지정할 수 있습니다. 타입 정의 데이터 타입을 변경하면 LabVIEW는 가능한 경우 이전 기본값으로 새로운 데이터 타입으로 변환합니다. Numeric 컨트롤이나 인디케이터를 문자열 컨트롤이나 인디케이터로 교체하는 경우 등 데이터 타입이 호환 불가능한 타입으로 변경되면 LabVIEW는 인스턴스 기본값을 보존할 수 없습니다. 이러한 경우 LabVIEW는 인스턴스 기본값을 영(0)이나 빈 문자열 등의 값으로 설정합니다.