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 테스트의 가장 중요한 포인트는 시스템이 배포되..
안녕하세요. 구스입니다. 오늘은 HIL 테스트를 많이 사용하는 LVDT 원리와 작동원리에 대해서 알아볼까 하는데요. LVDT는 선형 위치를 측정하기 위한 센서로써 높은 정밀성과 긴수명의 특징을 가지고 있는 센서입니다. LVDT는 로봇제어, 하중센서등에서 가장 많이 사용이 됩니다. 그럼 LVDT가 무엇인지 알아보도록 할까요. LVDT란? LVDT(The linear variable differential transformer)는 선형 거리 차이를 측정하는 전기적 변환기의 형태를 말하는데 3개의 솔레노이드 코일이 튜브를 둘러싼 형태로 위치하고 있다. 가운데 코일이 메인이며 나머지 두 개는 바깥에 위치하고 있다. 실린더 형태의 자석 코어가 튜브 중심을 따라 이동하면서 측정 대상의 위치값을 알려주게 된다. LV..
안녕하세요. 구스입니다. 오늘은 2015년 미국, 유럽, 중국 등지에서 스마트폰의 점유율이 어떻게 되는지 한번 알아보도록 하겠습니다. 해가 지나갈 수록 스마트폰 시장의 경쟁이 치열해지면서 안드로이드의 구글과 iOS의 애플 진영의 싸움이 나날이 치열해지고 있습니다. 애플과 안드로이드는 서로 각기 약세를 보였던 시장에서 성장을 했다는 점이 오늘 글의 공통점이라고 봐지는데요. 그럼 관련 글 한번 살펴보도록 합시다. 본 글은 2016년 1월 27일 배포된 Kantar World Panel의 자료를 인용한 것입니다. 제목 : 애플 2015년을 미국과 중국의 선두 스마트폰 브랜드로 마감관련 링크 : http://www.kantarworldpanel.com/en/Press-Releases/Apple-Ends-2015..
안녕하세요. 구스입니다. 오늘은 RMS에 대해서 알아볼텐데요. RMS는 Root Mean Square의 약자입니다. 말 그대로 특정한 출력값의 평균을 내어 출력 값이 항상 균일하게 출력되는 크기를 표시한 것이 바로 RMS입니다. 이는 AC전압을 DC전압으로 표시할 때 사용이 되기도 하는데요. 사인파형의 AC전압을 DC전압으로 나타낼 때, DC 전압은 사인전압에 대한 피크전압(Vo)의 1/√2가 됩니다. 이를 Vrms라고 부르며, RMS 혹은 RMS전압이라고 칭하기도 합니다. 한글로는 실효값이라고도 합니다. RMS를 사용하는 가장 큰 이유는 평균 전력의 양이 파형 모양에 따라 달라지므로, 이를 비교하기 위해서 실효값(RMS)를 사용하게 됩니다. 파형의 특성을 파악할 때는 Peak의 값보다 RMS 계산을 통..
안녕하세요. 구스입니다. 제가 LVOOP를 공부해보자 관련 자료를 모아보았는데요. 이 글은 LabVIEW OOP(LabVIEW 객체지향 프로그래밍)에 대한 자료를 모아놓은 것입니다. 웹 상에는 LVOOP에 대한 자료가 많습니다. 그 자료중에 쓸만한 자료를 모아보았습니다. 사용자는 랩뷰를 활용한 개발 실력을 향상시킬 수 있는 자료를 확인할 수 있습니다. National Instruments Instructor Led Courses 랩뷰에서의 객체지향 디자인과 프로그래밍 : OO 디자인은 코드의 결과와 코드 사이의 인터페이스를 구체화하게 만들어주기 때문에 큰 프로젝트에서의 디버깅과 유지보수가 쉽다는 이점을 가지고 있습니다. 객체지향 프로그래밍은 객체지향 디자인 원리를 이용하여 프로그래밍하는 방법을 이야기합니..
안녕하세요. 구스입니다. 이 글에서는 랩뷰에서 사용할 수 있는 변수 중 하나인 글로벌 변수에 대해서 알아볼까 합니다. 랩뷰에서 사용할 수 있는 변수는 크게 로컬 변수, 글로벌 변수, 네트워크 변수, 기능적 글로벌 변수로 구분할 수 있는데요. 이러한 변수에 대해서 잘 모르신다면, 제가 이전에 정리해놓은 변수에 대한 정보를 보시면 될 것 같애요. 2015/01/13 - [National Instruments/LabVIEW] - [LabVIEW] 랩뷰에서 사용 가능한 변수 자 그럼 글로벌변수가 무엇인지 이해하셨나요?글로벌 변수를 짧게 설명드리자면, 다른 VI 사이에서 값을 공유할 수 있는 변수입니다. (변수와 상수의 차이는 아시죠?) 글로벌변수를 랩뷰에서 만들어 봅시다.글로벌 변수를 만들기 위해서는 아래와 같..