안녕하세요. 구스입니다. 오늘은 랩뷰에서 만든 .NET 프레임워크 어셈블리를 Visual Studio에서 사용하기 위한 설정 방법에 대해서 알아볼까 합니다. LabVIEW의 Application Builder를 이용하면 아래와 같이 InteropAssembly 파일을 생성할 수 있습니다. 자신이 생성한 InteropAssembly 파일을 Visual Studio에서 살펴보면 LabVIEWExports 클래스와 추가적으로 자신이 사용한 VI내의 값에 맞게 클러스터등이 클래스로 변환이 됩니다. 이를 Visual Studio에서 사용하기 위해서 생성한 어셈블리 파일을 읽어오면 아래와 같이 LVBaseRefnum, ErrorCluster와 같은 클래스를 Visual Studio에서 찾지 못하는 경우가 발생을 합..
안녕하세요. 구스입니다. 오늘은 랩뷰 강의를 통해서 랩뷰에서 만든 코드를 .NET 환경에서 사용하기 위해서 .NET Framework 기반의 어셈블리(Assembly) 파일을 만드는 방법에 대해서 알아볼까 합니다. 이번 랩뷰 강의의 목적은 LabVIEW 코드의 대부분은 Assembly는 방법을 이해하는 것이죠. 어셈블리로 만들기 위해서는 프로젝트 기반으로 VI는 구성이 되어야 하며, VI에 사용된 내부 VI들을 함수로 호출하기 위해서는 모든 함수들의 SubVI로 만들어져야 합니다. 아래의 테스트 코드를 한번 봅시다. 아래와 같이 XNET 코드를 .NET 환경에서 사용할 수 있게 만들고자 하면 각 코드에 대한 부분을 모두 SubVI로 모듈화 해야합니다. 위의 코드 중에서 모듈화 할 수 있는 코드를 확인하여..
안녕하세요. 구스입니다. 오늘은 LabVIEW와 NI XNET을 이용한 린통신에 대해서 알아볼까 합ㄴ디ㅏ. LIN통신은 다른 통신과는 달리 NI XNET 함수를 사용할 때 Data를 무조건 넣어야 합니다. Data가 비어 있는 상태로 데이터를 전송하게 되면 LabVIEW 코드 상에서 에러를 발생시키며 데이터 전송이 되지 않습니다. LIN통신은 CAN통신과 달리 스케줄링을 사용합니다. LIN 통신에서 Header만을 보내기 위해서는 이 스케줄링을 사용하면 됩니다. 먼저 LIN통신에서 사용하는 Database를 한번 살펴봅시다. LIN 데이터베이스에는 Schedules 부분이 있습니다. Schedules 부분의 의미는 LIN_CONTROL, LIN_STATE라는 메시지가 10ms 마다 메시지를 주고 받는다는..
안녕하세요. 구스입니다. 랩뷰는 VAS(Vision Assistant Software) 혹은 VDM(Vision Development Module)을 통해서 영상 수집 및 영상 처리가 가능하도록 도와줍니다. 특히 VAS는 Vision Assistant를 지원하여 사용자가 조금더 쉽게 비전 관련 프로그래밍이 가능하도록 Express 함수 기반으로 제공하고 있습니다. 이 글에서는 LabVIEW에서 수집된 영상의 일부분을 잘라내고, 잘라낸 이미지를 저장하는 방법에 대해서 알아보도록 하겠습니다. 1. 랩뷰에서 이미지 잘라내기 랩뷰에서 이미지를 잘라낼 때 사용하는 함수는 IMAQ Extract 함수입니다. 이 함수를 통해서 사용자는 카메라 혹은 파일에서 불러온 이미지의 소스 중 일부분을 잘라낼 수 있습니다. 이미..
안녕하세요. 구스입니다. 랩뷰는 다른 장비와의 통신을 사용할 때 사용하는 통신 프로토콜을 대부분 지원하고 있습니다. 대표적인 통신프로토콜에는 TCP/IP, UDP와 같이 이더넷 기반의 통신과 RS232, RS485와 같은 시리얼통신으로 구분할 수 있습니다. LabVIEW는 이러한 통신에 데이터를 송수신할 때 문자열로 보내고 받습니다. 하지만 C, C#, 파이썬등에서는 Byte 배열 기반으로 데이터를 송수신하게 되죠. 따라서 랩뷰와 다른 언어와의 통신에서는 데이터를 맞춰줘야 하는 작업이 필요합니다. 바이트 배열이라함은 아스키코드 기반으로 데이터를 전달하는 것을 의미합니다. 아래의 아스키코드의 Dec의 값이 실질적으로 바이트 배열의 값입니다. 랩뷰에서 1이라는 문자열을 보내면 다른 언어에서는 Char 값이 ..