프로퍼티는 VI, 객체 또는 어플리케이션의 속성입니다. 메소드는 VI, 객체, 또는 어플리케이션에서 동작을 수행합니다. [프로퍼티 노드][인보크 노드]를 사용하여 로컬 또는 원격 어플리케이션 인스턴스, VI, 객체에서 프로퍼티와 메소드를 얻고 설정할 수 있습니다. 여러 어플리케이션, VI, 객체의 셋팅은 오직 프로퍼티와 메소드를 통해 가져오고 설정할 수 있습니다.

어플리케이션VI 클래스 프로퍼티 및 메소드 사용에 대한 예제는 labview\examples\viserver 디렉토리를 참조하십시오.

관련 예제 찾기

프로퍼티 노드

프로퍼티 노드를 사용하여 어플리케이션 또는 VI의 다양한 프로퍼티를 얻고 설정합니다. 수행 도구로 프로퍼티 터미널을 클릭하거나 노드의 흰색 영역에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 프로퍼티를 선택하여 노드에서 프로퍼티를 선택합니다.

다음은 프로퍼티를 사용하여 어플리케이션이나 VI의 사용을 간편하게 만든 예입니다:

  • 텍스트 포커스를 가장 많이 사용하는 주요 컨트롤로 설정함.
  • 현재 관련이 없거나 유효하지 않은 컨트롤을 비활성화 시키거나 숨김.
  • 컨트롤을 하이라이트하여 단계별로 사용자에게 정보를 제공함.
  • 색을 변경하여 에러 조건을 인식하도록 유도함.

하나의 노드를 사용하여 여러 프로퍼티를 읽거나 쓸 수 있습니다. 그러나, 일부 프로퍼티를 읽을 수 없고 일부 프로퍼티는 쓸 수 없습니다. 위치 도구로 프로퍼티 노드의 크기를 조정하여 새로운 터미널을 추가합니다. 프로퍼티의 오른쪽에 위치한 작은 화살표는 읽는 프로퍼티를 나타냅니다. 프로퍼티의 왼쪽에 위치한 작은 화살표는 쓰는 프로퍼티를 나타냅니다. 프로퍼티에서 마우스 오른쪽 버튼을 클릭하고 바로 가기 메뉴에서 읽기로 변경 또는 쓰기로 변경을 선택하여 프로퍼티의 작동을 변경합니다.

노드는 위에서 아래로 실행됩니다. 실행 전에 에러가 발생하는 경우 프로퍼티 노드는 실행되지 않으므로 항상 에러 발생 가능성을 확인하십시오. 프로퍼티에서 에러가 발생하는 경우, LabVIEW는 나머지 프로퍼티를 무시하고 에러를 반환합니다. 프로퍼티 노드에서 마우스 오른쪽 버튼을 클릭한 후 노드 내의 에러 무시를 선택하면, LabVIEW는 프로퍼티 노드에 남아있는 프로퍼티를 실행합니다. 오직 첫번째 에러가 프로퍼티 노드에 의해서 반환됩니다. 에러 출력 클러스터는 어떤 프로퍼티가 에러를 발생시켰는지에 대한 정보를 포함합니다.

프로퍼티 노드가 열려있고 객체의 참조를 반환하는 경우, [참조 닫기] 함수를 사용하여 참조를 닫습니다.

내부적으로 연결된 프로퍼티 노드

프런트패널 객체에서 마우스 오른쪽 버튼을 클릭한 후 생성≫프로퍼티 노드를 선택하고 바로 가기 메뉴에서 프로퍼티를 선택하여 객체의 프로퍼티를 생성할 때, LabVIEW는 프런트패널 객체에 내부적으로 링크된 블록다이어그램에 프로퍼티 노드를 생성합니다. 이러한 프로퍼티 노드는 생성된 프런트패널 객체에 내부적으로 연결되므로, 노드에는 참조 입력이 없으며 이 노드를 프런트패널 객체의 터미널이나 컨트롤 참조에 연결할 필요가 없습니다. 프런트패널 객체로의 링크를 제거하려면, 블록다이어그램의 프로퍼티 노드에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 컨트롤로부터 연결 끊기를 선택합니다.

인보크 노드

인보크 노드를 사용하여 어플리케이션 또는 VI에서 동작이나 메소드를 수행합니다. 프로퍼티 노드와는 달리 하나의 인보크 노드는 어플리케이션 또는 VI에 하나의 메소드만을 수행합니다. 메소드를 선택하려면 수행 도구로 메소드 터미널을 클릭하거나 노드의 흰색 영역에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 메소드를 선택합니다. 또한, 프런트패널 객체에서 마우스 오른쪽 버튼을 클릭하고 생성≫인보크 노드를 선택한 후, 바로 가기 메뉴에서 메소드를 선택하여 내부적으로 연결된 인보크 노드를 생성할 수 있습니다.

메소드의 이름은 항상 인보크 노드의 파라미터 리스트에서 첫번째 터미널입니다. 메소드가 값을 반환하는 경우, 메소드 터미널은 반환값을 디스플레이합니다. 그렇지 않은 경우, 메소드 터미널은 값을 갖지 않습니다.

인보크 노드는 파라미터를 위에서 아래로 나열합니다. 메소드의 이름은 위에 나열하고 비활성화된 옵션 파라미터는 아래쪽에 나열합니다.

어플리케이션 클래스 프로퍼티와 메소드 변경하기

LabVIEW의 로컬 또는 원격 어플리케이션 인스턴스에서 프로퍼티를 얻거나 설정할 수 있고, LabVIEW에서 메소드를 수행할 수 있고, 두 가지 모두를 수행할 수 있습니다. 다음 블록다이어그램은 로컬 컴퓨터의 메모리에 위치한 모든 VI를 프런트패널에서 문자열 배열로 디스플레이하는 방법을 보여줍니다.

참조 번호를 참조 입력에 연결하지 않는 경우, 프로퍼티 노드 또는 인보크 노드는 현재의 어플리케이션 인스턴스에 대한 참조를 사용합니다. 다른 어플리케이션 인스턴스의 프로퍼티나 메소드를 변경하려는 경우, 참조 입력에 어플리케이션 참조를 연결해야 합니다. 여러 어플리케이션 인스턴스가 동시에 열려 있는 경우, 어플리케이션 참조를 참조 입력에 와이어로 연결하는 것을 잊지 마십시오. 예를 들어, LabVIEW는 사용자가 LabVIEW 프로젝트 또는 LabVIEW 프로젝트를 위한 타겟을 생성할 때마다 새로운 어플리케이션 인스턴스를 엽니다. 또한, LabVIEW는 주요 어플리케이션 인스턴스를 생성합니다. 여기에는 프로젝트의 일부가 아닌 열린 VI와 프로젝트에서 열지 않은 VI가 포함됩니다.

반출된 VI를 원격 컴퓨터의 메모리에서 찾으려면, 다음 블록다이어그램에서 보이는 것과 같이, 문자열 컨트롤을 [어플리케이션 참조 열기] 함수의 머신 이름 입력에 연결하고, IP 주소나 도메인을 입력하십시오. 또한, 이전 블록다이어그램에서 사용된 메모리상의 모든 VI 프로퍼티는 로컬 어플리케이션 인스턴스에만 적용되므로 메모리 상의 VI 반출 프로퍼티를 선택해야 합니다.

또한 기본:어플리케이션 프로퍼티를 사용하여 기본 어플리케이션 참조를 프로그램적으로 반환할 수 있습니다. 어플리케이션 프로퍼티를 사용하여 타겟 어플리케이션 인스턴스를 프로그램적으로 엽니다.

VI 클래스 프로퍼티와 메소드 변경하기

VI의 프로퍼티를 받거나 설정할 수 있고, VI에서 메소드를 수행할 수 있고, 이 두 가지 모두를 수행할 수 있습니다. 어플리케이션 클래스 프로퍼티와 메소드를 조작할 때 [VI 참조 열기] 함수를 사용하여 VI 참조를 반환한 후, 프로퍼티 노드와 인보크 노드를 사용합니다.

참조 입력에 참조 번호를 연결하지 않는 경우, 프로퍼티 또는 메소드는 프로퍼티 노드나 인보크 노드를 포함하는 VI의 참조를 사용합니다. 다른 VI의 프로퍼티나 메소드를 변경하려는 경우, VI 참조 번호를 참조 입력에 연결해야 합니다.

프로퍼티 노드는 인보크 노드와 유사하게 작동합니다. VI 참조 번호를 프로퍼티 노드에 연결한 후, 모든 VI 클래스 프로퍼티에 접근할 수 있습니다.

어플리케이션과 VI 클래스 프로퍼티 및 메소드 변경하기

일부 VI에서는, 어플리케이션과 VI 클래스의 프로퍼티 및 메소드에 둘 다 접근해야 합니다. 다음 블록다이어그램과 같이, 어플리케이션과 VI 클래스 참조 번호를 따로 열고 닫아야 합니다.

노트 이 블록다이어그램의 어플리케이션 참조는 함축적 참조이므로, 닫지 않아도 됩니다. LabVIEW에서 참조를 닫아야 하는 경우에 대한 더 자세한 정보는 LabVIEW에서 참조 닫기 길라잡이를 참조하십시오.

다음 블록다이어그램은 로컬 컴퓨터 메모리에 있는 반출 VI를 구분하는 방법과 프런트패널의 각 VI 경로를 디스플레이하는 방법을 보여줍니다. 메모리 안에서 반출 VI를 찾으려면 어플리케이션 클래스 프로퍼티에 접근해야 합니다. 각 VI의 경로를 지정하려면, 우선 VI 클래스 프로퍼티에 접근해야 합니다. 메모리 안의 VI 반출 개수가 [For 루프]의 실행 횟수를 결정합니다. 메모리에 있는 각 VI에 VI 참조 번호가 필요하므로 [For 루프] 안에 [VI 참조 열기][참조 닫기] 함수를 놓습니다.