프로그래밍/랩뷰 기술자료

랩뷰 프로젝트 탐색기를 사용하여 어플리케이션을 관리하기

에이티에스 2023. 9. 15. 21:40
728x90

응용 프로그램 파일 정의 및 식별

파일 저장 및 관리에 대한 지침을 설정하려면 응용 프로그램의 구성 방식, 기능 분할 방법, 추적해야 할 소스 코드 이외의 파일 형식에 대한 선견지명이 필요합니다. 코드 간에 기능을 나누는 방법을 결정하고 파일 저장소 위치 및 제대로 작동하는 데 필요한 추가 파일 또는 리소스에 대해 개발자와 협력하는 데 시간을 할애합니다. 다음 섹션에서 이 정보를 사용하여 디스크에서 파일을 그룹화하는 기준을 결정합니다.

 

파일 구성

파일 구성은 나중에 고려해서는 안 됩니다. 대규모 응용 프로그램을 잘못 계획하면 개발 중에 파일을 이동하고 이름을 바꾸는 데 추가 시간이 소요됩니다. 많은 수의 파일을 처리할 때, 이러한 작업은 LabVIEW 내의 링크 무결성과 어플리케이션의 동작에 상당한 위험을 초래할 수 있음을 기억하십시오. 이러한 방법을 가능한 한 빨리 설정하면 나중에 큰 파일 집합을 이동할 위험이 줄어들고 개발자가 파일을 쉽게 찾고 새 파일을 저장할 위치를 결정할 수 있습니다.

 

많은 소프트웨어 개발자는 이미 파일을 저장해야 하는 위치를 결정하기 위한 관행과 시스템을 갖추고 있습니다. 궁극적으로, 합법적인 옵션인 관행과 구조의 큰 조합이 있지만, 다음은 대규모 애플리케이션에 대해 잘 확장되는 것으로 입증된 확립된 일반적인 관행입니다. 단일 루트 디렉터리에 파일을 저장하면 필요한 모든 항목에 쉽게 액세스할 수 있으며 표준 명명 규칙을 적용하면 사용자가 파일을 찾을 위치와 새 파일을 배치할 위치를 알 수 있습니다.

 

하드 드라이브의 폴더는 일반적으로 파일을 그룹화하거나 분류하여 호출자와 SubVI를 분리하는 데 사용됩니다. 반대로, 플랫 디렉토리 구조는 파일을 찾거나 최상위 VI를 찾기가 어렵게 만들며, 적은 수의 VI에도 권장되지 않습니다. 이러한 파일을 그룹화하는 데 일반적으로 사용되는 기준은 응용 프로그램의 파일 기능, 형식 및 계층 계층의 조합입니다. 실제로 디스크의 구성은 응용 프로그램에서 파일과 코드의 관계를 물리적으로 표현한 것이어야 합니다.

 

그림 1 :  LabVIEW 프로젝트 탐색기를 사용하지 않고 디스크에 구성된 예제 어플리케이션을 보여줍니다.

 

그림 1은 루트 디렉토리 내의 모든 파일을 구성하고, 최상위 VI를 종속성에서 분리하고, 파일을 폴더로 '버킷'하는 다양한 기준과 같은 개념을 보여줍니다.

 

권장 사항

  • 단일 루트 디렉터리 내에 모든 파일 저장
  • 응용 프로그램을 관리 가능한 크기의 논리적 조각으로 나눕니다
  • 논리적이고 설명적인 명명 규칙 사용
  • 최상위 VI를 다른 소스 코드와 분리
  • 애플리케이션의 주요 구성 요소를 포함하는 상위 수준 블록 다이어그램으로 시작합니다(예: 블록 다이어그램에는 구성, 수집, 분석, 데이터 표시, 데이터 로깅 및 오류 처리를 위한 별도의 프레임워크가 포함될 수 있음)
  • 미리 결정된 기준에 따라 파일을 그룹화하거나 "버킷"합니다.

 

반응형

동적 종속성 및 공유 코드에 대한 고려 사항

동적으로 로드되는 파일은 종종 특별한 고려가 필요한 추가적인 문제를 제기합니다. 이러한 파일은 응용 프로그램의 호출자에 의해 정적으로 연결되지 않기 때문에 위치를 이동하거나 어떤 식으로든 파일 경로를 변경할 때 쉽게 잘못 배치되거나 잊어버릴 수 있습니다.

 

동적으로 액세스되는 모든 파일을 올바른 위치에 보관하는 데 따르는 어려움을 최소화하려면 파일을 별도의 폴더에 그룹화하고 상대 경로를 사용하여 참조할 수 있습니다. 응용 프로그램을 이동하거나 배포해야 하는 경우 폴더를 포함하기만 하면 필요한 파일이 있는지 확인할 수 있습니다.

 

대규모 애플리케이션이 코드를 공유하는 경우 이러한 파일이 저장되는 위치와 변경 내용이 실수로 다른 호출자에게 영향을 줄 수 있다는 점을 염두에 두는 것이 중요합니다. 코드 재사용은 일반적이며 이미 완료된 작업을 활용할 수 있도록 지원하여 개발 속도를 높이는 것이 좋습니다. 유사한 어플리케이션은 동일한 기능을 필요로 할 수도 있고, 다른 코드 브랜치가 동일한 공통 VI 세트를 참조할 수도 있습니다. 동일한 코드 복사본을 참조하려면 이러한 파일이 하나 이상의 응용 프로그램의 루트 디렉터리 외부에 있어야 하는 경우가 많습니다. 그러나 이러한 공통 VI를 변경하려는 경우 테스트 및 이후 통합을 위해 로컬 복사본을 만드십시오.

 

또한 소스 코드 제어 공급자를 사용하여 여러 버전의 소프트웨어를 추적하고 여러 반복 간에 수행된 변경 내용을 비교할 수 있습니다. 

 

권장 사항

  • 동적으로 로드된 종속성을 공통 폴더에 보관
  • 상대 경로를 사용하여 동적 종속성 참조
  • 응용 프로그램에서 공유하는 코드 변경 최소화
  • 공유 코드에 대한 변경 사항을 관리하고 통합하는 데 시간을 할애합니다.
  • 소스 코드 제어 사용

 

LabVIEW 프로젝트 탐색기

프로젝트 탐색기는 LabVIEW 8.0에 도입되어 개발자들에게 어플리케이션에 필요한 파일의 시스템 레벨 보기를 제공합니다. LabVIEW 프로젝트 탐색기의 목표는 개발자들이 개발 환경 내에서 파일을 편리하게 찾고 구성할 수 있도록 지원하며, 대형 LabVIEW 어플리케이션 관리 및 개발의 문제를 해결하는 추가 기능을 제공하는 것입니다.

 

LabVIEW Project Explorer가 처음 출시된 이후, NI는 고객 피드백을 반영하여 몇 가지 새로운 기능을 통합했습니다. 

 

그림 2 :  그림 1에서 본 것과 동일한 어플리케이션을 LabVIEW 프로젝트 탐색기에서 구성하는 방법을 보여줍니다.

 

반응형

LabVIEW 프로젝트를 사용하여 LabVIEW 파일 및 기타 파일을 그룹화하고, 빌드 스펙을 생성하고, 파일을 타겟에 배포 또는 다운로드할 수 있습니다. LabVIEW 프로젝트를 저장하면 LabVIEW는 디스크의 파일에 대한 참조, 변수, 하이퍼링크, 설정 정보, 빌드 정보, 배포 정보 등을 포함하는 .lvproj 파일을 생성합니다.

 

LabVIEW 프로젝트 탐색기는 파일을 디스크의 새로운 위치에 복제하거나 복사하지 않습니다. 디스크에 파일을 표시하는 새로운 방법을 제공하고 디스크의 파일 위치에 대한 바로 가기를 제공합니다. LabVIEW 프로젝트 탐색기를 사용하여 다음을 수행할 수 있습니다.

 

  • LabVIEW를 종료하지 않고도 편리하게 파일에 접근하고 탐색할 수 있습니다.
  • 파일 구성 방법 사용자 지정 및 필터링
  • 디스크에서 파일을 이동하거나 이름을 바꿀 때 링크 유지
  • 잘못된 링크 방지, 감지 및 해결
  • 특정 하드웨어 대상에 대한 코드 관리
  • 빌드 구성 관리
  • 소스 코드 제어 공급자와 통합

 

프로젝트 탐색기에서 파일 관리

LabVIEW 프로젝트에는 파일을 볼 수 있는 두 개의 페이지가 있습니다.

그림 3 : 파일 페이지에는 디스크에 있는 프로젝트의 모든 항목에 대한 필터링된 보기가 표시되며 사용자가 복사 및 이름 바꾸기와 같은 파일 작업을 수행할 수 있습니다

 

기본 보기는 항목 페이지로, LabVIEW 프로젝트에 추가한 항목의 트리 보기를 제공하고 하드웨어 타겟별로 그룹화합니다. 이 보기에서 폴더를 만들어 파일 구성 방법을 사용자 지정하거나 디스크의 특정 위치에 동기화할 수 있습니다. 이것은 당신이 대부분의 시간을 보낼 것입니다.

 

항목 페이지에서는 디스크에서 파일을 삭제할 수 없으며, 이는 사용자가 실수로 코드를 삭제하지 못하도록 하기 위한 것입니다. 

파일 페이지에는 디스크에 해당 파일이 있는 항목의 실제 위치가 표시됩니다. 이 보기를 사용하여 시스템 파일 브라우저 내에서 일반적으로 수행하는 것과 동일한 파일 작업(예: 이동, 복사 또는 삭제)을 수행할 수 있습니다. LabVIEW는 변경 사항을 인식하기 때문에 호출자를 업데이트하고 변경 시 링크를 보존할 수 있습니다.

 

LabVIEW 프로젝트 탐색기에서 디스크의 파일 레이아웃에 영향을 주지 않고 파일 계층을 사용자 정의할 수 있습니다. 그러나 LabVIEW 프로젝트의 조직은 디스크에 설정 한 계층 구조를 가능한 한 가깝게 반영하는 것이 좋습니다.

 

반응형

LabVIEW 프로젝트에서 폴더 사용하기

두 가지 유형의 폴더 (가상 폴더와 자동 채우기 폴더)를 사용하여 LabVIEW 프로젝트의 내용을 구성 할 수 있습니다. 가상 폴더를 사용하면 디스크를 수정하지 않고도 프로젝트 항목의 구성을 사용자 지정할 수 있습니다.

그림 4 : 사용자는 LabVIEW 프로젝트 탐색기에서 파일을 구성할 때 자동 채우기 또는 가상 폴더 중에서 선택할 수 있습니다

 

버추얼 폴더는 디스크의 저장 위치를 수정하지 않고 LabVIEW에서 파일 구성을 변경하려는 시나리오에 이상적입니다. 디스크의 폴더를 LabVIEW 프로젝트 탐색기에 버추얼 폴더로 추가하면 추가할 때 스냅샷 보기로 표시됩니다. 나중에 새 파일을 추가하는 등 변경 사항을 적용하면 이러한 변경 사항이 LabVIEW 프로젝트에 나타나지 않습니다. 그러나 새 파일을 LabVIEW 프로젝트로 드래그하거나 가상 폴더를 자동 채우기 폴더로 임시로 변환하여 수동으로 변경할 수 있습니다.

버추얼 폴더를 사용하면 LabVIEW 프로젝트 탐색기에서 디스크의 두 개 이상의 개별 위치에 있는 파일을 그룹화할 수 있습니다. 또한 LabVIEW 프로젝트 탐색기에 표시되는 정보를 필터링하여 파일이 필요하지 않은 다른 항목과 그룹화되어 있는지 확인하는 데 유용합니다.

 

NI는 LabVIEW5에서 디스크 상의 폴더 내용을 자동으로 반영하기 위해 폴더를 자동 채우는 기능을 도입했습니다. 자동 채우기 폴더는 물리적 폴더와 동기화되므로, LabVIEW 개발 환경 외부에서 이 위치에 대한 변경 사항이나 수정 사항이 항상 표시됩니다. LabVIEW 프로젝트 탐색기 내에서 디스크 계층 구조를 보존하기 위해 가능하면 자동 채우기 폴더를 사용하십시오. 프로젝트 라이브러리 또는 LabVIEW 클래스를 관리하거나 많은 수의 크로스 링크를 해결하려고 할 때 자동 채우기 폴더는 권장되지 않습니다.

 

자동 채우기 및 가상 폴더를 사용하여 LabVIEW 프로젝트 탐색기에서 어플리케이션 파일의 구성 및 구조를 적용하십시오. 자동 채우기 폴더는 디스크의 구조를 보존하고 유지 관리하는 데 이상적이지만 사용할 수 없거나 사용자 지정이 필요한 경우가 있습니다. 이 경우 버추얼 폴더를 사용하여 LabVIEW 프로젝트 탐색기에서 파일 구성을 사용자 정의하십시오.

 

종속성

LabVIEW는 호출 VI를 열 때 정적으로 링크된 모든 SubVI를 메모리에 자동으로 로드합니다. 호출 VI가 LabVIEW 프로젝트 탐색기에 로드될 때 LabVIEW 프로젝트에 추가되지 않은 경우 LabVIEW 프로젝트 탐색기의 종속성 섹션은 동일한 SubVI로 자동으로 채워집니다. 사용자 종속성이 vi.lib의 내용과 분리되어 어플리케이션 개발자가 작성한 파일을 쉽게 식별할 수 있습니다.

LabVIEW 프로젝트에 파일을 추가하면 어플리케이션에서 사용할 파일과 리소스를 LabVIEW에 나타냅니다. 종속성 섹션을 확인하여 LabVIEW 프로젝트에 필요한 모든 것을 추가했는지 확인하십시오 - 추가하지 않은 경우 나머지 파일이이 섹션에 나열됩니다. 이는 의도한 SubVI의 사본을 사용하기 위한 중요한 방법입니다.

 

LabVIEW 프로젝트의 VI가 잘못된 SubVI에 잘못 연결될 수 있으며, 이 경우 사용하려는 SubVI의 복사본을 LabVIEW 프로젝트에 추가하면 한 명 이상의 호출자가 동일한 이름의 다른 SubVI에 잘못 연결될 수 있음을 LabVIEW에 알립니다. 이 시나리오를 종종 교차 연결이라고 합니다.

 
반응형

Dependencies

LabVIEW는 상대 경로를 사용하여 호출자에 저장된 위치에서 SubVI를 엽니다. LabVIEW가 예상 위치에서 SubVI를 찾지 못하면 이름으로 SubVI를 검색합니다. LabVIEW는 해당 이름으로 찾은 첫 번째 SubVI를 메모리에 로드하고 수정된 링크에 대해 사용자에게 알립니다. 서로 다른 기능을 가진 여러 VI가 공통 이름 (예 : initialize.vi)을 공유하거나 동일한 VI의 두 버전이 별도의 위치에 존재할 수 있으므로 LabVIEW는 잘못된 파일에 링크 될 수 있습니다.

 

Cross-Linking

교차 연결은 일반적으로 새 디스크 위치에서 코드 계층 구조를 재현하기 위해 큰 파일 집합을 이동하거나 복사한 결과로 발생합니다. 상대 경로가 변경되면 링크가 손상될 수 있으며 응용 프로그램이 자신도 모르게 잘못된 종속성 집합에 연결될 수 있습니다.

LabVIEW는 두 개의 서로 다른 VI를 동일한 이름의 메모리에로드 할 수 없습니다. 따라서 동일한 이름을 가진 별도의 SubVI를 참조하는 두 개의 어플리케이션을 여는 것은 잘못된 종속성을 사용하여 실행된다는 것을 의미합니다.

 

 

교차 연결을 방지하기 위해 취할 수 있는 몇 가지 조치가 있습니다.

  • 동일한 컴퓨터에서 공통된 종속성이 있는 여러 응용 프로그램에서 동시에 작업하지 마십시오.
  • 소스 코드 제어 응용 프로그램을 사용하여 파일이 있어야 하는 위치를 정확하게 지정하고 올바르게 연결된 호출자를 유지합니다
  • 응용 프로그램의 세그먼트를 이동하거나 복사하지 마십시오
  • 모든 파일을 LabVIEW 프로젝트에 추가하여 사용할 리소스를 표시하십시오.
  • initialize.vi 와 같은 일반적인 이름은 사용하지 마십시오.
  • 네임스페이스를 위해 프로젝트 라이브러리를 사용하여 일반 이름 한정

 

충돌 식별

올바른 연결을 보장하는 것은 모든 프로그래밍 언어에서 공통적인 과제입니다. 신중한 관행을 통해 교차 링크 발생을 최소화하고 올바르게 연결된 파일의 백업을 제공할 수 있지만 대규모 애플리케이션을 개발하는 공급업체 사이에서는 여전히 큰 관심사입니다. LabVIEW 8.5의 LabVIEW 프로젝트에는 개발자들이 크로스 링크를 감지하고 해결할 수 있도록 지원하는 몇 가지 새로운 기능이 도입되었습니다.

그림 5 : LabVIEW는 사용자에게 충돌을 자동으로 경고할 수 있습니다

 

아마도 Cross-Linkin과와 관련된 가장 유용한 기능은 LabVIEW 프로젝트가 VI가 LabVIEW 프로젝트에 추가한 파일과 동일한 이름의 SubVI를 호출하는지 여부를 결정한다는 것입니다. LabVIEW는 파일 아이콘에 노란색 경고 표시기를 표시하며, 이 때 파일에 대한 자세한 정보를 찾아 어떤 파일이 올바른 버전인지 확인할 수 있는 몇 가지 방법이 있습니다.

  • LabVIEW 프로젝트 탐색기에서 .lvproj 파일을 마우스 오른쪽 버튼으로 클릭하고 "호출자가 없는 항목 찾기"를 선택합니다. 최상위 VI 외에 링크되지 않은 VI가 있는 경우 여기에 나열됩니다.
  • VI를 마우스 오른쪽 버튼으로 클릭하고 >> 호출자 찾기를 선택하여 어떤 VI가 호출하는지 또는 호출자가 없는지 확인합니다.
  • 메뉴 도구 모음에서 프로젝트 >> 항목 경로 표시를 선택하여 항목 페이지에서 모든 파일의 디스크 위치를 확인합니다.
  • "Resolve Conflicts.." 툴바 아이콘을 클릭하면 모든 교차 링크된 VI에 대한 자세한 정보를 볼 수 있습니다.

크로스 링크를 식별하고 링크를 수정하는 방법을 결정한 후에는 수동으로 수정하거나 LabVIEW 프로젝트 탐색기 도구를 사용하여 프로세스를 진행할 수 있습니다.

 

반응형

충돌 해결

LabVIEW가 충돌을 감지한 후 충돌을 해결하는 방법에는 여러 가지가 있습니다. 아래 권장 사항을 따르면 필요한 변경을 수행하는 동안 SubVI에 대한 링크를 유지할 수 있습니다.

 

  • 자동 채우기 폴더 내에 충돌이 있는 경우 자동 채우기를 중지하거나 파일 페이지에서 항목 이름을 바꿔 충돌을 해결해야 합니다.
  • 한 명 이상의 호출자가 LabVIEW 프로젝트 탐색기 외부의 SubVI에 잘못 연결된 경우, 이러한 VI를 LabVIEW 프로젝트의 적절한 SubVI에 다시 링크해야 합니다. LabVIEW 프로젝트 탐색기 창에서 충돌하는 VI를 마우스 오른쪽 버튼으로 클릭하고 바로 가기 메뉴에서 "대체"를 선택하여 디스크에서 올바른 SubVI를 선택하십시오. 나머지 충돌에 대해 이 프로세스를 반복합니다.
  • 호출자가 같은 이름의 여러 항목을 참조하지만 디스크에 하나의 항목만 있는 경우 충돌하는 항목을 마우스 오른쪽 단추로 클릭하고 바로 가기 메뉴에서 "프로젝트에서 찾은 항목으로 바꾸기"를 선택할 수 있습니다.
  • LabVIEW 프로젝트에 동일한 이름의 여러 항목이 추가되어 어플리케이션에서 두 항목을 모두 사용하려는 경우, 이름을 바꾸거나 별도의 프로젝트 라이브러리에 추가하여 이름을 한정하십시오.

 

"프로젝트 충돌 해결" 대화 상자를 사용하여 이러한 권장 사항을 자동화할 수 있습니다. LabVIEW 프로젝트 탐색기 창에서 프로젝트 » 프로젝트 충돌 해결을 선택하여 "충돌 해결" 대화 상자를 표시합니다. 또한 "충돌 해결" 도구 모음 버튼을 클릭하거나 LabVIEW 프로젝트 탐색기 창에서 충돌하는 항목을 마우스 오른쪽 버튼으로 클릭하고 단축 메뉴에서 "충돌 해결"을 선택하여 이 대화 상자를 표시할 수도 있습니다.

그림 6 : 충돌 해결 대화 상자는 사용자에게 올바른 SubVI를 선택하라는 메시지를 표시합니다.

 

이 대화 상자에는 다음과 같은 구성 요소가 포함되어 있습니다.

  • 충돌 – 정규화된 이름별로 프로젝트 충돌을 표시합니다.
  • 비교 – 충돌하는 두 VI를 비교합니다.
  • 선택한 항목 사용 – 사용할 항목을 선택할 때 발생하는 충돌을 해결합니다. 충돌 목록에 최상위 항목만 포함된 경우, LabVIEW는 사용자가 선택한 항목을 제외하고 충돌 목록의 모든 항목을 LabVIEW 프로젝트에서 제거합니다. LabVIEW는 "프로젝트 충돌 해결" 대화 상자에서 자동 채워진 폴더를 수정할 수 없습니다. 이러한 항목을 수동으로 해결하거나 폴더를 마우스 오른쪽 버튼으로 클릭하고 바로 가기 메뉴에서 "자동 채우기 중지"를 선택하여 자동 채우기 폴더를 비활성화할 수 있습니다.

이 대화 상자를 사용하면 충돌하는 항목을 올바른 경로에서 종속 항목을 호출하도록 리디렉션하여 충돌을 해결할 수 있습니다.

728x90
반응형
그리드형