LabVIEW 프로젝트 라이브러리는 VI, 타입 정의, 공유 변수, 팔레트 파일 및 다른 프로젝트 라이브러리를 포함한 기타 파일의 집합입니다. 새 프로젝트 라이브러리를 생성하고 저장할 때 LabVIEW는 프로젝트 라이브러리 파일 .lvlib를 생성합니다. 이 파일에는 프로젝트 라이브러리의 프로퍼티와 프로젝트 라이브러리가 소유하는 파일에 대한 참조가 포함됩니다.

노트 묶음 프로젝트 라이브러리는 어플리케이션 빌더를 사용해서 여러 개의 프로젝트 라이브러리를 한 개의 파일로 만든 것입니다. 묶음라이브러리에서 파일을 변경하거나 묶음 라이브러리를 새로 빌드하지 않는 한 파일을 변경할 수 없습니다.

프로젝트 라이브러리는 사용자가 파일을 하나의 아이템 계층구조로 구성하려 할 때, 잠재적인 VI 이름 중복을 피하려 할 때, 특정 파일에 대한 퍼블릭 접근을 제한하려 할 때, 파일 집합에 대한 편집 권한을 제한하려 할 때, VI의 그룹에 대해 기본 팔레트 파일을 설정하려 할 때 유용합니다. 프로젝트 라이브러리가 소유하고 있는 아이템을 프로젝트 탐색기 윈도우에서 블록다이어그램이나 프런트패널로 끌어올 수 있습니다.

프로젝트 탐색기 윈도우 또는 독립 프로젝트 라이브러리 윈도우에서 프로젝트 라이브러리의 구조를 볼 수 있습니다. 프로젝트 탐색기 윈도우가 열려있지 않은 경우, 프로젝트 라이브러리 파일에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 열기를 선택하면 프로젝트 라이브러리 윈도우에서 열 수 있습니다.

노트 선택한 프로젝트 라이브러리 파일이 최상위 레벨 프로젝트 라이브러리 파일이 아닌 경우, 열리는 독립 윈도우는 최상위 레벨 프로젝트 라이브러리의 프로젝트 라이브러리 윈도우입니다. 선택한 프로젝트 라이브러리 파일은 최상위 레벨 프로젝트 라이브러리 윈도우의 목차 트리에 있습니다.

프로젝트 라이브러리를 사용하여 아이템의 논리적 가상 계층구조를 구성할 수 있습니다. 프로젝트 라이브러리 파일은 LLB와는 달리 소유하는 실제 파일을 포함하지 않습니다. LLB는 VI를 포함하는 물리적인 디렉토리입니다. 프로젝트 라이브러리가 소유하는 파일들은 여전히 여러분이 저장한 디스크의 디렉토리에 개별적으로 나타납니다.

프로젝트 라이브러리를 사용하여 VI과 다른 LabVIEW 파일의 이름을 유효화합니다. LabVIEW는 VI를 파일 이름으로 식별하므로, LabVIEW는 의도치 않게 VI를 로드하고 참조할 수도 있습니다. VI가 다른 VI와 같은 파일 이름을 가지고 있는 것은 상호 링크라고 알려진 문제입니다. VI가 프로젝트 라이브러리의 일부인 경우, LabVIEW는 상호 링크를 피하기 위해 프로젝트 라이브러리 이름으로 VI 이름을 식별합니다. 정규화된 이름은 파일 이름과 소유하는 프로젝트 라이브러리의 정규화된 이름을 포함합니다.

예를 들어 library1.lvlib가 소유하는 init.vi라는 이름의 SubVI를 포함하는 caller.vi라는 이름의 VI를 만드는 경우, library2.lvlib가 소유하는 init.vi라는 이름의 다른 SubVI를 포함시켜 상호 링크 문제를 피할 수 있습니다. caller.vi를 저장할 때 LabVIEW가 기록하는 정규화된 이름은 각각 library1.lvlib:init.vilibrary2.lvlib:init.vi입니다.

노트
  • 하나의 프로젝트 라이브러리만이 특정 VI를 소유할 수 있습니다. 그러나 텍스트 파일이나 HTML 파일과 같은 LabVIEW 이외의 파일은 여러 프로젝트 라이브러리와 연관시킬 수 있습니다.
  • 파일이 이미 한 라이브러리에 속해 있는 경우, 이 파일을 새 라이브러리에 추가하지 마십시오. 한 라이브러리와 이미 연관되어 있는 파일을 새 라이브러리에 추가해야 할 경우, 해당 파일의 원본 라이브러리도 새 라이브러리에 추가해야 합니다. 그렇지 않으면, 빌드 출력 시 이 파일을 새 라이브러리에 추가하지 않고 대상 폴더에 놓게 됩니다.

프로젝트 라이브러리의 버전 번호를 지정하여 파일 집합에 실시한 변경을 시간에 따라 구별할 수 있습니다. 프로젝트 라이브러리 프로퍼티 대화 상자의 일반 셋팅 페이지에서 버전 번호를 설정하고 정기적으로 번호를 업데이트합니다. 버전 번호는 프로젝트 라이브러리 이름에 영향을 주지 않습니다.

주의 프로젝트 라이브러리에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 다른 이름으로 저장 또는 이름 바꾸기를 선택하여 다른 이름으로 저장 대화 상자를 디스플레이하고 프로젝트 라이브러리의 이름을 변경합니다. LabVIEW 외에서 프로젝트 라이브러리 이름을 변경하는 경우, 프로젝트 라이브러리를 깰 수도 있습니다.

특정 타입의 파일에 대한 퍼블릭 접근을 제한하기 위해 프로젝트 라이브러리를 사용하십시오. 퍼블릭 또는 프라이빗으로 프로젝트 라이브러리의 아이템 및 폴더에 대한 접근을 설정하여 사용자가 특정 아이템에 접근하는 것을 막을 수 있습니다. 폴더에 대한 접근을 프라이빗으로 설정하면 해당 폴더의 모든 VI에 프라이빗 접근이 적용됩니다.

프로젝트 라이브러리를 잠그거나 암호로 보호하여 편집 권한을 제한할 수 있습니다. 프로젝트 라이브러리를 잠그면, 사용자가 아이템을 추가 또는 제거하지 못하며 프라이빗으로 설정한 아이템을 볼 수 없습니다. 프로젝트 라이브러리에 암호를 설정하면, 사용자가 암호 없이 프로젝트 라이브러리 프로퍼티에서 아이템을 추가 또는 제거하거나 편집할 수 없습니다. 사용자는 프로젝트 라이브러리 프로퍼티 대화 상자를 열 수 있으나, 보호 옵션을 제외한 모든 대화 상자 구성요소가 비활성화됩니다. 사용자는 프로젝트 라이브러리를 잠금해제하거나 암호를 입력하여 대화 상자 구성요소를 활성화해야 합니다. 프로젝트 라이브러리를 잠금 해제하려면 프로젝트 라이브러리에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 암호 입력을 선택합니다.

노트 구매한 LabVIEW 버전에 특정한 유효한 라이센스가 없는 LabVIEW 프로젝트 내의 라이브러리에 암호를 입력하면 아이템을 라이브러리 안이나 밖으로 끌어서 놓을 수 없습니다.
노트 프로젝트 라이브러리에 암호 보호를 추가해도 소유하는 VI에 암호 보호가 추가되지는 않습니다. 블록다이어그램과 프런트패널의 편집을 제한하고자 하는 경우, 개별 VI에 암호 보호를 설정해야 합니다. 혼동을 피하기 위해 프로젝트 라이브러리와 프로젝트 라이브러리가 소유하는 VI에 같은 암호를 사용하는 것을 고려하십시오.

프로젝트 폴더에서 프로젝트 라이브러리를 생성할 수 있습니다. 또한, LLB를 프로젝트 라이브러리로 변환할 수도 있습니다. LLB는 프로젝트 라이브러리와는 다른 특징과 장점을 가지고 있으므로, 프로젝트 라이브러리로 변환할지 여부를 결정하기 전에 LLB를 사용할 수 있는 방법을 고려하십시오. LLB에 프로젝트에서 라이브러리 파일을 포함할 수 있습니다.

프로젝트 라이브러리에 팔레트 파일 .mnu을 포함하는 경우, 이를 프로젝트 라이브러리가 소유하는 모든 VI의 기본 팔레트 파일로 설정할 수 있습니다. 함수 팔레트에서 블록다이어그램에 끌어다 놓는 여러가지 VI 및 함수의 바로 가기 메뉴에서 소스 팔레트에 접근할 수 있듯이, 프로젝트 라이브러리의 기본 팔레트 파일은 프로젝트 라이브러리가 소유하고 있는 VI의 SubVI 호출에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 선택할 수 있는 팔레트입니다. 그러나 소스 팔레트와는 달리, 프로젝트 라이브러리의 기본 팔레트 파일은 프로젝트 라이브러리가 소유하고 있는 VI를 포함하지 않아도 됩니다. 프로젝트 라이브러리 프로퍼티 대화 상자의 일반 셋팅 페이지에서 기본 팔레트 링 컨트롤에 있는 팔레트 파일을 선택합니다. 또한 아이템 셋팅 페이지에서 기본 팔레트 파일을 설정할 수도 있습니다. 목차 트리에서 .mnu 파일을 선택하고 기본 팔레트 확인란에 확인 표시를 합니다.

LabVIEW가 공유 변수 엔진(SVE)에 배포하는 프로젝트 라이브러리를 일컬어 '프로세스'라 합니다. 대응하는 라이브러리에 영향을 주지 않고 프로세스 또는 프로세스내 공유 변수를 변경하는 것을 온라인 설정이라 합니다. 대응하는 프로세스에 영향을 주지 않고 라이브러리 또는 라이브러리내 공유 변수를 변경하는 것을 오프라인 설정이라 합니다. 오프라인 설정을 사용하여 공유 변수를 변경하는 경우, 라이브러리내의 VI를 실행하기 전 반드시 라이브러리를 SVE에 다시 배포해야 SVE가 프로세스에서 공유 변수를 업데이트할 수 있습니다.

프로젝트 라이브러리 구성하기

LabVIEW 프로젝트 라이브러리가 소유하는 파일에 대한 체계적 구조를 생성할 수 있습니다. 프로젝트 라이브러리 아이템의 구조가 잘 구성되면 사용자가 쉽게 소스 컨트롤을 사용하고, 파일 이름 충돌을 피하고, 프로젝트 라이브러리를 퍼블릭과 프라이빗 접근 영역으로 분리할 수 있습니다.

다음 리스트는 프로젝트 라이브러리와 프로젝트 라이브러리가 소유하는 파일을 구성할 때 고려해야 할 유의점과 권장사항을 설명합니다:

  • 프로젝트 라이브러리에 관련된 파일만을 포함한 별도의 LabVIEW 프로젝트 내에 각 프로젝트 라이브러리를 생성합니다. 이 파일에는 예제 파일과 프로젝트 라이브러리를 생성하고 테스트하기 위해 사용한 파일이 포함됩니다. 프로젝트와 프로젝트 라이브러리의 파일 이름을 비슷하게 정합니다. 프로젝트 라이브러리가 별도의 여러 기능 영역을 포함하는 경우, 각 영역에 프로젝트 서브라이브러리를 사용할 것을 고려하십시오.
  • 생성한 각 프로젝트 라이브러리에 별도의 파일 디렉토리를 생성합니다. 디렉토리에 프로젝트 라이브러리가 소유하는 파일을 포함시킬 수 있습니다. 같은 디렉토리에 하나 이상의 프로젝트 라이브러리 파일을 포함시키는 경우, 같은 이름의 VI를 다른 라이브러리에 넣으려 할 때 충돌이 발생할 수 있습니다. 프로젝트 라이브러리 파일을 별도의 디렉토리로 구성하면 디스크에서 특정한 프로젝트 라이브러리에 연관된 파일을 식별하기 쉽습니다.
  • 정렬 옵션을 사용하여 잠기지 않은 프로젝트 라이브러리 내의 아이템을 구성할 수 있습니다.
  • 프로젝트 라이브러리가 소유하고 있는 디스크의 파일을 이동하는 경우, 프로젝트 라이브러리를 다시 열고 저장하여 프로젝트 라이브러리가 이동된 아이템에 정확히 링크되어 있는지 확인합니다.
  • (Windows) 프로젝트 라이브러리가 포함된 설치 프로그램을 만드는 경우, 프로젝트 라이브러리가 소유하는 파일을 프로젝트 라이브러리와 같은 드라이브에 저장하십시오. 일부 파일이 네트워크 드라이브와 같은 다른 드라이브에 있는 경우, 설치 프로그램에 프로젝트 라이브러리를 포함시키면 프로젝트 라이브러리 링크가 깨질 수도 있습니다.
  • 프로젝트 루트에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 라이브러리가 잘못 요구한 아이템 찾기를 선택하여 라이브러리와 라이브러리가 요구한 아이템 간의 충돌을 해결할 수 있습니다. 이 기능을 사용해서 라이브러리의 요구를 인식하지 않는 아이템을 찾습니다.
  • 프로젝트 라이브러리의 어떤 아이템을 퍼블릭과 프라이빗으로 설정할지 결정합니다. 사용자는 프라이빗 VI를 다른 VI나 어플리케이션에서 SubVI로 사용할 수 없습니다. 퍼블릭 아이템은 프로젝트 라이브러리 기능의 인터페이스를 제공하며 사용자가 찾고 사용할 수 있는 팔레트 VI, X컨트롤, 인스트루먼트 드라이버, 도구가 포함됩니다. 프라이빗 아이템에는 지원 VI, 저작권이 있는 파일, 또는 사용자 코드를 깨지 않고 나중에 편집하려는 아이템이 포함됩니다. 다음의 권장 사항을 고려하십시오.
    • 프라이빗이라는 이름의 프로젝트 라이브러리에 폴더를 생성합니다. 프로젝트 라이브러리 프로퍼티 대화 상자의 아이템 셋팅 페이지에서 폴더의 접근 셋팅을 프라이빗으로 설정합니다. LabVIEW는 자동으로 프라이빗 폴더에 추가한 모든 프로젝트 파일을 프라이빗으로 설정하므로 개별 VI에 대한 접근 셋팅을 설정할 필요가 없습니다.
    • 프라이빗 폴더 외에 있는 모든 프로젝트 라이브러리 파일은 퍼블릭이라 가정합니다. 퍼블릭 파일을 위한 폴더를 생성할 필요는 없습니다.
    • 또한 프로젝트 라이브러리 내에서 각 기능 그룹에 대한 폴더를 만들고 각 기능 그룹 폴더에 프라이빗 서브폴더를 추가하여, 프로젝트 라이브러리를 퍼블릭 아이템과 프라이빗 아이템으로 정리할 수 있습니다.

프로젝트 서브라이브러리

프로젝트 서브라이브러리는 다른 프로젝트 라이브러리가 소유하는 프로젝트 라이브러리입니다. 소유하는 프로젝트 라이브러리의 셋팅은 프로젝트 서브라이브러리 내의 아이템에 대한 접근 셋팅 및 편집 권한에 영향을 미치지 않습니다. 프로젝트 서브라이브러리 파일 .lvlib의 접근을 소유하는 프로젝트 라이브러리 내에서 프라이빗으로 설정할 수 있습니다. 그러나 프로젝트 라이브러리 자체를 편집하는 경우, 서브라이브러리가 소유하는 아이템은 퍼블릭 또는 프라이빗 접근 셋팅을 유지합니다.

프로젝트 서브라이브러리는 별도의 기능 영역을 포함하는 프로젝트 라이브러리를 생성하려 할 때 유용합니다. 예를 들어, 그래픽 도구의 프로젝트 라이브러리를 생성하는 경우, 2차원과 3차원 그리기 도구를 별도의 서브라이브러리로 나눌 수 있습니다.