LabVIEW와 함께 Python, MathWorks® MATLAB® 소프트웨어 및 C/C++ 사용하기

개요

다른 프로그래밍 언어에 대한 LabVIEW의 연결성은 테스트 시스템을 구축하는 엔지니어에게 매우 매력적인 기능입니다. LabVIEW의 그래픽 데이터 흐름에 Python, MathWorks MATLAB 소프트웨어, C/C++ 및 .NET과 같은 언어를 통합하면 각 언어의 장점을 결합하여 보다 짧은 시간 내에 유연한 테스트 시스템을 구축할 수 있습니다.

 

이 백서에서는 4개 인기 프로그래밍 기술이 제공하는 코드를 LabVIEW와 통합하는 방법에 대해 알아봅니다. 이러한 유연성은 항상 당면한 작업에 적합한 도구를 선택하고 더 빨리 성공할 수 있다는 뜻입니다.

내용

LabVIEW에서 Python 스크립트 호출하기

수년에 걸쳐 Python은 인기를 얻었으며 다양한 분야를 위한 수십만 개의 라이브러리를 제공하도록 확장되었습니다. Python을 LabVIEW에 통합하면 Python의 유연한 스크립팅 기능과 LabVIEW의 시스템 설계 도구가 통합됩니다.

Python 노드를 사용하여 LabVIEW는 LabVIEW 블록다이어그램에서 Python 스크립트를 호출하는 기본 기능을 제공합니다. 이 기능을 사용하면 짧은 지연 시간의 언어 간 상호 운용성을 확보할 수 있습니다.

그림 1: Python 노드로 호출하여 LabVIEW에서 Python 스크립트 통합.

Python 노드에서 함수를 호출할 때 사용할 버전과 Python 경로를 지정할 수 있으며 이를 통해 사용자 정의 디렉토리에 설치된 Python에 액세스할 수 있습니다. 이 기능은 여러 Python 노드를 사용하여 사용자 정의 디렉토리에 저장된 서로 다른 버전 또는 실행 파일의 여러 세션을 열 수 있음을 의미합니다.

LabVIEW 2022 Q3에는 Python 클래스 객체를 파라미터로 전달하는 기능이 추가되었습니다. Python 노드의 참조 번호 출력은 Python 클래스 객체를 나타내며, 이를 입력으로 다른 Python 노드에 전달하면 클래스 객체를 조작할 수 있습니다.

.

그림 2: LabVIEW 2022는 Python 클래스 객체를 파라미터로 전달할 수 있도록 지원합니다.

LabVIEW 2023 Q1에는 Anaconda 및 Venv를 사용하여 Python 가상 환경을 호출하는 새로운 기능이 추가되었습니다.

NI는 2023년에 계획된 업데이트를 비롯하여 그 이후에도 지속적으로 Python-LabVIEW 상호 운용성 개선에 투자할 예정입니다. LabVIEW의 새로운 기능과 향후 계획은 LabVIEW 개요 페이지에서 확인할 수 있습니다.

LabVIEW와 MathWorks MATLAB 소프트웨어 통합

숫자 분석, 신호 처리, 고급 수학에서 일반적인 프로그래밍 접근법은 MATLAB에서 개발된 .m 파일을 호출하는 것입니다. MATLAB 노드를 사용하여 이러한 파일을 VI에서 G로 결합함으로써, MATLAB 분석 기능은 테스트 시스템과 측정 시스템을 통합할 수 있습니다.


그림 3:  MATLAB 노드에서 MATLAB 함수 호출을 사용하여 .m 파일을 호출하여 LabVIEW에 통합합니다.

또한 이제 LabVIEW는 사용자가 실행하려는 MATLAB 버전을 지정하는 것도 지원합니다.

그림 4: MATLAB 노드에서 실행할 특정 MATLAB 버전을 선택합니다.

LabVIEW 2022 Q3부터 새로운 디버깅 기능을 사용할 수 있습니다. MATLAB 편집기에서 브레이크포인트를 추가하고, LabVIEW에서 .m 파일까지 한 단계씩 실행하여 코드를 디버깅하고, LabVIEW에서 MATLAB IDE를 실행하여 바로 .m 파일을 편집할 수 있습니다.


그림 5: LabVIEW의 디버깅 도구를 사용하여 .m 파일을 단계별로 실행하고 LabVIEW에서 디버그합니다.

LabVIEW에서 C/C++ DLL 호출

LabVIEW를 사용하면 다이나믹 링크 라이브러리(DLL) 또는 공유 라이브러리를 호출하여 기존 코드를 재사용할 수 있습니다.

예를 들어, LabVIEW 에서 기존 C/C++ 공유 라이브러리를 재사용해야 하는 경우, 라이브러리 함수 호출 노드를 사용하여 호출할 수 있습니다. 외부 라이브러리를 간단하게 반입할 수 있도록, LabVIEW에는 공유 라이브러리 반입 마법사도 포함되어 있습니다. 이 마법사는 LabVIEW 블록다이어그램에 통합할 수 있는 LabVIEW 래퍼 VI 프로젝트 라이브러리를 자동으로 생성하거나 업데이트합니다.

그림 6: G 프로그래밍과 함께 인라인으로 기존 C 또는 C++ 공유 라이브러리를 재사용하려면 라이브러리 함수 호출 노드를 사용하십시오.

LabVIEW에서 .NET 어셈블리 호출

LabVIEW에서 기존 코드를 재사용하는 또 다른 방법은 .NET 어셈블리를 호출하는 것입니다.

.NET 어셈블리에 접근하려면, 컨스트럭터 노드를 사용하십시오. 블록다이어그램에 배치하면, 사용자가 적절한 .NET 어셈블리를 선택할 수 있는 대화 상자 윈도우가 나타납니다. LabVIEW는 자동으로 모든 메소드와 프로퍼티를 인식하고 메소드와 프로퍼티 노드를 통해 이를 노출합니다.

그림 7: .NET 컨스트럭터 노드 함수를 사용하여 .NET 어셈블리에 대한 참조를 생성합니다. 그런 다음, 프로퍼티 또는 인보크 노드 함수에 참조를 전달하면 함수가 어떤 어셈블리에서 작동하는지 알 수 있습니다.

LabVIEW는 .NET CLR 4.0 또는 이전 버전을 타겟으로 하는 .NET 어셈블리를 로드할 수 있습니다. 그러나 LabVIEW는 .NET CLR 4.0의 모든 어셈블리를 로드합니다.

결론

LabVIEW를 사용하여 널리 사용되는 언어에 연결하는 네 가지 방법을 살펴보면서 유연성과 상호 운용성을 중점적으로 강조했습니다. 이러한 뛰어난 연결성은 통해 각 도구의 장점을 원활하게 결합하여 유연한 테스트 시스템을 더 빠르게 생성할 수 있도록 합니다.

다음 단계