LabVIEW 클래스는 객체와 관련된 데이터 뿐만 아니라 데이터를 실행할 수 있는 메소드를 정의합니다. 다른 객체지향 프로그래밍 언어와 동일하게 캡슐화와 상속을 통해서 코드에 대한 모듈화도 가능합니다. 하지만 LabVIEW OOP와 타 OOP언어와의 차이도 있습니다. 바로 데이터를 처리하는 프로퍼티의 공개 범위인데요. 프로퍼티의 경우 Private의 타입으로만 사용을 할 수 있습니다. 따라서 컨트롤에 포함이 되는 프로퍼티의 값을 설정 및 가져오기 위해서는 Set/Get 함수를 VI를 통해서 개발해야 합니다. LabVIEW 클래스의 확장자는 .lvclass 입니다. LabVIEW 클래스를 만들기 이전에 캡슐화에 대해서 이야기를 해볼까 합니다. LabVIEW OOP의 캡슐화 LabVIEW의 클래스는 데이터와..
이 글에서는 LabVIEW MathScript를 통해서 DLL을 호출하는 방법을 알아보도록 하겠습니다. MathScript는 LabVIEW MathScript RT Module을 통해서 LabVIEW에서 사용할 수 있는 기능으로, 블록 다이어그램에서 사용할 수 있습니다. MathScript를 통해서 m 파일에 대한 컴파일 연산도 가능하며, 이 글에서 설명을 드리는 것 처럼 DLL 파일을 처리할 수도 있습니다. MathScript에서 DLL 파일을 로딩하여 호출하기 위해서는 아래와 같은 MathScript 함수를 알 고 있어야 합니다. lib_isloaded : MathScript 상에 Shared Library가 로드된 상태인지를 파악합니다.lib_load : MathScript 상에 라이브러를 로드합니..
안녕하세요. 구스입니다. 요즘 LabVIEW 객체지향 프로그래밍(LVOOP)에 대해서 공부를 하고 있는데요. 관련 내용 지속적으로 올릴려구요. LabVIEW 객체지향 프로그래밍은 기존의 C++, JAVA와는 조금 다른 개념으로 객체 지향 프로그래밍 개념을 사용하고 있습니다. 하지만 유지보수 및 확장성이 높은 코드에 대한 OOP의 목적은 동일합니다. 이 글에서는 클래스와 객체에 대한 이해를 해보고, 다른 언어와 LabVIEW 객체지향 언어에서의 클래스와 객체에 대한 차이점을 알아보도록 하겠습니다. 그럼 먼저 클래스와 객체가 무엇인지 살펴봅시다. 클래스란? 실 세상에서의 있는 오브젝트(객체)의 설계도이라고 볼 수 있습니다. 차를 예로 든다면 차의 공통적인 특성과 기능을 설계할 수 있는데 이를 Car 클래스라..
안녕하세요. 구스입니다. 이 글에서는 높은 유연성과 유지보수성을 가진 LabVIEW 코드를 개발하는 효율적인 방법론에 대해서 이야기해볼까 합니다. 일반적인 LabVIEW 코드는 프로그래밍 방법론 중 절차지향적 프로그래밍 방법론을 사용하게 됩니다. DAQmx는 물론, Serial 통신, MI 제품군의 예제코드 모두 절차지향적으로 만들어져 있으며, LabVIEW와 G언어의 특성상 왼쪽에서 오른쪽으로 프로세스가 진행이 되도록 구현이 되어 있습니다. 이러한 방법론은 개발속도가 빠르다는 장점을 가지고 있지만, 유지보수에 대한 부분이 취약하다는 약점을 가지고 있습니다. 자 그림을 하나 봅시다. 일반적인 LabVIEW 프로그래머 혹은 텍스트언어 프로그래머들은 초록색 라인과 같은 프로세스을 이용하여 개발을 하게 됩니다..
안녕하세요. 구스입니다. LVDT(Linear Variable Differential Transformer)에 대한 자료를 찾아보다가, LabVIEW와 관련된 글이 있어 관련 내용을 정리해볼까 합니다. 그럼 시작해볼까요. 이 글은 NI 홈페이지의 튜토리얼을 번역/의역한 내용입니다.관련 링크 : http://www.ni.com/tutorial/4101/en/ 이 글은 HIL 및 다른 테스트 어플리케이션을 위한 LVDT 에뮬레이터를 LabVIEW FPGA 기반으로 구현하는 방법에 대한 내용입니다. 1. 배경 지식 하드웨어 인 더 루프(HIL, Hardware In The Loop)는 시스템의 검증 테스트를 위해서 엔지니어들상에서 많이 활용되는 방식입니다. HIL 테스트의 가장 중요한 포인트는 시스템이 배포되..