LabVIEW
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
LabVIEW는 National Instruments에서 개발한 그래픽 프로그래밍 언어이자 개발 환경이다. 데이터 흐름 프로그래밍 방식을 기반으로 하며, "G"라는 그래픽 언어를 사용하여 블록 다이어그램 형태로 코드를 작성한다. LabVIEW는 가상 계측기(VI)를 통해 사용자 인터페이스를 생성하고, 병렬 처리를 지원하여 테스트 자동화, 데이터 수집, 제어 시스템 등 다양한 분야에 활용된다. 또한, 장치 인터페이스, 코드 컴파일, 라이브러리, 에코시스템 등을 제공하며, 사용자 커뮤니티를 통해 기능 확장이 가능하다. 하지만 비 텍스트 기반 언어라는 점과 National Instruments의 독점 소프트웨어라는 점에 대한 비판도 존재한다.
더 읽어볼만한 페이지
- 고속 개발 도구 - 크로스 플랫폼
크로스 플랫폼은 소프트웨어나 애플리케이션이 다양한 운영 체제, 하드웨어 플랫폼 또는 이들의 조합에서 동작할 수 있도록 하는 기술을 의미하며, 웹 애플리케이션 형태로 구현되거나 플랫폼 연동을 통해 하드웨어 경계를 넘어 콘텐츠를 즐길 수 있도록 한다. - 고속 개발 도구 - 비주얼 베이직
비주얼 베이직은 1991년 마이크로소프트에서 출시된 GUI 기반 응용 프로그램 개발에 강점을 가진 프로그래밍 언어이며, 윈도우용 응용 프로그램 및 데이터베이스 조작 프로그램 개발에 주로 사용되었고, 2005년 표준 지원이 중단되었다. - 수치 해석 소프트웨어 - LINPACK
LINPACK은 부동소수점 연산 성능을 평가하는 벤치마크 프로그램이자 FORTRAN 라이브러리로, 슈퍼컴퓨터 성능 측정 기준으로 사용되는 HPLinpack 벤치마크의 기반이 되었으며, TOP500 목록에서 고성능 컴퓨터 순위를 결정하는 데 기여한다. - 수치 해석 소프트웨어 - NumPy
NumPy는 파이썬에서 다차원 배열을 효과적으로 다루기 위한 라이브러리로, C API를 제공하여 외부 라이브러리와 연동을 지원하며, 다양한 연산 기능과 멀티스레딩을 통한 성능 향상을 제공한다. - 시각적 프로그래밍 언어 - 맥스 (소프트웨어)
맥스는 시각적 프로그래밍 기반의 실시간 음향 및 영상 처리 소프트웨어로, MSP와 Jitter 모듈 추가를 통해 기능이 확장되었으며, 음악 제작, 사운드 디자인, 인터랙티브 아트 등 다양한 분야에서 활용되고 Ableton Live와의 통합으로 활용 범위가 넓어졌다. - 시각적 프로그래밍 언어 - 래더 로직
래더 로직은 PLC 프로그래밍에 사용되는 그래픽 기반 언어로, 릴레이 회로를 연상시키는 접점과 코일을 사용하여 AND, OR, NOT 등의 논리 연산을 구현, 자동화 시스템을 제어한다.
| LabVIEW - [IT 관련 정보]에 관한 문서 | |
|---|---|
| 일반 정보 | |
| 이름 | LabVIEW |
| 개발사 | 나셔널 인스트루먼츠 |
| 출시일 | 1986년 |
| 최신 버전 | LabVIEW NXG 5.1, LabVIEW 2024 Q3 |
| 최신 버전 출시일 | 2024년 7월 |
| 운영 체제 | 크로스 플랫폼: 윈도우, macOS, Linux |
| 장르 | 데이터 수집, 계측기 제어, 테스트 자동화, 분석 및 신호 처리, 산업 제어, 임베디드 시스템 설계 |
| 라이선스 | 사유 소프트웨어 |
| 웹사이트 | LabVIEW 공식 웹사이트 |
| 프로그래밍 언어 | C, C++, C# |
| LabVIEW NXG | |
| 개발사 | 나셔널 인스트루먼츠 |
| 최신 버전 | LabVIEW NXG 5.1 |
| 최신 버전 출시일 | 2021년 1월 8일 |
| 운영 체제 | 윈도우 / macOS / Linux |
| 플랫폼 | 크로스 플랫폼 |
| 종류 | 비주얼 프로그래밍 언어 데이터 플로우 언어 |
| 라이선스 | 프로프라이어터리 |
| 공식 웹사이트 | LabVIEW 제품 페이지 |
2. 데이터 흐름 프로그래밍
LabVIEW는 "G"라는 그래픽 프로그래밍 언어를 사용하며, 데이터 흐름 프로그래밍 패러다임을 기반으로 한다. "G" 언어에서 함수는 충분한 데이터가 있을 때 실행된다.[5]
2. 1. 데이터 흐름 기반 실행
LabVIEW "G" 언어에서 사용되는 프로그래밍 패러다임은 데이터 가용성에 기반을 둔다. 함수에 충분한 데이터가 있으면 해당 함수가 실행된다.[5] 실행 흐름은 프로그래머가 '노드'를 배치하고 '와이어'를 그려 연결하여 구성하는 그래픽 블록 다이어그램(LabVIEW 소스 코드)의 구조에 의해 결정된다. 노드는 '컨트롤', '인디케이터', '구조', '함수' 또는 재귀적으로 '다른 블록 다이어그램'이 될 수 있다. 간단한 4개의 노드로 구성된 블록 다이어그램의 예시는 두 개의 컨트롤과 덧셈 함수에 연결된 인디케이터로, 인디케이터가 두 컨트롤의 합을 표시하도록 하는 것이다. 노드를 연결하는 와이어는 데이터를 변수로 전달하며, 모든 노드는 입력 변수(데이터)가 모두 사용 가능해지는 즉시 실행될 수 있다. 이는 여러 노드에서 동시에 발생할 수 있으므로 LabVIEW는 개념적으로 병렬로 실행될 수 있다.[5] 내장 스케줄러는 실행 준비가 된 노드에 여러 OS 스레드를 멀티플렉스하여 멀티 프로세싱 및 멀티 스레딩 하드웨어를 자동으로 활용한다.2. 2. 병렬 처리
LabVIEW "G" 언어에서 사용되는 프로그래밍 패러다임은 데이터 가용성에 기반을 둔다. 함수에 충분한 데이터가 있으면 해당 함수가 실행된다. 여러 노드에서 동시에 발생할 수 있으므로 LabVIEW는 개념적으로 병렬 실행이 가능하다.[5] 내장 스케줄러는 실행 준비가 된 노드에 여러 OS 스레드를 멀티플렉스하여 멀티 프로세싱 및 멀티 스레딩 하드웨어를 자동으로 활용한다.3. 그래픽 프로그래밍

LabVIEW는 사용자 인터페이스(프런트 패널) 생성을 프로그램 개발 주기에 통합하여, 프로그램 개발과 동시에 사용자 인터페이스를 구성할 수 있다. LabVIEW 프로그램은 하나 이상의 '가상 계측기(VI)'의 모음으로 구성된다.
"G" 그래픽 접근 방식을 사용하면 비 프로그래머도 이미 익숙한 실험실 장비의 가상 표현을 드래그 앤 드롭하여 프로그램을 쉽게 구축할 수 있다. LabVIEW 프로그래밍 환경에는 소규모 애플리케이션 생성을 안내하고 단순화하는 예제와 설명서가 포함되어 있다.
3. 1. 가상 계측기 (VI)
LabVIEW 프로그램은 사용자 인터페이스(프런트 패널) 생성을 프로그램 개발 주기에 통합한다. LabVIEW 프로그램은 하나 이상의 ''가상 계측기''(VI)의 모음이며, 각 VI는 프런트 패널, 백 패널, 커넥터 패널의 세 가지 구성 요소로 구성된다.VI는 자체적으로 실행하거나, 다른 VI의 블록 다이어그램에 포함되어 커넥터 패널을 통해 노드에 연결될 수 있다. 각 VI는 더 큰 프로그램에 서브루틴으로 포함되기 전에 독립 실행형 프로그램으로 쉽게 테스트할 수 있다.
"G" 그래픽 접근 방식을 사용하면 비프로그래머도 이미 익숙한 실험실 장비의 가상 표현을 드래그 앤 드롭하여 프로그램을 쉽게 구축할 수 있다. LabVIEW 프로그래밍 환경에는 소규모 애플리케이션 생성을 안내하고 단순화하는 예제와 설명서가 포함되어 있다.
3. 1. 1. 프런트 패널
LabVIEW 프로그램은 하나 이상의 ''가상 계측기''(VI)의 모음이며, 각 VI는 프런트 패널, 백 패널, 커넥터 패널의 세 가지 구성 요소로 구성된다. 프런트 패널은 사용자 인터페이스 역할을 하며, 컨트롤과 인디케이터로 구성된다. 컨트롤은 입력 장치이며, 사용자가 VI에 정보를 제공할 수 있게 한다. 인디케이터는 출력 장치이며, VI에 제공된 입력을 기반으로 결과를 나타낸다.VI는 자체적으로 프로그램을 실행할 수 있으며, 이때 프런트 패널이 사용자 인터페이스 역할을 한다. 또는 다른 VI의 블록 다이어그램에 드롭되어 커넥터 패널을 통해 노드에 연결되는 노드로 처리할 수도 있는데, 이 경우엔 더 큰 프로그램 내에서 서브루틴으로 실행되며, 프런트 패널은 VI 노드의 입력 및 출력을 제어한다.
3. 1. 2. 백 패널
백 패널은 블록 다이어그램 형태의 그래픽 소스 코드를 포함한다. 프런트 패널에 배치된 모든 객체는 백 패널에 터미널로 나타난다. 블록 다이어그램에는 함수 팔레트에서 선택한 구조와 함수도 포함되어 있는데, 이것들은 컨트롤에 대한 연산을 수행하고 인디케이터에 데이터를 제공한다.3. 1. 3. 커넥터 패널
커넥터 패널은 프런트 패널 및 백 패널의 노드와 연결되거나 연결되는 터미널을 포함하며, 상위 VI와 하위 VI의 백 패널 내에서 VI를 나타내는 데 사용된다. 이를 통해 VI를 서브루틴처럼 사용할 수 있다. VI는 자체적으로 실행될 수 있으며, 이때 프런트 패널은 사용자 인터페이스 역할을 한다. 또는 다른 VI의 블록 다이어그램에 삽입되어 커넥터 패널을 통해 노드에 연결될 수 있다. 이 경우 VI는 더 큰 프로그램 내에서 서브루틴으로 실행되며, 프런트 패널은 VI 노드의 입력 및 출력을 제어한다.3. 2. 실행 방식
VI는 자체적으로 실행될 수 있으며, 이때 프런트 패널이 사용자 인터페이스 역할을 한다. 또는 다른 VI의 블록 다이어그램에 노드로 삽입되어 커넥터 패널을 통해 연결될 수 있다. 이 경우 VI는 더 큰 프로그램 내에서 서브루틴으로 실행되며, 프런트 패널은 VI 노드의 입력 및 출력을 제어한다.[1] 따라서 각 VI는 더 큰 프로그램에 서브루틴으로 포함되기 전에 독립 실행형 프로그램으로 쉽게 테스트할 수 있다.[1]3. 3. 그래픽 접근 방식의 장점
"G" 그래픽 접근 방식을 사용하면, 프로그래머가 아닌 사람도 이미 익숙한 실험 장비의 가상 표현을 드래그 앤 드롭하여 프로그램을 쉽게 구축할 수 있다. LabVIEW 프로그래밍 환경에는 소규모 애플리케이션 생성을 안내하고 단순화하는 예제와 설명서가 포함되어 있다.[1] 모든 소개 프로그래밍 가이드와 마찬가지로, 작동하는 "G" 프로그램의 손쉬운 구성으로 인해 프로그래머는 고품질 "G" 프로그래밍에 필요한 전문 지식을 과소 평가할 수 있다.3. 4. 전문성
복잡한 알고리즘이나 대규모 코드의 경우, 프로그래머는 특수한 LabVIEW 구문 및 메모리 관리 토폴로지에 대한 광범위한 지식을 갖추어야 한다.[3] 가장 발전된 LabVIEW 개발 시스템은 독립 실행형 애플리케이션을 구축하는 기능을 제공한다.[3] 또한 "G"의 본질적으로 병렬적인 특성을 활용하는 간단한 클라이언트-서버 모델을 사용하여 통신하는 분산 애플리케이션을 만들 수 있다.[3]4. 일반적인 애플리케이션 설계 패턴
LabVIEW 애플리케이션은 일반적으로 디자인 패턴으로 알려진 잘 확립된 아키텍처를 사용하여 설계된다. 다음은 그래픽 LabVIEW 애플리케이션에 대한 몇 가지 일반적인 디자인 패턴이다.
| 디자인 패턴 | 목적 | 구현 세부 정보 | 사용 사례 | 제한 사항 |
|---|---|---|---|---|
| 기능적 글로벌 변수 | 글로벌 변수를 사용하지 않고 정보 교환 | While 루프의 시프트 레지스터가 데이터를 저장하는 데 사용되며, While 루프는 "재진입 불가" 가상 악기(VI)에서 한 번만 반복 실행된다. | 배선 감소를 통한 정보 교환 | 모든 소유 가상 악기(VI)는 메모리에 유지된다. |
| 상태 머신[6] | 과거 이벤트에 의존하는 제어된 실행 | While 루프 내의 케이스 구조는 다음 상태를 나타내는 열거형 변수를 시프트 레지스터에 전달한다. 복잡한 상태 머신은 Statechart 모듈을 사용하여 설계할 수 있다. | 사용자 인터페이스, 복잡한 로직, 통신 프로토콜 | 가능한 모든 상태를 미리 알아야 한다. |
| 이벤트 기반 사용자 인터페이스 | 사용자 작업의 무손실 처리 | GUI 이벤트는 While 루프 내의 이벤트 구조 큐에 의해 캡처된다. While 루프는 이벤트 구조에 의해 일시 중단되며, 원하는 이벤트가 캡처될 때만 재개된다. | 그래픽 사용자 인터페이스 | 루프에 하나의 이벤트 구조만 있다. |
| 마스터-슬레이브[7] | 독립적인 프로세스를 동시에 실행 | 여러 개의 병렬 While 루프가 있으며, 그 중 하나는 "슬레이브" 루프를 제어하는 "마스터"로 기능한다. | 데이터 수집 및 시각화를 위한 간단한 GUI | 경합 조건에 주의하고 이를 방지해야 한다. |
| 생산자-소비자[8] | 루프의 비동기식 또는 다중 스레드 실행 | 마스터 루프는 알리미, 큐 및 세마포어를 사용하여 통신하는 두 개의 슬레이브 루프의 실행을 제어한다. 데이터 독립 루프는 별도의 스레드에서 자동으로 실행된다. | 데이터 샘플링 및 시각화 | 실행 순서를 제어하는 것이 명확하지 않다. |
| 이벤트 기반 생산자-소비자를 사용하는 큐 상태 머신 | 다중 스레드 애플리케이션을 위한 매우 반응적인 사용자 인터페이스 | 이벤트 기반 사용자 인터페이스는 생산자 루프 내에 배치되고, 상태 머신은 소비자 루프 내에 배치되어 큐를 사용하여 자체 및 기타 병렬 VI 간에 통신한다. | 복잡한 애플리케이션 |
각 디자인 패턴에 대한 자세한 내용은 해당 하위 섹션을 참고할 수 있다.
4. 1. 기능적 글로벌 변수
글로벌 변수를 사용하지 않고 정보를 교환하는 방식이다. While 루프의 시프트 레지스터를 사용하여 데이터를 저장하며, While 루프는 "재진입 불가" VI에서 한 번만 반복 실행된다.[6]| 목적 | 구현 세부 정보 | 사용 사례 | 제한 사항 |
|---|---|---|---|
| 글로벌 변수를 사용하지 않고 정보 교환 | While 루프의 시프트 레지스터가 데이터를 저장하는 데 사용되며, While 루프는 "재진입 불가" 가상 악기(VI)에서 한 번만 반복 실행된다. | 배선 감소를 통한 정보 교환 | 모든 소유 가상 악기(VI)는 메모리에 유지된다. |
4. 2. 상태 머신
상태 머신은 과거 이벤트에 따라 제어된 실행을 수행하는 방식이다.[6] While 루프 내의 케이스 구조는 시프트 레지스터에 다음 상태를 나타내는 열거형 변수를 전달한다. 복잡한 상태 머신은 Statechart 모듈을 사용하여 설계할 수 있다.4. 3. 이벤트 기반 사용자 인터페이스
LabVIEW 애플리케이션은 일반적으로 디자인 패턴으로 알려진 구조를 사용하여 설계된다. 이벤트 기반 사용자 인터페이스는 사용자 작업의 무손실 처리를 위한 방식이다. GUI 이벤트는 While 루프 내의 이벤트 구조 큐에 의해 캡처된다. While 루프는 이벤트 구조에 의해 일시 중단되며, 원하는 이벤트가 캡처될 때만 재개된다. 주로 그래픽 사용자 인터페이스에 사용되며, 루프에 하나의 이벤트 구조만 존재한다는 제한 사항이 있다.4. 4. 마스터-슬레이브
독립적인 프로세스를 동시에 실행하는 방식이다. 여러 개의 병렬 While 루프 중 하나는 "마스터"로 기능하며, 나머지는 "슬레이브" 루프를 제어한다.[7]| 목적 | 구현 세부 정보 | 사용 사례 | 제한 사항 |
|---|---|---|---|
| 독립적인 프로세스를 동시에 실행 | 여러 개의 병렬 while 루프, 그 중 하나는 "슬레이브" 루프를 제어하는 "마스터"로 기능한다. | 데이터 수집 및 시각화를 위한 간단한 GUI | 경합 조건에 주의하고 이를 방지해야 한다. |
4. 5. 생산자-소비자
생산자-소비자 디자인 패턴은 루프의 비동기식 또는 다중 스레드 실행을 위한 방식이다. 마스터 루프는 알리미, 큐, 세마포어를 사용하여 통신하는 두 개의 슬레이브 루프의 실행을 제어한다. 데이터 독립 루프는 별도의 스레드에서 자동으로 실행된다.[8]| 목적 | 구현 세부 정보 | 사용 사례 | 제한 사항 |
|---|---|---|---|
| 루프의 비동기식 또는 다중 스레드 실행 | 마스터 루프는 알리미, 큐, 세마포어를 사용하여 통신하는 두 개의 슬레이브 루프의 실행을 제어한다. 데이터 독립 루프는 별도의 스레드에서 자동으로 실행된다. | 데이터 샘플링 및 시각화 | 실행 순서를 제어하는 것이 명확하지 않다. |
4. 6. 이벤트 기반 생산자-소비자를 사용하는 큐 상태 머신
생산자 루프 내에는 이벤트 기반 사용자 인터페이스가, 소비자 루프 내에는 상태 머신이 배치되며, 이들은 큐를 사용하여 서로 그리고 다른 병렬 VI와 통신한다. 이는 다중 스레드 애플리케이션에서 매우 반응성이 좋은 사용자 인터페이스를 제공하며[8], 복잡한 애플리케이션에 사용된다.5. 기능 및 리소스
LabVIEW는 광범위한 기능을 제공하며, 강력한 생태계와 사용자 커뮤니티를 가지고 있다.
LabVIEW는 계측기, 카메라 등 다양한 장치와의 인터페이스를 지원한다. 사용자는 USB, GPIB, 시리얼과 같은 버스 명령을 직접 작성하거나, 장치별 드라이버를 사용할 수 있다. 내쇼날 인스트루먼트는 계측기 드라이버 네트워크(IDNet)에서 수천 개의 장치 드라이버를 제공한다.[9]
LabVIEW는 "G" 코드를 네이티브 코드로 변환하는 컴파일러를 포함한다. 그래픽 코드는 데이터 흐름 중간 표현(Dataflow Intermediate Representation)으로 변환된 후 LLVM 기반 컴파일러에 의해 실행 가능한 기계어로 변환된다. LabVIEW 구문은 편집 과정에서 엄격하게 적용되며, "G" 코드가 실행되거나 저장될 때 컴파일러가 자동으로 호출된다.
LabVIEW는 병렬 처리 언어이므로, 멀티스레딩을 통해 여러 작업을 병렬로 프로그래밍하기 쉽다. 예를 들어, 병렬 while 루프를 통해 테스트 시퀀싱, 데이터 기록, 하드웨어 인터페이싱과 같은 프로세스를 병렬로 실행할 수 있다.
LabVIEW 플랫폼은 긴 수명과 인기를 얻었으며, 사용자가 기능을 확장할 수 있어 커뮤니티 기여를 통해 대규모의 서드파티 애드온 생태계가 발전했다. 이러한 애드온은 VI 패키지 매니저(VIPM)[12]나 NI 툴 네트워크를 통해 설치할 수 있다.
LabVIEW는 학습용 LabVIEW 학생용 에디션, 저렴한 홈 번들 에디션[13], 비상업적 용도의 커뮤니티 에디션[14]을 제공하여 사용자 접근성을 높였다. 또한, 전자 메일 목록과 인터넷 포럼을 통해 활발한 사용자 커뮤니티가 운영되고 있다.
5. 1. 장치 인터페이스
LabVIEW는 계측기, 카메라 및 기타 장치와의 인터페이스에 대한 광범위한 지원을 포함한다. 사용자는 USB, GPIB, 시리얼과 같은 버스 명령을 직접 작성하거나, 장치 제어를 위한 기본 "G" 기능 노드를 제공하는 상위 수준의 장치별 드라이버를 사용하여 하드웨어와 인터페이스한다. 내쇼날 인스트루먼트는 ''계측기 드라이버 네트워크''(IDNet)에서 수천 개의 장치 드라이버를 다운로드할 수 있도록 제공한다.[9]5. 2. 내쇼날 인스트루먼트 제품과의 통합
LabVIEW는 CompactDAQ 및 CompactRIO 하드웨어 플랫폼과 'Measurement and Automation eXplorer'(MAX) 및 '가상 계측 소프트웨어 아키텍처'(VISA) 툴셋과 같은 다른 내쇼날 인스트루먼트 제품에 대한 기본 지원을 제공한다.[9]5. 3. 코드 컴파일 및 실행
LabVIEW는 지원되는 CPU 플랫폼을 위해 "G" 코드를 네이티브 코드로 변환하는 컴파일러를 포함하고 있다. 그래픽 코드는 데이터 흐름 중간 표현(Dataflow Intermediate Representation)으로 변환된 다음 LLVM 기반 컴파일러에 의해 실행 가능한 기계어 덩어리로 변환된다. 이러한 코드 덩어리는 "G" 런타임 엔진에 의해 호출되어 그래픽 코드의 빠르고 고성능의 네이티브 실행을 제공한다. LabVIEW 구문은 편집 과정에서 엄격하게 적용되며, "G" 코드가 실행되거나 저장될 때 컴파일러가 자동으로 호출된다. "G" 코드는 소스 코드와 실행 코드를 모두 포함하는 단일 바이너리 파일로 저장된다. 실행은 런타임 엔진에 의해 제어되며, "G" 언어에 정의된 일반적인 작업을 수행하기 위해 미리 컴파일된 코드를 일부 포함하고 있다. 런타임 엔진은 실행 흐름을 관리하고 지원되는 운영 체제, 그래픽 시스템 및 하드웨어 구성 요소에 일관된 인터페이스를 제공한다. 이식 가능한 런타임 환경을 사용하면 소스 코드 파일을 지원되는 플랫폼 간에 이식할 수 있다. LabVIEW 프로그램은 동등한 컴파일된 C 코드보다 느리지만, 프로그램 최적화를 통해 속도 문제를 완화하는 것이 종종 가능하다.5. 4. 병렬 프로그래밍
LabVIEW는 본질적으로 병렬 처리 언어이므로, 멀티스레딩을 통해 병렬로 수행되는 여러 작업을 프로그래밍하기가 매우 쉽다. 예를 들어, 둘 이상의 병렬 while 루프를 그리고 이를 별도의 노드에 연결하는 방식으로 구현할 수 있다. 이는 테스트 시퀀싱, 데이터 기록, 하드웨어 인터페이싱과 같이 프로세스를 병렬로 실행하는 것이 일반적인 테스트 시스템 자동화에 큰 이점을 제공한다.5. 5. 에코시스템
LabVIEW 플랫폼은 긴 수명과 인기를 얻었으며, 사용자가 기능을 확장할 수 있어 커뮤니티 기여를 통해 대규모의 서드파티 애드온 생태계가 발전했다. 이러한 애드온의 대부분은 LabVIEW 애드온의 공식 패키지 관리자인 VI 패키지 매니저(VIPM)[12]를 사용하여 LabVIEW에 직접 다운로드하여 설치할 수 있다. 내쇼날 인스트루먼트는 또한 무료 및 유료 LabVIEW 애드온을 위한 NI 툴 네트워크(NI Tools Network)라는 마켓플레이스를 운영하고 있다.5. 6. 사용자 커뮤니티
LabVIEW의 오랜 인기와 사용자가 기능을 확장할 수 있는 능력 덕분에, 커뮤니티의 기여를 통해 대규모의 서드파티 애드온 생태계가 발전했다. 이러한 애드온의 대부분은 LabVIEW VI 패키지 매니저(VIPM)[12]를 사용하여 LabVIEW에 직접 다운로드하여 설치할 수 있다. 내쇼날 인스트루먼트(National Instruments)는 또한 무료 및 유료 LabVIEW 애드온을 위한 NI 툴 네트워크(NI Tools Network)라는 마켓플레이스를 운영하고 있다.LabVIEW는 학습 목적으로 교육 기관을 대상으로 하는 저가형 LabVIEW 학생용 에디션이 있다. 또한, 여러 개의 전자 메일 목록(이메일 그룹)과 인터넷 포럼을 통해 소통하는 LabVIEW 사용자들의 활발한 커뮤니티가 있다.
내쇼날 인스트루먼트는 저렴한 LabVIEW 홈 번들 에디션을 제공한다.[13]
내쇼날 인스트루먼트는 비상업적 용도로 사용할 수 있는 LabVIEW 커뮤니티 에디션이라는 무료 버전을 제공한다.[14] 이 버전은 LabVIEW 프로페셔널 에디션의 모든 기능을 포함하며, 워터마크가 없고, 비상업적 용도로 LabVIEW NXG 웹 모듈을 포함한다. 이 에디션은 초·중·고등학교에서도 사용할 수 있다.[15]
6. 비판
LabVIEW는 내쇼날 인스트루먼트의 독점 소프트웨어 제품이다. C 언어나 포트란과 같은 일반적인 프로그래밍 언어와 달리, LabVIEW는 제3자 표준 위원회에서 관리하거나 표준화하지 않는다.
6. 1. 비 텍스트 기반
"G" 언어는 텍스트 기반이 아니기 때문에, 버전 관리, 나란히 비교(또는 차이 비교), 버전 코드 변경 추적과 같은 일반적인 소프트웨어 도구를 텍스트 기반 프로그래밍 언어와 동일한 방식으로 적용할 수 없다. 하지만 서브버전, CVS, 퍼포스와 같이 코드 비교 및 병합을 가능하게 하는 몇 가지 소스 코드 제어(버전 관리) 도구가 있다.[16][17][18]7. 출시 역사
LabVIEW는 1983년 4월에 프로젝트가 시작되어, 1986년 10월에 매킨토시용으로 처음 출시되었다. 이후 지속적으로 발전하여 다양한 플랫폼과 기능을 지원하게 되었다.
| 이름 및 버전 | 빌드 번호 | 날짜 | 비고 |
|---|---|---|---|
| LabVIEW 프로젝트 시작 | 1983년 4월 | ||
| LabVIEW 1.0 | 1986년 10월 | 매킨토시(Macintosh)용 | |
| LabVIEW 2.0 | 1990년 1월 | ||
| LabVIEW 2.5 | 1992년 8월 | 썬 마이크로시스템즈(Sun) 및 윈도우(Windows)용 첫 번째 릴리스 | |
| LabVIEW 3.0 | 1993년 7월 | 멀티플랫폼 | |
| LabVIEW 3.0.1 | 1994 | 윈도우 NT(Windows NT)용 첫 번째 릴리스 | |
| LabVIEW 3.1 | 1994 | ||
| LabVIEW 3.1.1 | 1995 | "애플리케이션 빌더" 기능이 있는 첫 번째 릴리스 | |
| LabVIEW 4.0 | 1996년 4월 | ||
| LabVIEW 4.1 | 1997 | ||
| LabVIEW 5.0 | 1998년 2월 | ||
| LabVIEW RT | 1999년 5월 | 실시간 | |
| LabVIEW 6.0 (6i) | 6.0.0.4005 | 2000년 7월 26일 | |
| LabVIEW 6.1 | 6.1.0.4004 | 2001년 4월 12일 | |
| LabVIEW 7.0 (Express) | 7.0.0.4000 | 2003년 4월 | |
| LabVIEW PDA 모듈 | 2003년 5월 | 모듈 첫 번째 릴리스 | |
| LabVIEW FPGA 모듈 | 2003년 6월 | 첫 번째 릴리스 | |
| LabVIEW 7.1 | 7.1.0.4000 | 2004 | |
| LabVIEW 임베디드 모듈 | 2005년 5월 | 첫 번째 릴리스 | |
| LabVIEW 8.0 | 8.0.0.4005 | 2005년 9월 | |
| LabVIEW 8.20 | 2006년 8월 | 네이티브 객체 지향 프로그래밍 | |
| LabVIEW 8.2.1 | 8.2.1.4002 | 2007년 2월 21일 | |
| LabVIEW 8.5 | 8.5.0.4002 | 2007 | |
| LabVIEW 8.6 | 8.6.0.4001 | 2008년 7월 24일 | |
| LabVIEW 8.6.1 | 8.6.0.4001 | 2008년 12월 10일 | |
| LabVIEW 2009 | 9.0.0.4022 | 2009년 8월 4일 | 32비트 및 64비트 |
| LabVIEW 2009 SP1 | 9.0.1.4011 | 2010년 1월 8일 | |
| LabVIEW 2010 | 10.0.0.4032 | 2010년 8월 4일 | |
| LabVIEW 2010 f2 | 10.0.0.4033 | 2010년 9월 16일 | |
| LabVIEW 2010 SP1 | 10.0.1.4004 | 2011년 5월 17일 | |
| 레고 마인드스톰(LEGO MINDSTORMS)용 LabVIEW | 2011년 8월 | 일부 모듈이 포함된 2010 SP1 | |
| LabVIEW 2011 | 11.0.0.4029 | 2011년 6월 22일 | |
| LabVIEW 2011 SP1 | 11.0.1.4015 | 2012년 3월 1일 | |
| LabVIEW 2012 | 12.0.0.4029 | 2012년 8월 | |
| LabVIEW 2012 SP1 | 12.0.1.4013 | 2012년 12월 | |
| LabVIEW 2013 | 13.0.0.4047 | 2013년 8월 | |
| LabVIEW 2013 SP1 | 13.0.1.4017 | 2014년 3월[19] | |
| LabVIEW 2014 | 14.0 | 2014년 8월 | |
| LabVIEW 2014 SP1 | 14.0.1.4008 | 2015년 3월 | |
| LabVIEW 2015 | 15.0f2 | 2015년 8월 | |
| LabVIEW 2015 SP1 | 15.0.1f1 | 2016년 3월 | |
| LabVIEW 2016 | 16.0.0 | 2016년 8월 | |
| LabVIEW 2017 | 17.0f1 | 2017년 5월 | |
| LabVIEW NXG 1.0 | 1.0.0 | 2017년 5월 | |
| LabVIEW 2017 SP1 | 17.0.1f1 | 2018년 1월[20] | |
| LabVIEW NXG 2.0 | 2.0.0 | 2018년 1월[21] | |
| LabVIEW 2018 | 18.0 | 2018년 5월 | |
| LabVIEW NXG 2.1 | 2.1.0 | 2018년 5월[22] | |
| LabVIEW 2018 SP1 | 18.0.1 | 2018년 9월[23] | |
| LabVIEW NXG 3.0 | 3.0.0 | 2018년 11월[24] | |
| LabVIEW 2019 | 19.0 | 2019년 5월 | |
| LabVIEW NXG 3.1 | 3.1.0 | 2019년 5월[25] | |
| LabVIEW 2019 SP1 | 19.0.1 | 2019년 11월 | |
| LabVIEW NXG 4.0 | 4.0.0 | 2019년 11월[26] | |
| LabVIEW 2020 및 LabVIEW NXG 5.0 커뮤니티 에디션 | 2020년 4월[27] | 첫 번째 릴리스 | |
| LabVIEW 2021 | 21.0 | 2021년 8월 | |
| LabVIEW 2022 Q3 | 22.3 | 2022년 7월 | |
| LabVIEW 2023 Q1 | 23.1 | 2023년 1월 | |
| LabVIEW 2023 Q3 | 23.3 | 2023년 7월 | |
| LabVIEW 2024 Q1 | 24.1 | 2024년 1월 | |
| LabVIEW 2024 Q3 | 24.3 | 2024년 7월 |
2005년부터 LabVIEW 8.0을 시작으로, 주요 버전은 매년 8월 첫째 주 즈음에 출시되어 연례 내셔널 인스트루먼트(National Instruments) 컨퍼런스인 NI Week와 일치하며, 이듬해 2월에 버그 수정 릴리스가 뒤따랐다. 2009년부터는 릴리스에 출시 연도를 붙이기 시작했고, 버그 수정은 서비스 팩으로 명명되었다. 예를 들어 2009 서비스 팩 1은 2010년 2월에 출시되었다.
2017년, 내셔널 인스트루먼트(National Instruments)는 연례 컨퍼런스를 5월로 옮기고 윈도우 프레젠테이션 파운데이션(WPF) 위에 구축된 완전히 재설계된 LabVIEW NXG 1.0과 함께 LabVIEW 2017을 출시했다.
8. 저장소 및 라이브러리
OpenG와 LAVA 코드 저장소(LAVAcr)는 광범위한 오픈 소스 LabVIEW 애플리케이션 및 라이브러리 저장소 역할을 한다. SourceForge는 LabVIEW를 코드를 작성할 수 있는 가능한 언어 중 하나로 나열하고 있다.
VI 패키지 관리자는 LabVIEW 라이브러리의 표준 패키지 관리자가 되었다. 이는 Ruby의 RubyGems 및 Perl의 CPAN과 목적이 매우 유사하지만, Synaptic Package Manager와 유사한 그래픽 사용자 인터페이스를 제공한다. VI 패키지 관리자는 LabVIEW용 OpenG(및 기타) 라이브러리 저장소에 대한 액세스를 제공한다.
MathML을 "G" 코드로 변환하는 도구가 있다.[28]
9. 관련 소프트웨어
내쇼날 인스트루먼트는 Measurement Studio를 제공하는데, 이는 LabVIEW의 많은 테스트, 측정 및 제어 기능을 Microsoft Visual Studio와 함께 사용할 수 있는 클래스 집합으로 제공하는 제품이다. 이를 통해 개발자는 텍스트 기반 .NET Framework 내에서 LabVIEW의 강점을 활용할 수 있다. 내쇼날 인스트루먼트는 또한 ANSI C 프로그래머를 위한 대안으로 LabWindows/CVI를 제공한다.
애플리케이션에서 시퀀싱이 필요할 경우 사용자는 LabVIEW를 내쇼날 인스트루먼트의 ''TestStand'' 테스트 관리 소프트웨어와 함께 사용하는 경우가 많다.
Ch 인터프리터는 스크립팅을 위해 LabVIEW에 내장될 수 있는 C/C++ 인터프리터이다.[29]
DSP 로보틱스의 FlowStone DSP 또한 LabVIEW와 유사한 형태의 그래픽 프로그래밍을 사용하지만, 로봇 산업으로 제한된다.
LabVIEW는 거의 모든 컴퓨터 지원 엔지니어링 도구와 결합할 수 있도록 작성된 다학제 및 다목적 최적화 및 설계 환경인 modeFRONTIER와 직접적인 노드를 가지고 있다. 둘 다 동일한 프로세스 워크플로우 설명의 일부가 될 수 있으며, modeFRONTIER에서 제공되는 최적화 기술을 통해 가상적으로 구동될 수 있다.
10. 특정 용도에 대한 기사
LabVIEW는 다양한 분야의 연구 및 교육에 활용되고 있다. 다음은 그 사례를 소개하는 논문 목록이다.
참조
[1]
서적
LabVIEW for everyone : graphical programming made easy and fun.
Prentice Hall
2006
[2]
서적
Software synthesis from dataflow models for G and LabVIEW
https://ieeexplore.i[...]
1998-11
[3]
웹사이트
Upgrade LabVIEW
https://www.ni.com/e[...]
National Instruments
[4]
웹사이트
NI Releases Free Editions of Flagship Software: LabVIEW
https://www.business[...]
2020-04-28
[5]
서적
Effective LabVIEW Programming
NTS Press
2013
[6]
웹사이트
Application Design Patterns: State Machines
http://www.ni.com/wh[...]
2011-09-08
[7]
웹사이트
Application Design Patterns: Master/Slave
http://www.ni.com/wh[...]
2015-10-07
[8]
웹사이트
Application Design Patterns: Producer/Consumer
http://www.ni.com/wh[...]
2016-08-24
[9]
웹사이트
3rd Party Instrument Drivers - National Instruments
http://www.ni.com/do[...]
[10]
웹사이트
NI LabVIEW Compiler: Under the Hood
https://www.ni.com/p[...]
2020-02-04
[11]
웹사이트
LabVIEW MathScript RT Module
http://www.ni.com/la[...]
[12]
웹사이트
VIPM Desktop
https://www.vipm.io/[...]
2023-06-09
[13]
웹사이트
LabVIEW Home Bundle for Windows - National Instruments
http://sine.ni.com/n[...]
[14]
웹사이트
LabVIEW Community Edition - National Instruments
https://www.ni.com/e[...]
2020-04-28
[15]
웹사이트
LabVIEW Community Edition Usage Details - National Instruments
https://www.ni.com/e[...]
2020-04-28
[16]
웹사이트
Thinking in G » Top 5 bad excuses for not using source code control
http://thinkinging.c[...]
2016-10-28
[17]
웹사이트
Software Configuration Management and LabVIEW - National Instruments
http://www.ni.com/wh[...]
[18]
웹사이트
Configuring LabVIEW Source Code Control (SCC) for use with Team Foundation Server (TFS) - National Instruments
http://www.ni.com/tu[...]
[19]
웹사이트
What's New in NI Developer Suite - National Instruments
http://www.ni.com/wh[...]
2014-03-31
[20]
웹사이트
LabVIEW 2017 SP1 Patch Details - National Instruments
http://www.ni.com/pr[...]
2018-05-28
[21]
웹사이트
LabVIEW NXG 2.0 Readme - National Instruments
http://www.ni.com/pd[...]
2020-04-28
[22]
웹사이트
LabVIEW NXG 2.1 Readme - National Instruments
http://www.ni.com/pd[...]
2020-04-28
[23]
웹사이트
LabVIEW 2018 SP1 Readme for Windows - National Instruments
https://www.ni.com/p[...]
2020-04-28
[24]
웹사이트
LabVIEW NXG 3.0 Readme - National Instruments
http://www.ni.com/pd[...]
2020-04-28
[25]
웹사이트
LabVIEW NXG 3.1 Readme - National Instruments
http://www.ni.com/pd[...]
2020-04-28
[26]
웹사이트
LabVIEW NXG 4.0 Readme - National Instruments
http://www.ni.com/pd[...]
2020-04-28
[27]
웹사이트
NI Releases Free Editions of Flagship Software: LabVIEW
https://www.business[...]
2020-04-28
[28]
웹사이트
Math Node - A new way to do math in LabVIEW
https://decibel.ni.c[...]
2010-10-25
[29]
웹사이트
Embedding a C/C++ Interpreter Ch into LabVIEW for Scripting
http://iel.ucdavis.e[...]
[30]
웹사이트
NI LabVIEWコンパイラの内部
https://www.ni.com/j[...]
2020-03-10
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com