안녕하세요. 구스입니다. 이전 자료에서 TCP, UDP 통신을 위한 2차배열을 문자열로 변환하는 내용(LabVIEW 2D Array To String)에 대해서 알아보았습니다. 이 글에서는 위의 함수를 이용해서 실질적으로 TCP/IP 통신 기반을 구현해 볼려고 하는데요. LabVIEW에서 2차배열을 문자열로 변환하는 과정을 이해하실려면 아래의 링크를 참조하세요. 2016/02/18 - [National Instruments/LabVIEW] - [랩뷰] TCP, UDP 통신을 위한 이차배열을 문자열로 변환 (2D Array To String) TCP/IP 통신은 서버-클라이언트 기반의 통신입니다. TCP/IP에 대해서 좀더 알아보고자 하면 아래와 같습니다. 컴퓨터 간의 주고받는 메시지를 전송할 때 에러가 ..
안녕하세요. 구스입니다. 이 글에서는 LabVIEW에서 TCP, UDP 통신하는 방법에 대해서 이야기해볼까 합니다. LabVIEW는 TCP, UDP 통신을 지원하는 함수를 제공하고 있습니다. 이 함수를 사용하면 다른 언어와는 달리 편리하게 통신 환경을 구성할 수 있는데요. C, Python, C#의 경우에는 Socket 함수등을 이용하여 byte배열로 데이터를 전송하는 반면 LabVIEW는 다른 언어들과 달리 String 타입의 ASC2 문자를 이용하여 데이터 송수신을 합니다. 따라서 이차배열을 데이터로 송수신하기 위해서는 문자열로 변환하는 과정(LabVIEW 2D Array To String)이 필요합니다. 일반적으로 일차배열이나 단일 값을 출력하는데는 타입 캐스트 함수를 사용하게 됩니다. 타입 캐스트..
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 클래스라..