LabVIEW에서 동시에 두 개의 VI를 시작 및 실행

업데이트 됨 May 21, 2019

해당 제품

Software

  • LabVIEW

문의사항

  • 동시에 여러 VI를 프로그래밍 방식으로 시작하고 실행하고 싶습니다. 어떻게 해야 합니까?
  • VI를 호출하고 싶지만 호출을 끝내고 호출 VI로 컨트롤을 되돌려 놓고 VI는 계속 실행하고 싶습니다.

해결책

단일 VI를 사용하여 VI 서버를 통해 원하는 수의 다른 SubVI를 호출할 수 있습니다. 최상위 VI는 "상위"VI로 실행되고, 호출된 모든 VI는 "하위"VI로 실행됩니다. 다음 해결책은 많은 수의 SubVI로 확장됩니다. 아래 단계에 따라 최상위 VI에서 SubVI를 호출하십시오:
  1. 실행할 SubVI의 경로를 검색하십시오.
    • 예를 들어, 스트립 경로빌드 경로를 현재 VI 경로와 함께 사용하여 호출 VI와 동일한 폴더에 있는 MyVI_2.vi라는 SubVI를 지정합니다. 그러나 시스템의 유효한 경로에 위치한 VI를 지정할 수도 있습니다. LabVIEW에서 파일 경로 지정에 대한 더 자세한 정보는 관련 링크를 참조하십시오.
  2. 실행하고자 하는 VI에 대한 참조를 얻으려면 최상위 VI에서 Open VI Reference.vi ( 프로그래밍»어플리케이션 컨트롤 팔레트에 있음)를 사용하십시오.
  3. 실행 VI 메소드가 선택된 인보크 노드 (동일한 팔레트에 있음)에 와이어를 연결하여 지정된 SubVI를 실행합니다.
    • Wait Until Done 속성에 false 상수를 연결함으로써, 우리는 SubVI가 실행되는 동안 호출 VI가 멈추는 것을 막을 수 있습니다. 추측할 수 있듯이, 두 개의 VI가 동시에 실행될 수 있습니다.
  4. 하위 VI의 프런트 패널을 표시하려면 체인에 다른 인보크 노드를 삽입하고 Open FP 메소드를 사용하여 SubVI의 프런트 패널을 표시하십시오. 이 메소드를 호출하지 않으면 SubVI가 여전히 백그라운드에서 실행됩니다.

추가 정보

다른 VI에서 LabVIEW로 다른 VI를 실행하는 방법은 여러 가지가 있습니다. 다음은 그중 일부입니다.
  • 블록 다이어그램에서 정적 호출. 하나의 VI가 다른 VI의 블록 다이어그램에서 함수로 드롭 된 경우입니다. LabVIEW는 결과를 수집할 수 있도록 SubVI 실행이 완료되기를 기다립니다. 이것은 LabVIEW에서 SubVI를 사용하는 가장 일반적인 방법입니다.
  • 다른 옵션을 사용하여 동적 호출을 할 수 있습니다 : 이것은 블록 다이어그램에서 함수를 삭제하는 대신 실행하고자 하는 VI의 경로를 선택하고 참조를 사용하여 수행합니다. 이 문서의 솔루션에서 예제를 찾을 수 있습니다.
    • 호출 및 수집 : 비동기 호출 대기 노드 를 사용하여 타겟 VI에 대한 비동기 호출의 결과를 수집하려면 이 옵션을 사용합니다. 이 옵션 플래그를 사용하는 경우, 비동기 호출 시작 노드로 시작하는 모든 호출에 대해 하나의 비동기 호출 대기 노드를 포함시켜 LabVIEW가 시작된 호출을 무기한으로 무기한 보유하지 않도록해야합니다. LabVIEW의 도움말> 예제 찾기> 프로그래밍적으로 VI 제어하기> 다이나믹하게 VI 로딩 및 호출하기> Asynchronous Call and Collect.vi에서 예제를 찾을 수 있습니다.
    • 호출 및 잊음 : 비동기 호출 시작 노드와 비동기적으로 타겟 VI를 호출하려고 하지만 이 VI가 언제 또는 무엇을 반환하는지 알 필요가 없는 경우 이 옵션을 사용하십시오. LabVIEW의 도움말> 예제 찾기> 프로그래밍적으로 VI 제어하기> 다이나믹하게 VI 로딩 및 호출하기> Asynchronous Call and Forget.vi에서 예제를 찾을 수 있습니다.

이 글이 도움이 되셨습니까?

도움 안됨