디스크 상의 파일 경로, 이름 문자열, 또는 기존 참조에 의해 지정된 VI, 사용자 컨트롤, 또는 글로벌 변수에 대한 참조를 반환합니다.


icon

입력/출력

  • cvirn.png 타입 지정자 VI 참조 번호(타입만)

    타입 지정자 VI 참조 번호(타입 전용)VI 참조의 데이터 타입과 커넥터 팬 정보를 결정합니다. LabVIEW는 이 입력의 실제 값을 무시합니다.

    함수는 일반 VI 참조를 반환하도록 기본 설정되어 있습니다.

    이 함수의 VI 참조 출력을 참조에 의한 호출 노드 또는 비동기화 호출 시작 노드와 함께 사용하려면, 이 입력에 반드시 엄격한 타입의 VI 참조를 연결해야 합니다.

    엄격한 타입의 VI 참조를 이 입력에 연결하면, VI 경로에 의해 지정된 VI의 커넥터 팬은 이 입력의 커넥터 팬과 반드시 일치해야 합니다.

  • caprn.png 어플리케이션 참조(로컬)

    어플리케이션 참조는 LabVIEW 어플리케이션 인스턴스에 대한 참조입니다.

    LabVIEW는 호출 VI의 어플리케이션 인스턴스를 사용하도록 기본 설정되어 있습니다. [어플리케이션 참조 열기] 함수를 사용하여 다른 어플리케이션 인스턴스에 대한 참조를 얻을 수 있습니다. 다른 어플리케이션 인스턴스의 참조를 어플리케이션 참조 입력에 연결하면, VI 경로는 그 어플리케이션 인스턴스를 실행하는 컴퓨터의 파일 시스템 안의 위치를 참조합니다.
  • cpath.png vi 경로

    vi 경로에는 참조하려는 VI의 경로 , 참조하려는 VI의 이름이 포함된 문자열 또는 참조하려는 VI에 대한 VI 참조를 사용할 수 있습니다.

    경로를 연결할 경우, LabVIEW는 동일한 타겟의 경로에서 이전에 로드한 메모리 상의 VI를 검색합니다. 이름 문자열을 연결할 경우, 문자열은 반드시 타겟의 메모리에 있는 VI의 전체 구분 문자 이름과 일치해야만 합니다. 메로리에 일치하는 VI가 없으면 VI는 디스크의 파일에서 VI를 로드하려고 합니다. LabVIEW가 파일을 찾지 못하면 에러가 발생합니다.

    경로가 상대적인 경우, 호출자 VI가 저장되지 않았으면 VI는 경로를 호출자 VI 또는 어플리케이션 디렉토리에 대한 상대 경로로 해석합니다.

    노트

    어플리케이션 참조로 원격 어플리케이션 인스턴스를 지정하는 경우, 경로는 원격 파일 시스템 상에서 원격 컴퓨터에 위치하는 것으로 해석됩니다. 경로는 로컬 컴퓨터의 경로 분리자를 사용하여 표시되지만, 요청이 원격 컴퓨터에 도착할 때 원격 컴퓨터의 경로 분리자로 바뀝니다.

    예를 들어, Windows 기반 애플리케이션에서 My HD/LabVIEW Vis/foo.vi에서 Linux의 VI를 참조하려면 My HD:\LabVIEW Vis\foo.vi경로를 사용합니다. 반대로 Linux 애플리케이션에서 Windows를 실행하는 컴퓨터의 C:\labview\foo.vi에 있는 VI를 참조하려면 C/labview/foo.vi경로를 연결합니다.

    경로를 배선하거나 VI 및 응용 프로그램 참조를 모두 배선하는 경우 LabVIEW는 사용자 인터페이스가 유휴 상태가 될 때까지 기다렸다가 디스크에서 VI를 로드합니다. 응용 프로그램 참조 없이 이름 문자열 또는 VI 참조를 연결하면 LabVIEW는 디스크에서 VI를 로드하지 않으므로 사용자 인터페이스가 유휴 상태가 될 때까지 기다릴 필요가 없습니다. LabVIEW는 지정된 이름을 가진 VI만을 메모리에서 검색합니다.

    노트 LabVIEW는 VI 참조 열기 기능으로 이름을 사용하여 복제 VI에 대한 참조를 여는 기능을 지원하지 않습니다. 이 함수를 사용하여 복제본 VI의 참조를 열면 LabVIEW가 충돌할 수 있습니다.
  • ci32.png 옵션

    옵션VI 참조에 의해 참조된 VI의 실행 특성을 결정하며, 이러한 특성에는 VI를 비동기적으로 호출할 수 있는지 등이 포함됩니다. 기본은 0x0입니다.

    다음 옵션 플래그를 일부 결합하여 옵션을 생성합니다.

    옵션 플래그설명
    0x01 수정사항을 기록합니다―VI 서버를 사용하여 VI를 수정했을 때 VI 제목 옆에 별표 (*)가 나타나게 하려면 이 옵션 플래그를 사용합니다. LabVIEW가 수정사항을 기록하려면 VI가 반드시 편집모드이어야 합니다.
    0x02 편집을 위해 템플릿을 엽니다―이 옵션 플래그를 사용하여 .vit 파일 원본을 엽니다. 이 옵션 플래그를 선택하지 않는 경우, LabVIEW는 템플릿 VI의 새 인스턴스를 엽니다. 인스턴스를 편집해도 원본 .vit 파일에는 영향을 미치지 않습니다. 이 옵션 플래그는 템플릿이 아닌 파일에 아무 영향을 미치지 않습니다.
    0x04 사용자에게 저장을 요청합니다―이 옵션 플래그를 사용하여 다음 조건이 모두 참인 경우, 이 VI 참조가 닫힐 때 사용자에게 변경사항을 저장하도록 요청합니다:
    • 참조된 VI 또는 그 SubVI는 저장되지 않은 변경사항을 포함합니다.
    • 참조된 VI에 다른 열린 참조가 없습니다.
    • 참조된 VI는 메모리에서 제거될 수 있습니다. 예를 들면 어떤 다른 VI도 VI를 호출하지 않고, VI의 프런트패널이 닫혀져 있고, VI가 열린 프로젝트 라이브러리의 멤버가 아니거나 기타의 경우에 VI는 메모리에서 제거될 수 있습니다.
    0x08

    재호출 실행 준비―타겟 VI 대신 이 VI의 재호출 복제본에 대한 참조를 원하는 경우 이 옵션 플래그를 사용합니다. VI의 재호출 복제본을 사용하면 같은 VI의 여러 프런트패널을 열거나, 같은 VI의 여러 복제본을 병렬로 실행할 수 있습니다. 타겟 VI의 각 참조에 대해, LabVIEW는 별도로 타겟 VI의 복제본을 생성합니다. 이 복제본은 일반 SubVI 호출에서 사용하는 공유 복제본 풀에 속하지 않습니다.

    LabVIEW는 타입 지정자 VI 참조 번호(타입만)을 연결하는 경우 이 플래그를 무시합니다. 타입 정의자를 제공하면 타겟 VI가 재호출인 경우에, 원할 때에 항상 재호출 복제본을 얻을 수 있기 때문입니다. 타겟 VI가 재호출 VI가 아닌 경우, LabVIEW는 에러 1096을 반환합니다.

    이 플래그를 VI 실행 메소드와 함께 사용하여 여러 재호출 복제본을 병렬로 실행할 수 있습니다. VI 실행 메소드 대신 비동기화 호출 시작 노드를 사용하여 타겟 VI를 비동기적으로 실행할 수 있습니다. 비동기화 호출 시작 노드를 사용하면, 인터페이스가 보다 간단해지고 성능이 향상될 뿐만 아니라, 이에 대응하는 비동기식 호출 기다림 노드와 함께 사용하여 타겟 VI의 출력을 수집할 수 있습니다.
    0x10 찾을 수 없는 SubVI의 위치를 알아내도록 요청합니다―이 옵션 플래그를 사용하면 LabVIEW를 통해 참조된 VI에서 찾을 수 없는 subVI를 검색할 수 있습니다.
    0x20 로드 대화 상자를 숨깁니다―참조된 VI에서 찾을 수 없는 SubVI를 찾으려고 할 때 LabVIEW가 로드 대화 상자를 나타내지 않도록 합니다.
    노트 이 옵션 플래그는 LabVIEW가 찾을 수 없는 VI를 검색하도록 대화 상자를 띄우는지 여부에 영향을 미치지 않습니다.
    0x40 재호출 VI에서 동시 호출을 활성화합니다―참조에 의한 호출 노드 또는 비동기화 호출 시작 노드를 For 루프 안에서 병렬 루프 반복과 함께 사용할 때와 같이, 여러 개의 참조에 의한 호출 또는 비동기화 호출 시작 노드를 사용하여 재호출 타겟 VI의 복제본을 병렬로 실행할 때 이 옵션 플래그를 사용합니다. 이 옵션 플래그를 사용하면 각 참조에 의한 호출 노드가 복제본 VI의 데이터 공간에 접근할 수 있도록 하기 때문에 병렬 실행이 가능합니다. 이 옵션을 사용하지 않는 경우, 같은 데이터 공간에 접근하려면 기다려야 하기 때문에 같은 타겟 VI에 대한 호출은 한 번에 한 개씩만 실행할 수 있습니다.

    0x40 옵션 플래그는 다음 상황에서만 유효합니다:

    • 타겟 VI가 재호출 VI이며 복제본을 공유합니다.
    • 타겟 VI가 재호출 VI이며, 0x80 또한 0x100 옵션 플래그가 포함되었습니다.
    노트 0x40 옵션 플래그가 타겟 VI 또는 포함되어 있는 다른 옵션 플래그에 대해 유효하지 않을 경우, LabVIEW는 에러 1591을 반환합니다.
    0x80 호출 및 무시를 준비합니다―비동기화 호출 시작 노드를 사용하여 비동기적으로 타겟 VI를 호출한 후 VI가 언제 또는 무엇을 반환하는지 알 필요가 없을 때 이 옵션을 사용합니다. 이 옵션 플래그는 0x08 또는 0x100과 함께 사용하지 마십시오.
    노트 이 옵션 플래그를 원격 VI의 참조와 함께 사용하면 LabVIEW는 에러 1578을 반환합니다.
    0x100 호출 및 수집을 준비합니다―비동기화 호출 기다림 노드와 함께 타겟 VI에 대한 비동기화 호출의 결과를 수집하려는 경우 이 옵션 플래그를 사용합니다. 이 옵션 플래그를 사용하는 경우, 비동기화 호출 시작 노드를 사용하여 시작한 모든 호출에 비동기화 호출 기다림 노드를 포함해야 LabVIEW가 이미 시작된 호출을 메모리에 무한정으로 유지하지 않습니다. 0x08 또는 0x80과 함께 이 옵션 플래그를 사용하지 마십시오.
    노트 이 옵션 플래그를 원격 VI의 참조와 함께 사용하면 LabVIEW는 에러 1578을 반환합니다.
  • cerrcodeclst.png 에러 입력(에러 없음)

    에러 입력은 이 노드의 실행 전에 발생한 에러 조건을 설명합니다. 이 입력은 표준 에러 입력 기능을 제공합니다.

  • cstr.png 암호("")

    암호는 참조를 열려고하는 VI의 암호입니다.

    암호로 보호된 타겟 VI를 편집하려면 이 입력에 암호를 연결합니다. 올바른 암호를 연결하면, 함수는 VI의 인증된 참조를 반환합니다. 정확하지 않은 암호를 연결할 경우, 이 함수는 에러와 유효하지 않은 VI 참조를 반환합니다. LabVIEW는 타겟 VI가 암호로 보호되지 않은 경우에는 이 입력을 무시합니다. 이 입력에 암호를 연결하지 않고, 타겟 VI가 암호로 보호된 경우, [VI 참조 열기] 함수는 유효한 참조를 반환하지만 이 참조를 VI를 편집하는데 사용할 수 없습니다.
    노트 VI 서버 참조를 사용하여 VI에 대한 인증된 참조를 가져올 수도 있습니다.
  • ivirn.png vi 참조

    VI 참조는 요청된 VI에 연계된 참조 번호입니다.

    함수가 실패하는 경우, VI 참조참조 번호 아님을 포함합니다.
  • ierrcodeclst.png 에러 출력

    에러 출력은 에러 정보를 포함합니다. 이 출력은 표준 에러 출력 기능을 제공합니다.

  • [VI 참조 열기] 함수는 참조에 의한 호출 노드, 비동기화 호출 시작 노드, 비동기화 호출 기다림 노드에 의한 다이나믹 호출의 VI 참조를 준비합니다. 타입 지정자 VI 참조 번호(타입만)옵션 입력을 사용하여 다이나믹 실행에 대한 참조를 준비합니다.

    다이나믹 VI 호출의 참조 열기

    참조에 의한 호출 노드 또는 비동기화 호출 시작 노드를 사용하여 지정된 VI를 다이나믹하게 호출하려면, 다음 파라미터에 대해 적절한 데이터를 데이터를 사용해야 합니다:

    • 타입 지정자 VI 참조 번호(타입만)―엄격한 타입의 VI 참조를 이 입력에 연결합니다.
    • 옵션―0x08, 0x40, 0x80, 0x100의 옵션 플래그가 참조된 VI를 호출하는 방식에 적용되는지 결정합니다.

    엄격한 타입의 참조 열기의 기준

    엄격한 타입의 VI 참조를 타입 지정자 VI 참조 번호(타입만) 입력에 연결할 경우, VI 경로에서 지정된 VI는 다음 조건을 충족시켜야 합니다:

    • VI가 깨져있으면 안 됩니다.
    • VI가 재호출 VI가 아닌 한, 최상위 VI로서 활성화되어서는 안 됩니다.
    • VI의 커넥터 팬은 타입 지정자 VI 참조 번호(타입만)의 커넥터 팬과 일치해야 합니다.

    재호출 VI의 참조 열기

    재호출 VI의 참조를 여는 경우, 다음 세부사항을 고려하십시오.
    • 재호출 타겟 VI에 대한 다이나믹 호출은 0x40을 옵션으로 지정하지 않는 한, 순서대로 실행됩니다.
    • 0x40 옵션 플래그를 사용하여 재호출 타겟 VI의 인스턴스를 병렬로 실행하면, VI 참조는 타겟 VI의 복제본 VI 대신, 타겟 VI를 참조합니다. 그러나, 참조에 의한 호출 노드와 비동기화 호출 시작 노드는 타겟 VI의 복제본 VI를 호출합니다. 그러므로 VI 참조에서 VI 서버 프로퍼티 또는 메소드를 호출하면, 프로퍼티나 메소드는 노드가 실제로 호출하는 복제본 VI에는 영향을 미치지 않습니다.
    • 같은 재호출 VI에 대한 두 개의 참조를 비교할 때 [같음?] 함수는 항상 참을 반환합니다. 참조가 재호출 VI의 같은 인스턴스를 참조하는지 알아내려면, [타입 캐스트] 함수를 사용하여 참조를 32비트 부호있는 정수로 변환합니다. 그 다음 [같음?] 함수를 사용하여 정수를 비교합니다.

    열린 참조 강제 종료하기

    모든 열린 VI 참조를 VI의 프런트패널에서 직접 또는 VI 강제 종료 메소드를 사용하여 강제 종료할 수 있습니다. 그러나 비동기화 실행을 위한 VI 참조에는 참조를 열기 위해 사용하는 옵션에 따라 유념해야 할 중요한 유의 사항이 있습니다:

    • 0x80—호출 및 무시 VI는 사용자가 해당 VI를 프런트패널에서 직접 강제 종료하는 경우 또는 강제 종료 VI를 호출하는 경우에만 강제 종료됩니다. 그렇지 않으면, 사용자가 참조를 닫거나 호출 VI를 강제 종료하는 경우에도 VI는 완료될 때까지 실행됩니다.
    • 0x100—호출 및 수집 VI는 다음의 경우 강제 종료됩니다:
      • 호출 및 수집 VI 참조를 연 VI를 강제 종료한 경우. 이 경우, LabVIEW는 해당 VI의 실행 중인 모든 인스턴스를 강제 종료합니다.
      • 사용자가 해당 VI의 특정한 인스턴스를 직접 강제 종료한 경우. 이 경우, 정확히 하나의 비동기화 호출 기다림 노드가 호출된 VI의 강제 종료를 알리는 에러를 반환합니다. 같은 VI 참조의 호출을 기다리는 모든 다른 비동기화 호출 기다림 노드는 계속해서 기다립니다.
      • 호출 및 수집 VI 참조에서 VI 강제 종료 메소드를 호출한 경우. 이 경우, LabVIEW는 해당 VI의 현재 실행 중인 모든 인스턴스를 강제 종료합니다. 상응하는 수의 비동기화 호출 기다림 노드가 에러를 반환합니다.

    열린 참조 닫기

    이 함수로 얻은 참조의 사용을 마친 후, [참조 닫기] 함수를 사용하여 참조를 닫습니다. 이와 같이 명시적으로 참조를 닫으면 LabVIEW는 이 참조를 유지하는데 사용되는 리소스를 해제할 수 있어 메모리 할당 및 성능을 최적화하는 효과를 얻을 수 있습니다. 이 방법을 사용하지 않으면, LabVIEW는 참조를 연 VI가 실행을 마칠 때까지 참조를 닫을 수 없습니다.

    노트 0x80 옵션 플래그를 사용해서 열었던 참조를 닫아도 참조된 VI가 강제 종료되지 않습니다.

    독립 어플리케이션에서 VI 참조 열기

    개발 컴퓨터와 독립 어플리케이션 안 모두에서 VI를 다이나믹하게 열려면, VI 경로에 상대 경로를 사용합니다.

    기타 세부사항

    예제

    LabVIEW 포함되는 다음 예제 파일을 참조하십시오.

    • labview\examples\Application Control\VI Server\Asynchronous Call By Reference\Asynchronous Call and Collect (Using Option 0x40).vi
    • labview\examples\Application Control\VI Server\Asynchronous Call By Reference\Asynchronous Call and Forget.vi
    • labview\examples\Application Control\VI Server\Asynchronous Call By Reference\Asynchronous Call and Collect.vi