LabVIEW는 LabVIEW 프로젝트에 각 타겟에 대한 어플리케이션 인스턴스를 생성합니다. 프로젝트 탐색기 윈도우에서 VI를 열 때, VI는 타겟의 어플리케이션 인스턴스에서 열립니다. 또한, LabVIEW는 주요 어플리케이션 인스턴스를 생성합니다. 여기에는 프로젝트의 일부가 아닌 열린 VI와 프로젝트에서 열지 않은 VI가 포함됩니다. 추가적으로 LabVIEW는 고유한 어플리케이션 인스턴스에서 공유 라이브러리를 로드합니다. 이렇듯 유일한 어플리케이션 인스턴스에서 공유 라이브러리를 열게 되면, 공유 라이브러리 내의 VI와 공유 라이브러리 밖에서의 VI가 이름이 같아 충돌하게 되는 경우를 방지할 수 있습니다.

프런트패널과 블록다이어그램의 왼쪽 아래 코너에 나타나는 어플리케이션 인스턴 바로 가기 메뉴에 나타나는 어플리케이션 인스턴스 이름을 사용하여 VI가 어떤 어플리케이션 인스턴스에 속하는지 식별합니다.

VI가 열린 상태로 프로젝트 탐색기 윈도우에서 VI를 제거하는 경우, 열린 VI는 같은 어플리케이션 인스턴스 안에 남아있습니다. 프런트패널과 블록다이어그램의 왼쪽 아래 코너의 어플리케이션 인스턴스 선택 바로 가기 메뉴를 사용하여 VI의 어플리케이션 인스턴스를 선택할 수 있습니다.

프런트패널이나 블록다이어그램 오른쪽 위 코너의 VI 아이콘을 선택하고 아이콘을 프로젝트 탐색기윈도우의 타겟에 끌어 열린 VI를 프로젝트에 추가하는 경우, 또는 프로젝트 탐색기 윈도우에서 하나의 타겟에서 다른 타겟으로 아이템을 드래그하는 경우, 열린 VI는 어플리케이션 인스턴스를 선택할 때까지 해당 타겟의 어플리케이션 인스턴스의 일부가 되지 않습니다.

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

여러 어플리케이션 인스턴스의 VI 편집하기

동시에 여러 어플리케이션 인스턴스에서 디스크의 같은 VI를 열 수 있습니다. 예를 들어, 같은 VI를 두 개의 다른 프로젝트에서 열거나 프로젝트 내의 두 개의 다른 타겟으로부터 열 수 있습니다.

한 어플리케이션 인스턴스에서만 열린 VI를 편집한 후 그 VI를 다른 어플리케이션 인스턴스에서 열었을 경우, 방금 연 VI는 VI의 편집된 인스턴스의 최신 변경사항을 포함하고 있습니다. 그러나 이미 하나 이상의 어플리케이션 인스턴스에서 열린 VI를 편집하는 경우, LabVIEW는 자동으로 VI의 변경사항을 다른 어플리케이션 인스턴스에 적용하지 않습니다. VI가 모든 어플리케이션 인스턴스에서 같을 때까지 다른 어플리케이션 인스턴스의 VI를 편집, 실행, 또는 저장할 수 없습니다.

다음 방법 중 하나를 사용하여 VI가 모든 어플리케이션 인스턴스에서 같도록 만듭니다.

  • VI 도구 모음다른 어플리케이션 인스턴스와 동기화 버튼을 클릭하여 변경 사항을 모든 어플리케이션 인스턴스의 VI에 적용합니다.
  • 변경을 포함하는 VI를 저장합니다. VI를 저장할 때, LabVIEW는 자동으로 변경을 모든 다른 어플리케이션 인스턴스의 VI에 적용합니다.
  • 변경을 포함하는 어플리케이션 인스턴스의 VI 편집을 실행 취소합니다.
    노트 VI를 동기화한 후에는 VI의 편집을 실행 취소할 수 없습니다.

하나의 어플리케이션 인스턴스에서 VI 서버 프로퍼티와 메소드를 사용하면서 다른 어플리케이션 인스턴스와 상호 작용을 하고자 할 때에는 어플리케이션 참조를 사용해야 합니다. 여러 어플리케이션 인스턴스에서 VI가 실행되는지 분명하지 않을 수도 있습니다. 예를 들어, 각 LabVIEW 프로젝트는 자체적인 어플리케이션 인스턴스를 가집니다. project1.lvproj에서 실행되는 VI는 project2.lvproj에서 실행되는 VI와는 다른 어플리케이션 인스턴스에서 실행 중입니다. 프로젝트에서 실행되지 않는 VI는 주요 어플리케이션 인스턴스에서 실행됩니다. 뿐만 아니라, LabVIEW는 labview\help, labview\project, labview\wizard 디렉토리에 있는 사용자 VI를 프라이빗 어플리케이션 인스턴스에서 엽니다. 예를 들어, VI를 labview\project 디렉토리에 놓은 후 도구 메뉴에서 이 VI를 실행하면, LabVIEW는 주요 어플리케이션 인스턴스와는 별개의 프라이빗 어플리케이션 인스턴스(NI.LV.Dialog)에서 VI를 실행합니다.

VI가 실행 중이거나 다른 어플리케이션 인스턴스에서 실행되기 위해 보존되고 있는 동안에는 VI를 편집할 수 없습니다. VI가 프로젝트 라이브러리의 일부인 경우, VI를 실행할 때 LabVIEW는 모든 어플리케이션 인스턴스의 프로젝트 라이브러리를 일시적으로 잠급니다. VI가 실행 중인 경우에는 프로젝트 라이브러리를 편집할 수 없습니다. VI가 정지한 후, LabVIEW는 프로젝트 라이브러리를 잠금해제합니다.