아카데믹 회사 소개 행사 및 세미나 NI Developer Zone 기술 지원 솔루션 제품 및 서비스 문의 MyNI

LabVIEW: 편리한 사용과 강력한 개발


NI LabVIEW는 강력하고 유연한 프로그래밍 언어와 사용이 편리한 설정 기반 소프트웨어 사이의 간격을 메워주는 개발 언어입니다. LabVIEW는 “설정 기반 소프트웨어이므로 사용이 편리한 방면 강력하지 못할 것이다”라는 고정 관념을 효과적으로 타파해주는 직관적인 그래픽 개발 환경을 제공합니다. LabVIEW는 프로그래밍 실력에 관계없이 테스트, 측정, 자동화 및 제어 어플리케이션을 생성하기 위한 이상적인 소프트웨어로서의 자격을 갖추고 있습니다. LabVIEW는 사용자가 오랜 프로그래밍 경력을 갖는 엔지니어든지 또는 기초 프로그래밍 교육 정도를 이수한 오퍼레이터라도 적절하고 직관적인 인터페이스를 제공하므로, 제품 설계를 검증하고 공정을 자동화 또는 제어할 수 있게 해주는 시스템을 신속하게 구축할 수 있습니다. 사용자는 LabVIEW의 함수를 인터랙티브 방식으로 구성할 수 있으며, 완료된 어플리케이션을 구축할 필요 없이 즉시 결과를 확인할 수 있습니다. 또한 LabVIEW가 완전 기능 프로그래밍 언어의 견고한 기반을 토대로 구축되어 있다는 점을 감안할 때, 사용자는 언제라도 사용자 맞춤형의 강력한 프로그래밍 요소 및 구조를 사용할 수 있습니다.

목차

  • 도입
  • 마우스 클릭만큼 쉬운 LabVIEW 학습
  • 완전한 기능을 제공하는 프로그래밍 언어인 LabVIEW
  • 과학자와 엔지니어를 위해 설계된 LabVIEW
  • 결론


    도입

    측정, 자동화 및 제어 어플리케이션을 개발할 때 사용자는 서로 다른 클래스의 소프트웨어 중에서 선택할 수 있습니다. 한 클래스에는 C, C++ 및 Visual Basic과 같은 기존의 프로그래밍 언어가 포함됩니다. 일반적으로 이러한 텍스트 기반 언어를 사용할 경우 이 언어들이 제공하는 효율성과 이점을 극대화하려면 사용 가능한 함수, 구문 규칙 및 개발 환경의 특성에 관한 지식이 필요합니다. 이 툴은 매우 유연하고 확장 가능하지만 일반적으로 어느 정도 정규 훈련을 받은 사용자에게 해당됩니다.

    또 다른 공통 클래스의 소프트웨어는 자동화된 테스트 및 측정 시스템 생성을 위한 쉽고 빠른 방법을 제공하여 프로그래밍 언어의 내재된 어려움을 극복하도록 설계된 설정 기반(Configuration Base) 소프트웨어를 포괄합니다. 일반적으로 이러한 툴은 사용자 맞춤 또는 확장 가능성이 작거나 없으며 제한된 기능만을 제공하는 대화 기반의 인터랙티브 어플리케이션입니다.

    나머지 클래스에 대해 특정 클래스를 선택하는 것은 절충을 하게 된다는 것을 의미합니다. 설정 기반 툴을 사용하는 경우 소프트웨어에 내장된 기능 범위 밖의 작업 수행을 시도하자 마자 장벽에 부딪히게 됩니다. 기존의 프로그래밍 언어를 사용할 경우, 가장 단순한 작업을 하는 경우에도 가파른 학습 곡선을 그리며 비직관적인 텍스트 명령어를 사용합니다.

    NI LabVIEW는 이러한 두 클래스의 소프트웨어 사이에서 강력한 기능을 가지면서 동시에 사용도 편리할 수 있다는 관념을 심어주는 직관적인 그래픽 개발 환경을 제공합니다. LabVIEW는 업계, 전문 분야 또는 프로그래밍 경험에 관계없이 테스트, 측정, 자동화 및 제어 어플리케이션 구축에 이상적인 툴로서의 기능을 갖추고 있습니다. LabVIEW는 사용자가 과학자나 엔지니어 또는 기술자인 경우에도 사용자의 전문 지식에 맞는 적절한 인터페이스를 제공합니다. 사용자는 신속하게 시스템을 구축하여 제품 설계 및 자동화 또는 제어 절차를 확인할 수 있습니다. 사용자는 LabVIEW의 함수를 인터랙티브 방식으로 구성할 수 있으며, 완료된 어플리케이션을 구축할 필요 없이 즉시 결과를 볼 수 있습니다. 또한 LabVIEW는 완전 기능 프로그래밍 언어의 견고한 기반을 토대로 구축되어 있다는 점을 감안할 때, 사용자는 언제라도 완전한 사용자 맞춤형의 강력한 프로그래밍 요소 및 구조를 사용할 수 있습니다.


    그림 1. LabVIEW는 강력한 성능과 사용 편리성 간의 간격을 메워줍니다


    마우스 클릭만큼 쉬운 LabVIEW 학습

    LabVIEW는 그래픽 형식 프로그래밍 언어에 기반한 개발 환경입니다. 그래픽 디스플레이는 텍스트 기반 코드에 비해 엔지니어와 과학자들에게 보다 친숙한 개발 환경을 제공합니다. 이러한 어플리케이션 개발 접근 방식은 학습 곡선을 상당히 줄여줍니다. 사용자는 인터랙티브 팔레트, 대화상자, 메뉴 및 버추얼 인스트루먼트(VI)라 알려진 수백 개의 함수 블록을 통해 강력한 기능을 액세스할 수 있습니다. 어플리케이션의 동작을 정의하기 위해 이러한 VI를 다이어그램 위에 끌어서 놓을 수 있습니다. 이 마우스 클릭 조작(Point-and-click) 접근 방식은 최초 셋업에서부터 최종 솔루션까지 걸리는 개발 시간을 단축시킵니다.

    각 VI는 블록 다이어그램과 프런트 패널의 두 가지 항목으로 구성됩니다. 프런트 패널은 어플리케이션 사용자가 명령어나 값을 입력하거나 노브(Knob) 및 버튼과 같은 오브젝트를 조작하여 어플리케이션을 제어하는 그래픽 사용자 인터페이스입니다. 또한 프런트 패널은 표시기(Indicator), 차트 및 많은 다른 그래픽 디스플레이를 통해 어플리케이션의 실행 결과가 표시되는 곳입니다. 프런트 패널의 구축은 블록 다이어그램을 구축하는 것만큼이나 쉽습니다. 오브젝트를 끌어다 놓아 블록 다이어그램에서 터미널을 생성할 수 있습니다. 그런 다음 이 오브젝트의 내외부에 있는 데이터를 와이어링하여 프런트 패널과 블록 다이어그램의 코드 간에 앞뒤로 전달할 수 있습니다.

    함수 팔레트의 탐색 기능으로 필요한 기능을 제공하는 함수를 쉽게 검색하며 각 VI의 구성 매개변수 및 기능에 대해 명료하게 설명해주는 도움말 대화상자를 이용할 수 있습니다. 이러한 VI를 사용하면, 어플리케이션을 정의하는 동작의 고급 시퀀스를 설명할 수 있습니다.


    그림 2. LabVIEW 사용자 인터페이스인 프런트 패널과 각종 노브 및 버튼이 위치한 Controls 팔레트


    그림 3. 기능성 함수가 위치한 Functions 팔레트와 블록 다이어그램

    사용자는 데이터 플로우(Data Flow : 흐름도) 프로그래밍이라는 개념을 통해 데이터의 흐름 및 어플리케이션의 실행을 정의합니다. 데이터는 한 VI에서 다음 VI로 전달되며 결국 전체 어플리케이션의 실행 순서 및 기능을 정의합니다. 데이터 플로우는 특성상 플로우 차트 읽기와 비교됩니다. 블록 다이어그램은 아이콘, 이들 아이콘을 연결하는 와이어, 그리고 실행 로직을 제어하는 구조로 표시되는 함수로 구성됩니다. 데이터는 한 함수에서 다음 함수로 흐르며, 함수 및 VI는 모든 터미널 또는 와이어 연결이 처리에 사용 가능한 데이터를 갖기 전까지는 실행되지 않습니다.


    그림 4. LabVIEW VI 다이어그램 오브젝트는 실행 순서를 결정하기 위해 데이터 플로우 기법을 사용합니다

    VI에는 표준 VI 및 Express VI의 두 유형이 있습니다. 표준 VI를 통해 더하기 빼기와 같은 low-level 기초 기능부터 데이터 수집, 분석, 측정 및 리포트 생성과 같은 high-level 함수에 이르기까지 LabVIEW가 제공하는 모든 것을 실행할 수 있습니다. 표준 VI를 구성하려면 값과 매개변수를 그 터미널로 와이어링해야 하며 이것들은 그 후 프로그램이 실행될 때 해당 함수로 읽혀집니다.

    Express VI는 공통적으로 사용되는 기능으로 구성되며 각각의 VI를 위해 인터랙티브 방식의 맞춤형 대화상자를 통해 쉽게 구성할 수 있습니다. Express VI를 다이어그램에 끌어 놓으면 기능의 각 매개변수를 선택할 수 있으며 즉시 결과를 시각화할 수 있는 창이 열립니다. 그런 다음 LabVIEW는 인터랙티브 방식으로 구성된 설정을 사용하여 자동으로 기본 코드(underlying code)를 생성하는데 이는 표준 VI를 사용하는 경우 다른 방식으로 생성됩니다. 일부 Express VI는 데이터 수집(DAQ Assistant) 또는 인스트루먼트 제어(Instrument I/O Assistant)와 같은 작업을 구성하기 위해 인터랙티브 인터페이스를 확장하면서 I/O Assistant에 대한 액세스를 제공합니다.

    또한 Express VI는 현재 신호 발생기, 고속 디지타이저 및 디지털 파형 발생기/분석기와 같은 모듈형 계측기(Modular Instruments)의 구성을 단순화합니다. Express VI 이전에 각 모듈형 계측기는 해당 계측기를 위해 특수 설계된 특정 함수 세트의 이해를 필요로 했습니다. Express VI는 일반적으로 계측기의 유형과 연관된 입력 및 제어의 수단을 통해 모든 설정을 구성할 수 있는 각각의 계측기에 대한 맞춤형 대화상자를 보여줌으로써 구성 과정을 더욱 쉽게 해줍니다.

    다음은 현재 사용 가능한 Express VI의 목록입니다.
    • Align and Resample
    • Amplitude and Level Measurements
    • Append Signals
    • Build Table
    • Build Text
    • Build XY Graph
    • Collector
    • Comparison
    • Convolution and Correlation
    • Curve Fitting
    • DAQ Assistant
    • Delay Values
    • Display Message to User
    • Distortion Measurements
    • Elapsed Time
    • Extract Portion of Signal
    • FieldPoint™ Express VI
    • Filter
    • Formula
    • Histogram
    • Instrument I/O Assistant
    • Mask and Limit Testing
    • NI DIAdem™ Report Wizard
    • Prompt User for Input
    • Read LabVIEW Measurement File
    • Relay
    • Repack Values
    • Report
    • Sample Compression
    • Scaling and Mapping
    • Select Signals
    • Simulate Arbitrary Signal
    • Simulate Signal
    • Spectral Measurements
    • Statistics
    • Time Delay
    • Time Domain Math
    • Timing and Transition Measurements
    • Tone Measurements
    • Trigger and Gate
    • Write LabVIEW Measurement File


    그림 5. Spectral Measurements Express VI를 위한 설정 대화상자

    계층적 아키텍처에 기반한 대형 어플리케이션의 개발은 캡슐화와 모듈성을 제공하므로 확장 및 유지관리가 더욱 쉬워집니다. 이 과정은 특정 함수를 수행하는 개별 VI의 설계를 포함합니다. 다른 VI에서 특정 함수를 수행하는 VI는 SubVI 또는 모듈이라 불립니다. 잘 설계된 VI에서 각 모듈은 하나의 작업(Task) 또는 함수를 수행합니다. 만약 단일 모듈이 두 개 이상의 목표를 수행하려고 하면 혼란스러워지기 쉬우며 유지관리는 어려워질 수 있습니다. 양호한 모듈 계층을 생성하는 것은 모든 프로그래밍 언어에서 좋은 개발 스타일이며 LabVIEW의 그래픽 특성은 계층 및 코드를 보다 쉽게 이해할 수 있도록 해줍니다.


    그림 6. 오브젝트는 프런트 패널 및 블록 다이어그램 위에 위치하게 됩니다

    다수의 VI를 함께 묶어 LabVIEW 안의 캡슐화 및 모듈성을 쉽게 구현할 수 있습니다. 그리고 나서 이들 VI를 하나의 유닛으로 사용할 수 있으며 이를 SubVI라고 합니다. 이 기능을 통해 LabVIEW 프로그램을 쉽게 유지관리하고 이해할 수 있도록 해주는 계층을 정의할 수 있습니다.


    각 VI는 블록 다이어그램과 프런트 패널의 두 개의 항목으로 구성됩니다. 프런트 패널은 어플리케이션 사용자가 명령어나 값을 입력하거나 노브 및 버튼과 같은 오브젝트를 조작하여 어플리케이션을 제어하는 그래픽 사용자 인터페이스입니다. 또한 프런트 패널은 인디케이터, 차트 및 많은 다른 그래픽 디스플레이를 통해 어플리케이션의 실행 결과가 표시되는 곳입니다. 프런트 패널의 구축은 블록 다이어그램을 구축하는 것만큼이나 쉽습니다. 오브젝트를 끌어다 놓아 블록 다이어그램에서 터미널을 생성할 수 있습니다. 그런 다음 오브젝트의 내외부에 있는 데이터를 와이어링하여 프런트 패널과 블록 다이어그램의 코드 간에 앞뒤로 전달할 수 있습니다.


    개발 도중, 환경의 프로그래밍 및 이해를 쉽게 하기 위한 도움말 툴을 이용할 수 있습니다. LabVIEW는 함수 입출력의 사용 및 값을 설명하는 팁 스트립뿐만 아니라 가리키는 모든 함수 또는 항목을 설명하는 도움말 창을 포함합니다. 이러한 툴은 개발 환경을 보다 효율적으로 구성해주며 어플리케이션을 생성하는 데 소요되는 시간을 단축시켜 줍니다.

    LabVIEW VI에는 그래픽 특성상 자체 문서화 기능이 있습니다. 다이어그램을 출력할 수 있으며 함수를 연결하는 와이어를 따라 가면 그 기능을 쉽게 이해할 수 있습니다. 그리고 내장 문서화 옵션을 통해 보다 완전한 문서를 생성할 수 있습니다. 이 자동 툴은 사용된 모든 함수 목록, 데이터 유형, 사용자 인터페이스, 블록 다이어그램 및 VI 계층을 포함하는 문서를 생성합니다.


    그림 7. 자동 생성된 문서

    강력한 디버깅 툴은 프로그램 실행을 시각적으로 트레이스하고 이들 와이어를 따라 한 함수에서 다른 함수로 전달되는 데이터를 볼 수 있는 수단을 제공합니다. 실행 하이라이팅(Execution Highlighting) 기능은 사용자 어플리케이션의 동작을 쉽게 이해하고 와이어를 통해 전송되는 데이터의 흐름도 쉽게 볼 수 있도록 해줍니다. 이 기능은 실행 중에 별도로 뜬 창에서 다이어그램의 특정 지점을 통한 데이터 흐름을 보여주는 프로브(Probe)에 의해 보완됩니다. 제공된 프로브를 사용할 수도 있고 자신이 원하는 형식으로 데이터를 표시하는 맞춤형 프로브를 만들 수도 있습니다.

    디버깅 또한 Real-Time 어플리케이션에 필수적입니다. LabVIEW Real-Time 환경이 실시간 시스템의 개발을 쉽게 해주는 동안 그 실행을 검증할 수 있는 것도 중요합니다. 새로운 LabVIEW Execution Trace 툴킷을 통해 Real-Time 시스템의 성능을 검증하고 최적에 못 미치는 코드 실행 및 찾기 어려운(Difficult-to-find) 레이스 조건(Race Condition)을 식별할 수 있게 되었습니다. 소수의 LabVIEW 코드 수정을 통해 Real-Time 임베디드 PXI 컨트롤러, Compact FieldPoint 시스템 및 PCI-7041 플러그인 보드와 같은 다양한 대상에 대해 코드 실행을 분석할 수 있습니다.

    Execution Trace 툴킷의 기능은 트레이스의 기능을 제어하는 다섯 개의 추가적 VI로 단순해졌습니다. 이 VI를 통해 특정 위치에서 트레이스 활동을 시작 및 중지할 수 있고 트레이스 데이터를 디스크에 기록하거나 네트워크를 통해 호스트에 전송할 수 있습니다. 이 툴킷은 VI는 물론 스레드를 통해 코드 실행을 보여주는 인터랙티브 디스플레이를 포함합니다.


    그림 8. 원래의 신호 처리 VI / 그림 9. 트레이스 툴을 통한 신호 처리 VI

    그림 8은 Signal Processing.vi의 예를 보여주는데 VI에는 데이터를 평균화하며 필터링하는 두 개의 병렬 루프가 있습니다. 데이터의 평균화는 적은 대역폭을 사용하므로 어플리케이션은 매 밀리 초마다 데이터 평균화를 실행합니다. 필터링은 피크 주파수를 결정하며 매 3ms당 단 한번만 실행됩니다. Execution Trace 툴킷으로 실행을 분석하기 위해 TraceTool Start Trace.vi 및 TraceTool Stop Trace 및 Send.vi를 그림 9와 같이 추가합니다.

    이러한 추가적인 VI를 사용하면 LabVIEW Trace Execution Tool을 통해 실행을 볼 수 있습니다.

    그림 10은 Signal Processing.vi의 실행 다이어그램을 보여줍니다. 이 다이어그램에서는 Average Data.vi 실행의 발생 빈도가 Peak Detection.vi 발생 빈도의 세 배나 되는 것을 볼 수 있습니다.


    그림 10. Signal Processing.vi의 실행

    또한, LabVIEW Execution Trace 툴킷은 트레이스를 실시간 대상의 로컬 하드 드라이브에 저장하는 기능을 포함합니다. TraceTool Log User Event.vi를 통해 개별 이벤트를 플래그 할 수 도 있습니다.


    LabVIEW는 완전 기능 프로그래밍 언어입니다

    LabVIEW가 제공하는 모든 사용 편의 특징들은 기능이나 성능의 희생을 요구하지 않습니다. LabVIEW는 데이터 구조, 의사결정 기능 및 흐름 제어, 루핑 구조 및 이벤트 처리기를 포함하는 범용 프로그래밍 언어의 완전한 기능을 갖추고 있습니다. LabVIEW를 사용하여 얻을 수 있는 이점은 직관적 구성 인터페이스를 제공하고 프로그래밍에 내재된 미묘한 차이를 숨김으로써 이들 기능의 사용 복잡성을 줄여준다는 것입니다.

    LabVIEW가 프로그래밍 복잡성을 감소시켜주는 방법의 한 가지 예는 메모리 관리입니다. LabVIEW는 모든 메모리 관리를 자동으로 실행하여 메모리의 효율적이고 안전한 사용을 보장합니다. 다이어그램 상의 데이터 유형도 사용이 쉽습니다. 메모리 문자열 및 어레이를 만들 수 있고 이러한 것들을 메모리 할당의 세부 사항에 대한 걱정 없이 실행할 수 있으며, 이는 메모리의 손실 또는 덮어쓰기와 같은 매우 많은 오류가 생길 가능성이 존재하지 않음을 의미합니다.

    또 하나의 다른 예는 이벤트 처리입니다. LabVIEW를 통해 어플리케이션이 응답해야 하는 모든 가능한 이벤트의 목록을 만들 수 있으며 어플리케이션의 상태에 따라 이벤트 세트를 프로그래밍 방식으로 활성화하거나 비활성화할 수 있으므로 효율성이 크게 증대됩니다.

    이러한 효율성은 어플리케이션 작동 대상 오브젝트 및 이벤트를 신속히 선택할 수 있는 그래픽 이벤트 구조와 인터랙티브 구성 대화상자를 통해 얻어집니다.


    그림 11. 이벤트 구성 대화상자 및 이벤트 구조

    기존의 프로그래밍 언어는 프로그램 효율성의 극대화를 위한 공통적 방법인 병렬 실행 프로세스를 생성하는 프로그래밍 기법에 대한 폭 넓은 지식을 필요로 합니다. 병렬성(Parallelism)의 구현을 위해 운영체제 함수, 리소스 관리, 메모리 보호 및 잠금 메커니즘에 대한 라이브러리 콜의 복잡한 균형이 필요합니다. LabVIEW는 이러한 고급 프로그래밍 기술의 구현을 매우 단순화합니다.

    대중화된 텍스트 기반 언어의 흐름 제어보다 더 풍부한 전산 모델을 제공하는 데이터 플로우는 본래 병렬 방식입니다. 단순히 두 개 이상의 루프를 그림으로써 쉽게 병렬성을 얻을 수 있습니다. 데이터 종속성이 없는 한, 그들 각각은 병렬적이거나 병렬 또는 독립적으로 자동 실행됩니다. 그리고 LabVIEW는 처리 작업을 다중 프로세서를 통해 자동으로 투명하게 분배할 수 있어 모든 가용 리소스를 효율적으로 사용할 수 있습니다.

    최신 Intel Pentium 4(이상) 프로세서는 하이퍼스레딩 기술이 특징인데, 이 기술을 통해 어플리케이션은 단일 프로세서가 장착된 PC에서 다중 프로세서 PC의 이점을 최대한 활용할 수 있습니다. 간단히 말해, 하이퍼스레딩 프로세서는 동일 마이크로칩에 내장된 다중 프로세서처럼 작동합니다. C와 같은 기타 기존 프로그래밍 언어에서는 어플리케이션의 멀티스레딩을 위해 다중 스레드를 포킹(Fork)하고 스레드 간 통신을 위한 고유의 방법을 코딩해야 합니다. LabVIEW에서는 실행 시스템이 이 기능을 이용하도록 이미 설계되어 있으며, 코드가 요구하는 경우 멀티스레딩을 위한 기회를 자동으로 인식합니다(그림 12 참조).


    그림 12. LabVIEW에서의 코드 병렬 실행 – 2개의 While 루프

    전통적으로 프로그래밍 기법에 대한 폭 넓은 지식을 필요로 하는 또 다른 예는 병렬 실행 프로세스를 생성하는 것인데, 이는 프로그램의 효율을 극대화하는 공통 방법입니다. 병렬성의 구현을 위해 운영 체제 함수, 리소스 관리, 메모리 보호 및 잠금 메커니즘에 대한 라이브러리 콜의 복잡한 균형이 필요합니다. LabVIEW는 이러한 고급 프로그래밍 기술의 구현을 매우 단순화합니다. 대중화된 텍스트 기반 언어의 흐름 제어보다 더 풍부한 전산 모델을 제공하는 데이터 플로우는 본래 병렬 방식입니다. 단순히 두 개 이상의 루프를 그림으로써 쉽게 병렬성을 얻을 수 있습니다. 데이터 종속성이 없는 한, 그들 각각은 병렬적이거나 병렬 또는 독립적으로 자동 실행됩니다. 그리고 LabVIEW는 처리 작업을 다중 프로세서를 통해 자동으로 투명하게 분배할 수 있어 모든 가용 리소스를 효율적으로 사용할 수 있습니다. 이는 프로그래밍 경험에 구애 받지 않는 자동적이고 투명한 프로세스입니다.

    LabVIEW가 사용되는 하드웨어 플랫폼

    모니터링 및 제어에서부터 물리적 시스템의 실시간 시뮬레이션에 이르는 범위의 프로그램 및 어플리케이션을 생성할 때 PC가 항상 최상의 플랫폼을 제공하는 것은 아닙니다. 빠른 실행, 결정성 또는 휴대성에 대한 필요 여부에 따라 다른 장치와 내장형 어플리케이션을 대상으로 해야 하는 필요성이 점점 커지고 있습니다. 이러한 필요는 항상 새로운 지침 및 함수 및 완전히 다른 개발 환경을 학습해야 한다는 것을 함축하고 있습니다. 일반적으로 벤더들은 Microsoft Pocket PC 또는 Palm OS 기반 PDA, Real-Time 운영 체제에 기반한 시스템 또는 FPGA용 VHDL(Field Programmable Gate Arrays)에서와 마찬가지로 장치를 프로그래밍할 적합한 툴을 제공합니다. LabVIEW는 통합된 대안을 제공하며 사용자는 이를 통해 새로운 개발 환경을 학습하지 않고도 많은 다양한 장치를 대상으로 할 수 있습니다. 예를 들어, LabVIEW에서 사용자의 어플리케이션을 생성한 다음 휴대용 모니터링 장치 또는 휴대형 데이터 수집과 같은 어플리케이션용 PDA로 다운로드하기만 하면 됩니다.

    실시간 데이터 수집 및 제어를 필요로 하는 어플리케이션, 특히 결정적인 실시간 제어 루프를 필요로 하는 어플리케이션의 경우, 다양한 PXI 플러그인 모듈을 통해 내장 컨트롤러 상에서 실행 중인 실시간 운영 체제로 LabVIEW 어플리케이션을 다운로드할 수 있습니다. 이들을 신호 컨디셔닝 모듈, 동적 신호 수집 모듈, 모션 제어 모듈 및 CAN(controller area network) 연결 모듈과 결합하면 무제한의 I/O가 지원되는 맞춤형 솔루션을 생성할 수 있습니다. NI RT Series FieldPoint를 사용하면, 전체 범위의 I/O 호환성 및 기능성을 갖는 견고한 내장 데이터 로깅 및 제어 시스템을 구축할 수 있습니다. RT Series FieldPoint는 아날로그 I/O, 디지털 I/O, 릴레이, 카운터, 온도 측정, 스트레인 측정, 펄스 발생 및 펄스 폭 변조를 포함하는 모든 FieldPoint 분산 I/O 모듈과 작동합니다.

    고속 제어 어플리케이션 또는 산업용 통신 프로토콜 테스트 같은 고급 타이밍 및 동기화를 필요로 하는 어플리케이션을 위해 LabVIEW는 보드에 FPGA가 내장된 재구성 가능 I/O 하드웨어를 대상으로 함으로써 FPGA 기술의 유연성을 통합하는 솔루션을 제공합니다. LabVIEW 프로그램을 작성한 후 FPGA 칩에 다운로드함으로써 보드의 동작을 맞춤화할 수 있으며 모든 신호 및 작동의 정확한 동기화 및 타이밍에 대한 제어, 사용자 정의 가능 온보드 결정 로직, 그리고 입력, 출력, 카운터 및 타이머, 펄스 폭 변조 또는 사용자 정의 프로토콜에 대한 개별 디지털 라인의 구성 등의 기능을 제공합니다.

    또한, 내장된 머신 비전 어플리케이션을 생성하고 로봇식, 자동화 테스트 및 산업용 검사 시스템에서 흔히 볼 수 있는 험난한 환경에서 견딜 수 있는 견고한 머신 비전 패키지인 NI CVS-145x Compact Vision System에 배치할 수 있습니다. 또한 CVS-145x를 NI Compact FieldPoint의 산업용 측정 및 제어 기능과 통합할 수 있습니다. CVS-145x를 프로그래밍하기 위해 Vision Builder for Automated Inspection을 통한 빠른 머신 비전 어플리케이션의 구성 또는 LabVIEW 및 Vision Development Module을 통한 어플리케이션의 프로그래밍 중에서 선택할 수 있습니다.

    다중 장치 간의 통신을 위해 LabVIEW는 802.11 및 Bluetooth와 같은 무선 통신 기능 사용을 위한 내장 기능을 제공합니다.


    LabVIEW는 과학자와 엔지니어를 위해 설계되었습니다

    어떤 툴에 의존하고 있든, 인터랙티브 설정 기반 접근 방식 또는 유연하고 완전한 맞춤형의 프로그래밍 접근 방식 중 어느 것을 선호하는가에 상관없이 궁극적 목표는 측정을 수행하는 것입니다. LabVIEW는 소스가 데이터 수집 보드 또는 오실로스코프이거나 또는 멀티미터 같은 기존의 독립형 계측기인가에 관계 없이 측정 작업을 단순화하도록 특수 설계되었습니다.

    LabVIEW는 사용자의 어플리케이션에 통합할 수 있는 높은 레벨의 데이터 수집 함수를 제공합니다. 데이터 수집 함수를 구성할 때 기능 구성을 위한 완전 인터랙티브 접근 방식인 DAQ Assistant를 사용할 수 있습니다. DAQ Assistant Express VI를 블록 다이어그램 위에 놓을 때 마법사 같은 인터페이스를 통해 수행하려는 측정의 유형, 수집을 위해 사용할 특정 채널 및 수집의 특성(예: Continuous, One-shot, Triggered)을 선택할 수 있습니다. 일단 구성되면 LabVIEW는 모든 수집 설정을 VI에 통합하며 모든 필요한 출력을 사용할 수 있게 해주므로 이 함수를 어플리케이션 나머지에 통합할 수 있습니다.


    그림 13. 인터랙티브 방식으로 데이터 수집 작업을 수행할 수 있는 LabVIEW DAQ Assistant

    그림 14. LabVIEW DAQ Assistant 데이터 수집 작업 구성

    GPIB 또는 직렬 버스를 통해 통신하는 오실로스코프, 신호 발생기 및 디지털 멀티미터와 같은 독립형 계측기를 제어해야 하는 경우가 종종 있습니다. 결과 ASCII 문자열 분석(parsing) 및 데이터 추출 작업은 지루한 작업이 되고 대량의 코드에 대한 원인이 됩니다. LabVIEW는 150개 이상의 벤더가 지원하는 3000개가 넘는 인스트루먼트 드라이버의 네트워크를 제공하며. 이를 통해 엔지니어가 결과를 얻기 위해 투자해야 하는 시간을 상당히 줄일 수 있습니다. 게다가, LabVIEW Instrument I/O Assistant는 계측기와 통신할 수 있는 빠르고 쉬운 방법을 제공합니다. 인터랙티브 대화상자, 자동 분석(Autoparsing) 및 마우스 클릭 조작(Point-and-click)을 통한 데이터 요소의 선택을 통해 계측기 통신을 쉽고 직관적이게 해줍니다.


    그림 15. LabVIEW I/O Assistant는 자동으로 ASCII 문자열을 분석하며 명명된 출력을 지정합니다.

    수집된 데이터에서 결과를 얻으려면 측정 분석 함수가 필요합니다. LabVIEW는 효율적인 의사 결정을 위해 필요한 중요 정보를 추출하기 위한 모든 툴을 제공합니다. LabVIEW는 데이터 이해를 위해 400개 이상의 측정 분석, 신호 처리 및 수학 함수를 제공합니다. 이들 함수는 처리 능력을 극대화시켜주는 효율적인 업계 표준 LAPACK/BLAS 알고리즘에 의존합니다. 이들은 Wolfram’s Mathematica 또는 MathWorks, Inc. MATLAB®과 같은 공통 수학 패키지에 사용되는 동일한 기본 알고리즘입니다.

    이들 함수 중 대부분은 인터랙티브 대화상자를 통해 구성이 쉬우며 가장 일반적으로 사용되는 분석 함수를 포함하는 Express VI에 캡슐화되어 있습니다.


    그림 16. Spectral Measurements Express VI: 인터랙티브 구성 대화상자


    그림 17. Express VI는 어플리케이션 개발을 매우 단순화합니다

    결과에 대한 효과적인 시각화 및 디스플레이는 의사결정, 프로세스 모니터링, 어플리케이션 상태의 검증, 그리고 정보와 결과의 공유를 위해 필수적입니다. LabVIEW는 획득한 결과를 표시하기 위해 프런트 패널에 끌어서 놓을 수 있는 차트, 3D 그래프, 테이블 및 인디케이터와 같은 많은 오브젝트를 제공합니다. 어플리케이션이 실행되는 동안 이 오브젝트를 인터랙티브 방식으로 조작할 수 있고 표시되는 방식을 맞춤화 할 수 있습니다. LabVIEW의 원격 패널 기능을 사용하여 추가적 프로그래밍이 필요 없이 LabVIEW 어플리케이션을 웹을 통해 원격 제어할 수 있습니다. LabVIEW는 사용자의 프런트 패널을 표준 웹 브라우저에 자동으로 포함시킵니다. 그러면 LabVIEW의 설치 없이 표준 웹 브라우저에서 원격으로 해당 어플리케이션을 제어할 수 있는 사용자를 지정할 수 있게 됩니다.

    결과를 텍스트 또는 이진수와 같은 다양한 형식으로 저장할 장소를 인터랙티브 방식으로 정의할 수도 있습니다. LabVIEW는 SQL/ODBC-가능 상용 데이터베이스와 같은 데이터베이스 파일과 상호 작용할 수 있는 함수도 포함합니다. 업계 표준 소프트웨어(예: Microsoft Excel)와 프로그래밍 방식으로 통신하거나 레이아웃을 정의하거나 리포트 생성을 위한 데이터를 전송하는 것을 선택할 수 있습니다. LabVIEW는 또한 통신하거나 인터랙티브 보고서 생성을 위해 데이터를 전송할 VI 및 NI DIAdem같은 기술적 데이터 관리 툴을 포함합니다.


    결론

    LabVIEW의 모든 툴과 기능의 최종 결과는 툴 학습 시간을 줄이고 업무 요구를 충족하는 데 더 많은 시간을 할애하는 것입니다. 또한, 고성능 테스트, 측정, 자동화 및 제어 시스템 구축을 위해 필요한 성능을 희생하지 않는 것입니다.

    LabVIEW는 독립형 계측기 및 데이터 수집 장치에서 I/O로 연결하는 데 필요한 시간을 단축해주는 인터랙티브 설정 기반 개발을 제공합니다. 이러한 툴은 LabVIEW를 처음 접하는 엔지니어에게는 매우 짧은 학습 곡선을, 숙련된 사용자에게는 향상된 생산성을 가져다 줍니다. 결국, 단순해 보이는 이러한 인터페이스는 이전에는 고도로 훈련된 엔지니어만 사용할 수 있었던 PDA 및 FPGA와 같은 대상 장치에 전례 없는 파워를 제공하는 코드를 생성합니다.


    >> LabVIEW에 대한 더 많은 정보를 확인하세요! ni.com/korea/labview
  • Info Code


    한국NI 교육센터