LabVIEW로 기존 코드 재사용하기

개요

급변하는 테스트 요구사항과 테스터 프로젝트 개발 주기 단축으로, 기존 테스트 소프트웨어 및 측정 라이브러리를 최대한 재사용하는 것이 개인적으로나 팀 차원에서 더욱 중요하게 되었습니다. 그렇다면 더 많은 테스트 엔지니어가 소프트웨어를 더 자주 재사용하지 않는 이유는 무엇일까요? 대부분의 테스트 그룹은 이 질문에 다음과 같이 답합니다.
  • 더 이상 그룹에 속하지 않거나 퇴사한 직원이 개발한 레거시 소프트웨어를 사용하고 있을 때 잘 알지 못하는 코드를 변경하는 데는 상당한 위험 부담과 비용이 따릅니다.
  • 테스트 및 검증 엔지니어링 팀마다 각기 선호하는 도구 및 언어 설정, 그룹 표준화 방식이 있기 때문에 코드 모듈을 재사용하기 어렵습니다. 지난 프로젝트에 사용한 도구나 소프트웨어가 그대로 현재 프로젝트에 맞게 변환되지 않기 때문입니다.
  • 소프트웨어를 최대한 재사용하고 추상화 계층이나 프레임워크를 구축할 필요가 있지만 여기에는 많은 비용과 시간이 소요됩니다. 단기적 프로젝트 요구로 인해, 재사용 기준 및 모범 사례의 활성화 방안에 대한 집중적 논의가 계속 미뤄지고 있습니다.

기존 코드 및 소프트웨어 기술 또는 선호 사항과 장기적 표준화의 이익 사이에서 균형을 유지하는 것은 현실적으로 쉽지 않은 문제입니다. 이러한 어려운 균형을 해결할 수 있도록 개방형 플랫폼인 LabVIEW는 모든 테스트 하드웨어 및 소프트웨어 시스템을 함께 통합할 수 있도록 설계되었습니다.

LabVIEW에서는 단일 어플리케이션에서 그래픽 데이터 흐름(G) 이외에도 여러 가지 프로그래밍 방식을 통합할 수 있습니다. 이 같은 유연성을 사용하여 테스트 대상 디바이스(DUT) 제어, 구성 또는 측정 라이브러리를 생성하기 위한 도구를 선택할 수 있습니다. LabVIEW는 .m, C, Python 및 .NET과 같은 여러 언어를 어플리케이션에 통합하며 로컬 또는 네트워크에서 실행되는 다른 소프트웨어와 상호 운용되므로 개발팀의 완성 시간을 단축할 수 있습니다.

 



내용

기존 DLL 및 .NET 어셈블리 호출하기

소스 코드를 LabVIEW 블록다이어그램으로 불러오는 것 외에도, 다른 언어로 개발된 기존 어플리케이션과 알고리즘을 LabVIEW 어플리케이션에서 호출하여 재사용할 수 있습니다. 예를 들어, 기존 C/C++ 공유 라이브러리가 있으며 이를 LabVIEW에서 재사용해야 할 경우 라이브러리 함수 호출 노드(Call Library Function Node)를 사용해 이를 호출할 수 있습니다. 외부 라이브러리를 간편하게 가져오게 할 수 있도록 LabVIEW에는 공유 라이브러리 가져오기 마법사가 포함되어 있습니다. 이를 통해 LabVIEW 블록다이어그램에 통합할 LabVIEW 래퍼 VI 프로젝트 라이브러리를 자동으로 생성하거나 업데이트합니다.

그림 1. G 프로그래밍과 함께 인라인으로 기존 C 또는 C++ 공유 라이브러리를 재사용하기 위해 라이브러리 함수 호출 노드를 사용합니다.

 

MATLAB 스크립트 호출하기

수치 분석, 신호 처리 및 고급 수학을 위한 일반적인 프로그래밍 접근 방식을 포함한 The MathWorks, Inc.의 MATLAB® 소프트웨어를 사용해 개발한 MATLAB 스크립트를 호출하십시오. MATLAB 스크립트 노드를 사용하여 VI에서 이런 스크립트를 G와 결합함으로써 테스트 및 측정 시스템을 MATLAB 분석 기능과 통합할 수 있습니다.

Python 스크립트 통합하기

LabVIEW는 또한 시스템에서 실행되는 다른 어플리케이션도 호출할 수 있습니다. 지난 10년 동안 Python은 인기가 높아지고 광범위한 어플리케이션을 위한 수십만 개의 라이브러리를 제공하도록 확장되었습니다. 보다 큰 LabVIEW 상위 구조에 통합하기 위해 Python 자동화 스크립트를 개발하는 것은 Python의 유연한 스크립트 작성 기능을 LabVIEW의 시스템 설계 도구와 병합하는 직관적인 솔루션입니다. Enthought의 Python Integration Toolkit for LabVIEW를 포함하여 LabVIEW 내에서 실행 파일 및 기타 빌드 라이브러리를 호출하기 위한 OS별 인터페이스를 제공하는 명령줄 인터페이스를 사용하는 것과 같이, Python 코드를 재사용하는 방법에는 여러 가지가 있습니다.

그림 3. Python Integration Toolkit for LabVIEW를 사용하여 인라인으로 호출함으로써 LabVIEW에서 기존 Python 스크립트를 재사용합니다.

 

표준 산업용 프로토콜을 통해 외부 시스템과 통신하기

LabVIEW에는 이더넷 및 시리얼 기반 통신을 위한 범용 및 산업별 주변 통신 라이브러리가 둘 다 포함되어 있습니다. CAN, PROFINET, OPC UA 및 EtherCAT과 같은 보편적인 산업용 프로토콜을 기본 지원하는 LabVIEW는 다양한 디바이스, 장비 및 인프라에 연결할 수 있습니다. 많은 프로토콜을 지원해야 하는 브라운필드 어플리케이션이 있는 경우 LabVIEW는 DNP3 및 FlexRay와 같은 산업별 프로토콜을 비롯해 거의 20개에 달하는 지원 프로토콜 간에 신호를 변환하는 게이트웨이 역할을 할 수 있습니다.

FPGA를 프로그래밍하기 위해 LabVIEW에 액세스하여 레거시 또는 독자적 통신 요구를 위한 사용자 정의 통신 프로토콜을 효율적으로 구축할 수도 있습니다. LabVIEW FPGA 모듈에는 구축 기반이 되는 시리얼, I2C 및 SPI와 같이, 시작점으로 사용할 수 있는 디지털 버스 프로토콜 코드 예제뿐 아니라 Xilinx Aurora, Serial RapidIO, JESD204B 및 10기가비트 이더넷과 같은 고속 시리얼 프로토콜을 위한 FPGA IP 코어도 포함되어 있습니다.

그림 4. NI-XNET 인스트루먼트 드라이버와 같은 LabVIEW의 표준 프로토콜 지원을 사용하여 DUT 및 기타 시스템 구성 요소와 통신합니다.

관련 자료