LabVIEW 템플릿과 샘플 프로젝트

개요

LabVIEW의 템플릿과 샘플 프로젝트는 시스템의 품질과 확장성을 보장하면서 편리하게 시작할 수 있도록 제작되었습니다. 모든 템플릿과 샘플 프로젝트는 오픈 소스이며, 코드의 작동 방식과 기능을 추가/변경하기 위한 최적의 방법을 자세히 설명하는 종합 문서가 포함됩니다. 본 프로젝트는 권장 아키텍처를 제공하는 것 외에도 코드를 문서화하고 정렬하기 위한 우수 사례를 설명합니다.

시작하기 창에서 "프로젝트 생성"을 선택하여 기존 템플릿 또는 샘플 프로젝트를 사용하여 새로운 LabVIEW 프로젝트를 생성할 수 있습니다. 사용 가능한 옵션은 설치한 소프트웨어 모듈과 드라이버에 따라 다릅니다. 본 문서에서는 NI가 제공하고 지원하는 템플릿 및 샘플 프로젝트에 대해 설명합니다.

내용

템플릿

템플릿은 대부분 LabVIEW 어플리케이션의 기본적인 구성 요소를 보여줍니다. 일반적으로 실제 시스템을 구축할 때 하나 또는 그 이상의 템플릿을 조합하여 사용할 수 있습니다. 이같은 템플릿은 적용이 쉬운 디자인 패턴을 이용한 일반적인 아키텍처를 제공하며, 사용자는 시스템 구축시에 이를 알맞게 수정하면 됩니다.

기본 상태 머신

이 템플릿을 사용하면 코드 섹션의 실행 순서를 쉽게 정의할 수 있습니다. 기본 상태 머신은 무어 머신이라고도 하며, 현재 상태의 결정을 기초로 다음 상태를 결정합니다. 이 템플릿의 디자인을 사용하면 어플리케이션 구조를 크게 변경하지 않고도 새 코드 섹션을 삽입하고 코드 섹션을 제거하거나 섹션의 실행 순서를 변경할 수 있습니다.

| 웹 세미나 보기

큐 메시지 핸들러

이 템플릿을 사용하면 여러 코드 섹션의 병렬 실행과 섹션간 데이터 전달이 용이합니다. 코드의 각 섹션은 데이터 수집과 같은 프로세스를 나타내며, 상태 머신과 유사하게 설계되었습니다. 이렇게 구성 요소들이 분리되어 있기 때문에 응답형 사용자 인터페이스를 구현할 수 있으며 다른 메시지가 실행되는 동안 데이터를 연속 로깅할 수 있습니다.

| 웹 세미나 보기

액터 프레임워크

액터 프레임워크는 여러 독립적인 태스크로 구성되어 있으며, 이 태스크들간에 서로 통신이 필요한 LabVIEW 어플리케이션을 생성하는데 사용할 수 있는 템플릿입니다. 이 프레임워크는 기능 확장 및 프로세스 추가시 상당한 코드 복제가 발생하는 일반 개발 시나리오의 문제를 해결하도록 설계되었습니다. 액터 프레임워크는 LabVIEW 클래스를 다양하게 사용하는 고급 템플릿입니다.

| 웹 세미나 보기

데스크탑 샘플 프로젝트

데스크탑 샘플 프로젝트는 실제 어플리케이션에서 하나 또는 그 이상의 템플릿을 사용할 때 사용합니다. 이 프로젝트는 응답형 사용자 인터페이스, 비동기 분석, 데이터 로깅, 사용자 대화 상자, 에러 핸들링, 여러 독립형 태스크 등 일반적인 데스크탑 기반의 측정 어플리케이션 요구사항을 충족시킵니다.

유한 측정

유한 측정 샘플 프로젝트는 단일 측정 결과를 수집하고 측정 결과를 파일로 반출하는 옵션을 제공합니다. 이 샘플 프로젝트는 측정 설정 및 실행*, 분석 수행, 결과 디스플레이, 데이터를 디스크에 로깅하기 위해 사용자 요청에 응답하는 상태 머신으로 제작되었습니다.

문서 읽기

*DAQmx 9.5.5 또는 상위 버전은 DAQmx API를 사용하는 본 샘플 프로젝트의 2번째 버전을 설치하여 하드웨어 I/O를 통해 실제 측정 설정과 수집을 수행합니다.

연속 측정 및 로깅

연속 측정 및 로깅 샘플 프로젝트는 측정 결과를 연속적으로 수집하고, 이 데이터를 디스크에 로깅합니다. 이 샘플 프로젝트는 5개의 루프를 병렬로 실행하여 다양한 태스크가 동시에 실행되면서 사용자 요청에 응답하고 큐에 추가하도록 합니다. 이같은 루프에는 이벤트 핸들링, UI 메시징, 데이터 수집*, 저장, 디스플레이가 있습니다.

*DAQmx 9.5.5 또는 상위 버전은 DAQmx API를 사용하는 이 샘플 프로젝트의 2번째 버전을 설치하여 하드웨어 I/O를 통해 실제 측정 설정과 수집을 수행합니다.

피드백형 증발식 냉각기

피드백형 증발식 냉각기 샘플 프로젝트는 액터 프레임워크 템플릿을 사용하여 구축되며 핫스왑이 가능한 하드웨어, 컨트롤러, 사용자 인터페이스로 증발식 냉각기를 구현합니다. 이 샘플 프로젝트는 액터라고 불리는 독립적으로 실행되는 여러 VI로 구성되며, 이 VI들은 사용자 인터페이스, 냉각기, 팬, 물 높이를 나타냅니다. 각 액터는 명령어 같은 메시지를 관련 액터에 전달할 수 있고, 이러한 메시지를 관련 액터로부터 받을 수 있습니다. 이 아키텍처는 고정 또는 동적으로 액터를 더 많이 포함하도록 확장할 수 있습니다.

Supervisory Control and Data Acquisition(SCADA) 시스템

본 샘플 프로젝트는 시뮬레이션된 NI CompactRIO 및 프로그래밍 가능한 PLC 기반 시스템을 위해 Supervisory Control and Data Acquisition(SCADA) 시스템을 구현합니다. 서버 및 HMI 클라이언트 구조가 있어, LabVIEW Datalogging and Supervisory Control (DSC) Module을 사용하여 서버 어플리케이션에서 타사 툴에 연결하고 히스토리 데이터 및 알람을 로깅할 수 있습니다. HMI 클라이언트 어플리케이션의 경우, SCADA 모듈은 이벤트에 기반한 업데이트를 사용자 인터페이스에 제공하며 서브패널의 다이나믹 로딩을 실행하므로, 효율적이며 빠르게 응답하는 사용자 인터페이스 아키텍처를 구현합니다.

노트: 이 샘플 프로젝트의 기능을 실행하려면, LabVIEW DSC Module이 필요합니다.

문서 읽기 | NI 커뮤니티에서 상세 가이드 확인 | 웹 세미나 보기

LabVIEW Real-Time 및 LabVIEW FPGA 샘플 프로젝트

임베디드 시스템은 일반적으로 신뢰도와 결정성 있는 성능을 구현하도록 제작된 아키텍처가 필요합니다. 따라서 여러 임베디드 어플리케이션은 시스템 상태 모니터링, 에러 핸들링 및 워치독 타이머를 위한 전용 프로세스가 필요합니다. CompactRIO 및 PXI RT DAQ용 LabVIEW 샘플 프로젝트는 다양한 임베디드 컨트롤 및 모니터링 시스템에 사용되는 권장 소프트웨어 아키텍처를 제공함으로써 이러한 요구를 충족하는 최적의 방법을 제공합니다. 또한 이 샘플 프로젝트는 데이터 통신, 네트워크 연결, 컨트롤 루틴, 데이터 로깅 등을 위한 우수 사례도 제공합니다.

CompactRIO 샘플 프로젝트

CompactRIO에서 LabVIEW FPGA 컨트롤

본 샘플 프로젝트는 고성능 컨트롤 및/또는 하드웨어 기반의 안전 로직이 필요한 어플리케이션을 위해 제작되었습니다. 이 프로젝트에서는 컨트롤 알고리즘이 소프트웨어에서 구현되지 않고 FPGA에서 구현되므로, 컨트롤 루프는 최소 지터로 10 kHz 이상의 속도를 구현합니다. 또한 FPGA VI에는 안전 로직이 포함되어 있어 치명적인 오류나 리얼타임 소프트웨어 비작동시에 모든 출력을 즉시 안전 상태로 전환함으로써 안정성을 보장합니다.

문서 읽기 | NI 커뮤니티에서 상세 가이드 확인 | 웹 세미나 보기

CompactRIO에서 LabVIEW Real-Time 컨트롤 (RIO 스캔 인터페이스)

본 샘플 프로젝트는 100 Hz 또는 이하의 단일 포인트 I/O 속도로 결정성 있는 성능이 필요한 컨트롤 어플리케이션을 위해 제작되었습니다. 본 샘플 프로젝트는 FPGA 하드웨어를 사용하지 않지만, 컨트롤을 위해 결정성있는 리얼타임 프로세서를 활용합니다. 본 샘플 프로젝트는 리얼타임 어플리케이션 내에서 I/O 데이터에 접근하기 위해 RIO 스캔 인터페이스 (RSI)를 변수로 사용합니다.

웹 세미나 보기

CompactRIO에서 LabVIEW FPGA 웨이브폼 수집 및 로깅

이 샘플 프로젝트는 사용자 정의된 고속 FPGA 기반 아날로그 수집을 제공하며, 트리거 조건이 충족되면 리얼타임 시스템에서 수집된 데이터를 디스크에 로깅합니다. 이 샘플 프로젝트는 헤드리스 실행을 위해 제작되었으며, 또는 사용자 인터페이스에 연결할 수도 있습니다.

웹 세미나 보기

LabVIEW Real-Time Sequencer on CompactRIO

본 샘플 프로젝트는 LabVIEW Real-Time 컨트롤 어플리케이션에서 사용자 정의된 시퀀스 또는 방법을 실행하는 시퀀스 엔진을 구현합니다. 이 프로젝트에는 사용자 정의된 시퀀스를 생성하고, 시퀀스를 CompactRIO에 배포하며, 시퀀스 엔진 상태를 모니터링하는 Windows 기반의 사용자 인터페이스가 포함됩니다. 사용자 인터페이스는 서브패널의 다이나믹 로딩을 사용하여 효율적이며 응답이 빠른 인터페이스 아키텍처를 구현합니다.

NI 커뮤니티에서 상세 가이드 확인 | 웹 세미나 보기

LabVIEW Real-Time (NI-DAQmx) 샘플 프로젝트

LabVIEW Real-Time (NI-DAQmx) 샘플 프로젝트는 리얼타임 컨트롤 및/또는 웨이브폼 수집 및 로깅 등의 어플리케이션을 위해 제작되었습니다.

LabVIEW Real-Time 컨트롤 (NI-DAQmx)

플랜트에 결정성 있는 소프트웨어 기반 컨트롤을 구현합니다. NI-DAQmx를 사용합니다. 본 샘플 프로젝트는 NI Real-Time PXI 컨트롤러와 NI DAQ을 사용하여 DAQ 컨트롤 I/O를 결정성있게 컨트롤해야 하는 컨트롤 어플리케이션을 위해 제작되었습니다.

문서 읽기

LabVIEW Real-Time 웨이브폼 수집 및 로깅 (NI-DAQmx)

본 샘플 프로젝트는 연속 웨이브폼 데이터를 수집하고 디스크에 로깅하며, NI-DAQmx를 사용합니다. 이 샘플 프로젝트는 아날로그 데이터 수집을 제공하며, 트리거 조건이 충족되면 리얼타임 시스템에서 수집된 데이터를 디스크에 로깅합니다. 이 샘플 프로젝트는 헤드리스 실행을 위해 제작되었으며, 또는 사용자 인터페이스에 연결할 수도 있습니다. 이 샘플 프로젝트는 NI DAQ을 사용하는 NI Real-Time PXI 컨트롤러 또는 NI 독립형 CompactDAQ을 사용하는 어플리케이션을 위해 제작되었습니다.

문서 읽기

직접 정의한 템플릿과 샘플 프로젝트 추가하기

고급 사용자들은 제공되는 템플릿과 샘플 프로젝트를 각자의 용도에 맞게 제작하여 보완할 수 있으며, 이 같은 새로운 '프로젝트를 생성'을 통해 제작한 템플릿을 팀원들과 공유하고 배포할 수 있습니다.

템플릿 또는 샘플 프로젝트를 직접 정의할 수 있는 프로젝트 생성 대화창은 사용자가 정의하여 생성한 코드를 설명할 수 있는 추가 항목을 포함하도록 변경 가능합니다. 사용자만의 고유 항목을 생성하고 대화창에 추가하기 위한 자세한 정보는 여기를 클릭하십시오.

템플릿 또는 샘플 프로젝트 시작하기

템플릿과 샘플 프로젝트를 사용하려면 다양한 LabVIEW 사용 기술과 프로그래밍 개념에 대한 이해가 필요합니다. 각 프로젝트에 포함된 문서는 사용자들이 알아야 하는 개념을 설명합니다. 또한, 블록다이어그램의 문서는 코드를 추가하고 변경해야 하는 위치를 파란색으로 표시합니다.

또한 LabVIEW Skills Guide를 통해 권장되는 사용 기술과 교육 과정 목록을 확인할 수 있습니다.