멤버 VI를 생성하여 클래스 또는 인터페이스가 수행할 수 있는 작업을 정의합니다. 멤버 VI는 프라이빗 또는 보호된 영역에서 다른 메소드를 호출할 수 있는 권한이 있습니다. 클래스 멤버 VI는 클래스 프라이빗 데이터에 접근할 수 있는 권한이 있습니다. 멤버 VI는 여러 가지 방법으로 생성할 수 있습니다.

새 VI에서 멤버 VI 생성하기

다음 단계를 따라 새 VI에서 멤버 VI를 생성합니다.

  1. 새로운 LabVIEW 클래스 또는 인터페이스를 생성하거나 파일≫열기를 선택하고 열고자 하는 클래스나 인터페이스를 검색하여 기존의 클래스나 인터페이스를 엽니다.
    노트 파일≫열기를 사용하여 클래스나 인터페이스를 여는 경우, 프로젝트 탐색기 윈도우 대신 클래스 윈도우에서 클래스나 인터페이스가 열립니다. 프로젝트 탐색기 윈도우에서와 마찬가지로 클래스 윈도우에서 클래스나 인터페이스를 개발할 수 있습니다.
  2. (클래스의 경우) 클래스의 프라이빗 데이터 정의하기.
  3. 프로젝트 탐색기 윈도우에서 멤버 VI를 생성하려는 클래스 또는 인터페이스의 프로젝트 아이템을 마우스 오른쪽 버튼으로 클릭한 후, 바로 가기 메뉴에서 새로 만들기≫VI를 선택합니다. 새로운 멤버 VI()가 프로젝트 탐색기 윈도우에 나타나고, LabVIEW가 VI를 엽니다.
  4. 이제 클래스 또는 인터페이스가 수행할 수 있는 작업을 정의하는 멤버 VI를 개발할 수 있습니다.

(클래스의 경우) 프로퍼티 정의 폴더에서 멤버 VI 생성하기

프로퍼티 정의 폴더에서 멤버 VI를 생성할 경우, LabVIEW 클래스의 프라이빗 데이터는 프로퍼티 노드를 사용해서 접근할 수 있는 클래스의 프로퍼티가 됩니다.

노트 프로퍼티 정의 폴더에 지정한 이름이 프로퍼티 노드에 나타나는 프로퍼티 이름을 결정합니다. 프로퍼티 이름을 변경하려면, 이에 해당하는 프로퍼티 정의 폴더의 이름을 변경해야 합니다. 프라이빗 데이터의 이름을 변경해도 프로퍼티 노드에 나타나는 프로퍼티 이름은 변경되지 않습니다.

다음 단계를 따라 프로퍼티 정의 폴더에서 멤버 VI를 생성합니다.

  1. 새로운 LabVIEW 클래스를 생성하거나 파일≫열기를 선택하고 열고자 하는 클래스를 검색하여 기존의 클래스를 엽니다.
    노트 파일≫열기를 사용하여 클래스를 여는 경우, 프로젝트 탐색기 윈도우 대신 클래스 윈도우에서 클래스가 열립니다. 프로젝트 탐색기 윈도우에서와 마찬가지로 클래스 윈도우에서 클래스를 개발할 수 있습니다.
  2. 클래스의 프라이빗 데이터 정의하기.
  3. 프로젝트 탐색기 윈도우에서 멤버 VI를 생성하려는 클래스의 아이콘()을 마우스 오른쪽 버튼으로 클릭한 후, 바로 가기 메뉴에서 새로 만들기≫프로퍼티 정의 폴더를 선택합니다. 새 프로퍼티 정의 폴더()가 프로젝트 탐색기 윈도우에 나타납니다.
  4. 프로퍼티 정의 폴더에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 새로 만들기≫VI를 선택합니다. 또한 다이나믹 디스패치 템플릿 또는 정적 디스패치 템플릿을 사용하여 새 VI를 생성할 수 있습니다. 새로운 멤버 VI()가 프로젝트 탐색기 윈도우에 나타나고, LabVIEW가 VI를 엽니다.
    노트 또한 프로퍼티 정의 폴더에서 마우스 오른쪽 버튼을 클릭한 후, 바로 가기 메뉴에서 추가≫파일을 선택해서 프로퍼티 정의 폴더에 기존의 멤버 VI를 추가할 수도 있습니다.
  5. 이제 멤버 VI를 개발하여 클래스의 프라이빗 데이터와 상호작용할 수 있습니다. 각 프로퍼티 정의 폴더는 이 클래스의 프라이빗 데이터를 읽는 VI 한 개, 쓰는 VI 한 개, 또는 두 VI를 모두 포함할 수 있습니다.
    노트 프로퍼티 노드를 사용하여 LabVIEW 클래스에 접근하는 경우, 클래스 프로퍼티에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 접근자 VI 열기를 선택하여 LabVIEW 클래스 프로퍼티의 구현 대상을 쉽게 볼 수 있습니다. 사용자가 LabVIEW 클래스 또는 LabVIEW 클래스를 가리키는 데이터 값 참조를 프로퍼티 노드의 참조 입력에 연결하고, 접근자 VI의 블록다이어그램을 사용할 수 있을 때에만 이 옵션이 나타납니다. 프로퍼티가 하나 이상의 구현 대상에 대해 다이나믹한 경우, 이 옵션을 선택하면 구현 대상 선택 대화 상자가 디스플레이됩니다. 이 대화 상자를 사용하여 프로퍼티의 모든 구현 대상 또는 다이나믹 디스패치 멤버 VI를 보고 하나 이상의 구현 대상을 엽니다.

프로퍼티 노드를 사용해서 프라이빗 데이터를 읽거나 쓸 수 있게 해주는 멤버 VI는 4 × 2 × 2 × 4의 커넥터 팬 패턴을 가져야 합니다. 프라이빗 데이터를 읽는 멤버 VI의 터미널은 다음의 커넥터 팬 터미널을 가져야 합니다.

1 클래스 입력 3 클래스 출력 5 에러 출력
2 에러 입력 4 값 출력

프라이빗 데이터를 쓰는 멤버 VI의 터미널은 다음 커넥터 팬 터미널을 가져야 합니다.

1 클래스 입력 3 에러 입력 5 에러 출력
2 값 입력 4 클래스 출력
노트 멤버 VI의 클래스 입력클래스 출력은 같은 LabVIEW 클래스여야 합니다. 프로퍼티 정의 폴더가 읽기와 쓰기 멤버 VI를 둘 다 포함할 경우, 읽기 VI의 값 출력과 쓰기 VI의 값 입력은 같은 데이터 타입이어야 합니다.

다이나믹 디스패치 템플릿에서 멤버 VI 생성하기

VI 템플릿을 사용하여 새로 만들기 대화 상자를 사용하는 새 멤버 VI를 생성할 수 있습니다. 그러나 LabVIEW를 사용하면 쉽고 빠르게 많은 다이나믹 메소드가 필요로 하는 여러 가지 기능을 포함하는 다이나믹 디스패치 멤버 VI를 생성할 수 있습니다. LabVIEW는 에러 입력에러 출력 클러스터, 에러 핸들링을 위한 케이스 구조, 입력 클래스 또는 인터페이스, 출력 클래스 또는 인터페이스로 새 멤버 VI를 채웁니다. LabVIEW는 입력 및 출력 터미널 모두를 VI 커넥터 팬에서 다이나믹한 것으로 설정합니다. 다음 단계를 따라 다이나믹 디스패치 템플릿에서 멤버 VI를 생성합니다.

  1. 새로운 LabVIEW 클래스 또는 인터페이스를 생성하거나 파일≫열기를 선택하고 열고자 하는 클래스나 인터페이스를 검색하여 기존의 클래스나 인터페이스를 엽니다.
    노트 파일≫열기를 사용하여 클래스나 인터페이스를 여는 경우, 프로젝트 탐색기 윈도우 대신 클래스 윈도우에서 클래스나 인터페이스가 열립니다. 프로젝트 탐색기 윈도우에서와 마찬가지로 클래스 윈도우에서 클래스나 인터페이스를 개발할 수 있습니다.
  2. (클래스의 경우) 클래스의 프라이빗 데이터 정의하기.
  3. 프로젝트 탐색기 윈도우에서 멤버 VI를 생성하려는 클래스 또는 인터페이스의 프로젝트 아이템을 마우스 오른쪽 버튼으로 클릭한 후, 바로 가기 메뉴에서 새로 만들기≫다이나믹 디스패치 템플릿으로부터 VI를 선택합니다. 새로운 VI가 프로젝트 탐색기 윈도우에 나타나고, LabVIEW가 VI를 자동으로 엽니다. VI의 프런트패널이 클래스 또는 인터페이스의 인디케이터, 클래스 또는 인터페이스의 컨트롤, 그리고 에러 입력에러 출력 클러스터를 디스플레이합니다.
  4. <Ctrl-E> 키를 눌러서 블록다이어그램을 디스플레이합니다. (macOS) <Option–E> 키를 누릅니다. (Linux) <Alt-E> 키를 누릅니다. 블록다이어그램은 두 개의 클래스 또는 인터페이스의 터미널, 에러 입력에러 출력 클러스터 터미널 및 에러 핸들링을 위한 케이스 구조를 디스플레이합니다.
  5. 이제 멤버 VI를 개발하여 클래스의 프라이빗 데이터와 상호작용할 수 있습니다.

정적 디스패치 템플릿에서 멤버 VI 생성하기

또한 LabVIEW를 사용하면 쉽고 빠르게 정적 디스패치 멤버 VI 생성할 수 있습니다. LabVIEW는 에러 입력에러 출력 클러스터, 에러 핸들링을 위한 케이스 구조, 입력 클래스 또는 인터페이스, 출력 클래스 또는 인터페이스로 새 멤버 VI를 채웁니다. 다이나믹 디스패치 VI와 달리, LabVIEW는 정적 디스패치 VI의 커넥터 팬에서 입력과 출력 터미널을 다이나믹으로 설정하지 않습니다. 다음 단계를 따라 정적 디스패치 템플릿에서 멤버 VI를 생성합니다.

  1. 새로운 LabVIEW 클래스 또는 인터페이스를 생성하거나 파일≫열기를 선택하고 열고자 하는 클래스나 인터페이스를 검색하여 기존의 클래스나 인터페이스를 엽니다.
    노트 파일≫열기를 사용하여 클래스나 인터페이스를 여는 경우, 프로젝트 탐색기 윈도우 대신 클래스 윈도우에서 클래스나 인터페이스가 열립니다. 프로젝트 탐색기 윈도우에서와 마찬가지로 클래스 윈도우에서 클래스나 인터페이스를 개발할 수 있습니다.
  2. (클래스의 경우) 클래스의 프라이빗 데이터 정의하기.
  3. 프로젝트 탐색기 윈도우에서 멤버 VI를 생성하려는 클래스 또는 인터페이스의 프로젝트 아이템을 마우스 오른쪽 버튼으로 클릭한 후, 바로 가기 메뉴의 새로 만들기≫정적 디스패치 템플릿으로부터 VI를 선택합니다. 새로운 VI가 프로젝트 탐색기 윈도우에 나타나고, LabVIEW가 VI를 자동으로 엽니다. VI의 프런트패널이 클래스 또는 인터페이스의 인디케이터, 클래스 또는 인터페이스의 컨트롤, 그리고 에러 입력에러 출력 클러스터를 디스플레이합니다.
  4. <Ctrl-E> 키를 눌러서 블록다이어그램을 디스플레이합니다. (macOS) <Option–E> 키를 누릅니다. (Linux) <Alt-E> 키를 누릅니다. 블록다이어그램은 두 개의 클래스 또는 인터페이스의 터미널, 에러 입력에러 출력 클러스터 터미널 및 에러 핸들링을 위한 케이스 구조를 디스플레이합니다.
  5. 이제 멤버 VI를 개발하여 클래스의 프라이빗 데이터와 상호작용할 수 있습니다.

(클래스의 경우) 데이터 멤버 접근을 위한 멤버 VI 생성하기

LabVIEW 클래스의 멤버인 읽기 또는 쓰기 접근자 VI를 빠르게 생성할 수 있습니다. 읽기 접근자 VI는 호출 VI의 데이터에 접근할 수 있도록 LabVIEW 클래스 데이터를 풉니다. 쓰기 접근자 VI는 호출 VI에서 전달되는 클래스 데이터의 새 값을 풉니다. 접근자 VI를 사용하여 LabVIEW 클래스의 멤버가 아닌 VI의 클래스 데이터에서 읽거나 클래스 데이터로 쓸 수 있습니다. 다음 단계를 따라 VI를 생성하여 클래스의 데이터에 접근합니다.

  1. 새로운 LabVIEW 클래스를 생성하거나 파일≫열기를 선택하고 열고자 하는 클래스를 검색하여 기존의 클래스를 엽니다.
    노트 파일≫열기를 사용하여 클래스를 여는 경우, 프로젝트 탐색기 윈도우 대신 클래스 윈도우에서 클래스가 열립니다. 프로젝트 탐색기 윈도우에서와 마찬가지로 클래스 윈도우에서 클래스를 개발할 수 있습니다.
  2. 클래스의 프라이빗 데이터 정의하기.
  3. 프로젝트 탐색기 윈도우에서 멤버 VI를 생성하려는 클래스의 아이콘()을 마우스 오른쪽 버튼으로 클릭한 후, 바로 가기 메뉴의 새로 만들기≫데이터 멤버 접근을 위한 VI를 선택하여 접근자 생성 대화 상자를 디스플레이합니다. 또한 LabVIEW 클래스의 프라이빗 데이터 컨트롤에 있는 데이터 멤버에서 마우스 오른쪽 버튼을 클릭하고, 바로 가기 메뉴에서 접근자 생성을 선택할 수도 있습니다.
    노트 이 옵션을 사용하기 전에 새 LabVIEW 클래스를 저장해야 합니다. 새 클래스를 저장하지 않으면 LabVIEW는 데이터 멤버 접근을 위한 VI접근자 생성 옵션을 비활성시킵니다.
  4. 접근하려는 데이터 멤버, 접근 타입, 새 VI가 다이내믹일지, 정적일지의 여부, 또한 프로퍼티 노드를 사용해서 데이터 멤버에 접근할 수 있을지 선택합니다. 프로퍼티 노드를 통해 선택한 데이터 멤버에 접근할 수 있도록 지정할 경우, LabVIEW는 이 멤버 VI를 프로퍼티 정의 폴더에 추가합니다.
    노트 프로퍼티 노드를 사용하여 LabVIEW 클래스에 접근하고 프로퍼티 노드를 통해 선택한 데이터 멤버에 접근할 수 있도록 지정한 경우, 클래스 프로퍼티에서 쉽게 LabVIEW 클래스 프로퍼티의 구현 대상을 볼 수 있습니다. 클래스 프로퍼티에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 접근자 VI 열기를 선택합니다. 사용자가 LabVIEW 클래스 또는 LabVIEW 클래스를 가리키는 데이터 값 참조를 프로퍼티 노드의 참조 입력에 연결하고, 접근자 VI의 블록다이어그램을 사용할 수 있을 때에만 이 옵션이 나타납니다. 프로퍼티가 하나 이상의 구현 대상에 대해 다이나믹한 경우, 이 옵션을 선택하면 구현 대상 선택 대화 상자가 디스플레이됩니다. 이 대화 상자를 사용하여 프로퍼티의 모든 구현 대상 또는 다이나믹 디스패치 멤버 VI를 보고 하나 이상의 구현 대상을 엽니다.
    <Ctrl> 키를 눌러 하나 이상의 데이터 멤버를 선택하는 경우, LabVIEW는 각 데이터 멤버의 접근자 VI를 생성합니다. (macOS) <Option> 키를 누릅니다. (Linux) <Alt> 키를 누릅니다. 대화 상자에서 읽기 및 쓰기를 선택하는 경우, LabVIEW는 읽기 권한을 제공하는 접근자 VI와 쓰기 권한을 제공하는 다른 접근자 VI를 생성합니다.
  5. 생성 버튼을 클릭하여 한 개 또는 여러 개의 접근자 VI를 생성합니다. 프로젝트 탐색기 윈도우에서 선택한 각 데이터 멤버 및 각 타입의 접근에 대한 새 VI가 나타나고, LabVEW는 자동으로 각 VI를 엽니다. VI의 이름은 선택한 접근자 타입과 데이터 멤버 이름으로 구성됩니다. 예를 들어, Read Numeric.vi. VI의 프런트패널이 LabVIEW 클래스 인디케이터, LabVIEW 클래스 컨트롤, 선택한 데이터 멤버 그리고 에러 입력에러 출력 클러스터를 디스플레이합니다.
  6. <Ctrl-E> 키를 눌러서 블록다이어그램을 디스플레이합니다. (macOS) <Option–E> 키를 누릅니다. (Linux) <Alt-E> 키를 누릅니다. 블록다이어그램은 두 개의 LabVIEW 클래스 터미널, 선택한 데이터 멤버, 에러 입력에러 출력 클러스터 터미널과 에러 핸들링을 위한 케이스 구조를 디스플레이합니다.
  7. 호출 VI로부터의 클래스 데이터를 조작할 수 있습니다.

멤버 VI 생성하여 상위 멤버 VI를 덮어쓰기

상위 다이나믹 디스패치 멤버 VI의 기능을 덮어쓰거나 확장시키는 다이나믹 디스패치 멤버 VI를 생성할 수 있습니다. 두 멤버 VI에서 다음의 셋팅이 같은 경우에만 한 멤버 VI가 상위 클래스나 인터페이스의 다른 멤버 VI를 덮어쓸 수 있습니다.

바로 가기 메뉴의 새로 만들기≫덮어쓰기 위한 VI를 선택하면 LabVIEW는 올바른 덮어쓰기의 모든 조건을 충족하는 덮어쓰기 멤버 VI를 생성합니다. 다음의 단계를 따라 새로 만들기≫덮어쓰기 위한 VI 옵션을 사용하는 덮어쓰기 멤버 VI를 생성합니다.

  1. 새로운 LabVIEW 클래스 또는 인터페이스를 생성하거나 파일≫열기를 선택하고 열고자 하는 클래스나 인터페이스를 검색하여 기존의 클래스나 인터페이스를 엽니다. 새로운 클래스 또는 인터페이스를 생성하는 경우, 클래스나 인터페이스의 덮어쓰기 멤버 VI를 생성하기 이전에 반드시 클래스나 인터페이스를 저장해야 합니다.
    노트 파일≫열기를 사용하여 클래스를 여는 경우, 프로젝트 탐색기 윈도우 대신 클래스 윈도우에서 클래스가 열립니다. 프로젝트 탐색기 윈도우에서와 마찬가지로 클래스 윈도우에서 클래스를 개발할 수 있습니다.
  2. 프로젝트 탐색기 윈도우에서 멤버 VI를 생성하려는 클래스 또는 인터페이스의 프로젝트 아이템을 마우스 오른쪽 버튼으로 클릭한 후, 바로 가기 메뉴의 새로 만들기≫덮어쓰기 위한 VI를 선택합니다.
    노트 LabVIEW는 사용자가 선택한 클래스 또는 인터페이스가 덮어쓸 수 있는 멤버 VI를 상속하지 않는 경우, 덮어쓰기 위한 VI 옵션을 비활성화합니다. 상위 클래스 또는 인터페이스에 있는 VI가 다이나믹 디스패치 멤버 VI이어야만 이를 덮어쓸 수 있습니다.
  3. 새로 덮어쓰기 대화 상자가 나타납니다. 이 대화 상자는 상위 클래스 또는 인터페이스가 정의하는 다이나믹 메소드를 디스플레이합니다. 덮어쓰고자 하는 멤버 VI를 선택합니다.
  4. 확인 버튼을 클릭합니다.
  5. 새로운 VI가 프로젝트 탐색기 윈도우에 나타나고, LabVIEW가 VI를 자동으로 엽니다. LabVIEW는 상위 VI 아이콘을 사용하며 직하위 클래스나 인터페이스의 아이콘 마스크를 덮어써서 새 VI의 아이콘을 생성합니다. 또한, 프런트패널은 상위 멤버 VI로부터 복제된 컨트롤과 인디케이터, LabVIEW 클래스 인디케이터, 에러 입력에러 출력 클러스터를 디스플레이합니다.
  6. <Ctrl-E> 키를 눌러서 블록다이어그램을 디스플레이합니다. (macOS) <Option–E> 키를 누릅니다. (Linux) <Alt-E> 키를 누릅니다. 블록다이어그램은 LabVIEW가 상위 멤버 VI로부터 복사한 터미널을 디스플레이합니다. LabVIEW는 또한 자동으로 터미널을 직상위 클래스 메소드 호출 노드에 연결합니다.

이제 필요에 따라 덮어쓰기 멤버 VI의 블록다이어그램 코드를 변경할 수 있습니다.

노트 새로 생성된 덮어쓰기 멤버 VI는 초기에 상위 멤버 VI 의 상위 실행과 동일하게 작동합니다. 덮어쓰기 멤버 VI를 사용하여 상위 멤버 VI 형태에서 기능을 추가하거나 제거할 수 있습니다.

하위 클래스 또는 인터페이스에서 덮어쓰기 VI를 필요로 하는 멤버 VI 생성하기

하위 클래스 또는 인터페이스가 멤버 VI의 기능을 덮어쓰거나 확장시키도록 요청하는 다이나믹 디스패치 VI를 생성할 수 있습니다. 하위 항목이 상위 멤버 VI를 덮어쓰도록 요청하는 경우, 이 멤버 VI는 하위 항목에서 이 VI를 구현해야 할 필요가 없습니다. 기본적으로 인터페이스는 하위 항목이 멤버 VI를 덮어쓰도록 요청하지만, 클래스는 하위 항목이 멤버 VI를 덮어쓰도록 요청하지 않습니다.

다음 단계에 따라 하위 항목이 멤버 VI를 덮어쓰도록 요청합니다.

  1. 새로운 LabVIEW 클래스 또는 인터페이스를 생성하거나 파일≫열기를 선택하고 열고자 하는 클래스나 인터페이스를 검색하여 기존의 클래스나 인터페이스를 엽니다.
    노트 파일≫열기를 사용하여 클래스나 인터페이스를 여는 경우, 프로젝트 탐색기 윈도우 대신 클래스 윈도우에서 클래스나 인터페이스가 열립니다. 프로젝트 탐색기 윈도우에서와 마찬가지로 클래스 윈도우에서 클래스나 인터페이스를 개발할 수 있습니다.
  2. 프로젝트 탐색기 윈도우에서 멤버 VI를 생성하려는 클래스 또는 인터페이스의 프로젝트 아이템을 마우스 오른쪽 버튼으로 클릭한 후, 바로 가기 메뉴에서 새로 만들기≫다이나믹 디스패치 템플릿으로부터 VI를 선택합니다. 새로운 VI가 프로젝트 탐색기 윈도우에 나타나고, LabVIEW가 VI를 자동으로 엽니다. VI의 프런트패널이 클래스 또는 인터페이스의 인디케이터, 클래스 또는 인터페이스의 컨트롤, 그리고 에러 입력에러 출력 클러스터를 디스플레이합니다.
  3. 프로젝트 탐색기 윈도우에서, 멤버 VI를 생성한 클래스 또는 인터페이스의 프로젝트 아이템에서 마우스 오른쪽 버튼을 클릭한 후 프로퍼티를 선택하여 클래스/인터페이스 프로퍼티 대화 상자를 디스플레이합니다.
  4. 아이템 셋팅을 선택하여 아이템 셋팅 페이지를 디스플레이하고, 하위 항목이 덮어쓸 다이나믹 디스패치 VI를 선택합니다.
  5. 하위 항목이 반드시 덮어쓰기 확인란에 확인 표시를 합니다. 이제 각 하위 항목이 이 VI의 구현을 덮어써야 하기 때문에, 이 VI에 대한 구현을 제공할 필요가 없습니다.