VI 참조 열기 함수
- 업데이트 날짜:2025-07-30
- 8분 (읽기 시간)
디스크 상의 파일 경로, 이름 문자열, 또는 기존 참조에 의해 지정된 VI, 사용자 컨트롤, 또는 글로벌 변수에 대한 참조를 반환합니다.

입력/출력
타입 지정자 VI 참조 번호(타입만)
—
타입 지정자 VI 참조 번호(타입 전용)는 VI 참조의 데이터 타입과 커넥터 팬 정보를 결정합니다. LabVIEW는 이 입력의 실제 값을 무시합니다. 함수는 일반 VI 참조를 반환하도록 기본 설정되어 있습니다. 이 함수의 VI 참조 출력을 참조에 의한 호출 노드 또는 비동기화 호출 시작 노드와 함께 사용하려면, 이 입력에 반드시 엄격한 타입의 VI 참조를 연결해야 합니다. 엄격한 타입의 VI 참조를 이 입력에 연결하면, VI 경로에 의해 지정된 VI의 커넥터 팬은 이 입력의 커넥터 팬과 반드시 일치해야 합니다.
어플리케이션 참조(로컬)
—
어플리케이션 참조는 LabVIEW 어플리케이션 인스턴스에 대한 참조입니다. LabVIEW는 호출 VI의 어플리케이션 인스턴스를 사용하도록 기본 설정되어 있습니다. [어플리케이션 참조 열기] 함수를 사용하여 다른 어플리케이션 인스턴스에 대한 참조를 얻을 수 있습니다. 다른 어플리케이션 인스턴스의 참조를 어플리케이션 참조 입력에 연결하면, VI 경로는 그 어플리케이션 인스턴스를 실행하는 컴퓨터의 파일 시스템 안의 위치를 참조합니다.
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가 충돌할 수 있습니다.
옵션
—
옵션은 VI 참조에 의해 참조된 VI의 실행 특성을 결정하며, 이러한 특성에는 VI를 비동기적으로 호출할 수 있는지 등이 포함됩니다. 기본은 0x0입니다. 다음 옵션 플래그를 일부 결합하여 옵션을 생성합니다.
에러 입력(에러 없음)
—
에러 입력은 이 노드의 실행 전에 발생한 에러 조건을 설명합니다. 이 입력은 표준 에러 입력 기능을 제공합니다.
암호("")
—
암호는 참조를 열려고하는 VI의 암호입니다. 암호로 보호된 타겟 VI를 편집하려면 이 입력에 암호를 연결합니다. 올바른 암호를 연결하면, 함수는 VI의 인증된 참조를 반환합니다. 정확하지 않은 암호를 연결할 경우, 이 함수는 에러와 유효하지 않은 VI 참조를 반환합니다. LabVIEW는 타겟 VI가 암호로 보호되지 않은 경우에는 이 입력을 무시합니다. 이 입력에 암호를 연결하지 않고, 타겟 VI가 암호로 보호된 경우, [VI 참조 열기] 함수는 유효한 참조를 반환하지만 이 참조를 VI를 편집하는데 사용할 수 없습니다.노트 VI 서버 참조를 사용하여 VI에 대한 인증된 참조를 가져올 수도 있습니다.
vi 참조
—
VI 참조는 요청된 VI에 연계된 참조 번호입니다. 함수가 실패하는 경우, VI 참조는 참조 번호 아님을 포함합니다.
에러 출력
—
에러 출력은 에러 정보를 포함합니다. 이 출력은 표준 에러 출력 기능을 제공합니다. |
[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가 실행을 마칠 때까지 참조를 닫을 수 없습니다.
독립 어플리케이션에서 VI 참조 열기
개발 컴퓨터와 독립 어플리케이션 안 모두에서 VI를 다이나믹하게 열려면, VI 경로에 상대 경로를 사용합니다.
기타 세부사항
- 실행:열릴 때 실행, 실행:로드 시 프런트패널 보이기, 실행:호출 시 프런트패널 보이기 프로퍼티 또는 타겟 VI의 VI 프로퍼티 대화 상자에서 이에 상응하는 옵션을 설정하는 경우, LabVIEW는 이 셋팅을 무시합니다.
- 새 Facade VI 레퍼런스를 열려면 FacadeVI 클래스를 유형 지정자 VI Refnum에연결합니다 (유형에만해당).
예제
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
타입 지정자 VI 참조 번호(타입만)
—
어플리케이션 참조(로컬)
—
vi 경로
—
옵션
—
에러 입력(에러 없음)
—
암호("")
—
vi 참조
—
에러 출력
—