안녕하세요. 구스입니다. 오늘은 랩뷰에서 만든 .NET 프레임워크 어셈블리를 Visual Studio에서 사용하기 위한 설정 방법에 대해서 알아볼까 합니다. LabVIEW의 Application Builder를 이용하면 아래와 같이 InteropAssembly 파일을 생성할 수 있습니다. 자신이 생성한 InteropAssembly 파일을 Visual Studio에서 살펴보면 LabVIEWExports 클래스와 추가적으로 자신이 사용한 VI내의 값에 맞게 클러스터등이 클래스로 변환이 됩니다. 이를 Visual Studio에서 사용하기 위해서 생성한 어셈블리 파일을 읽어오면 아래와 같이 LVBaseRefnum, ErrorCluster와 같은 클래스를 Visual Studio에서 찾지 못하는 경우가 발생을 합..
안녕하세요. 구스입니다. 이번 글에서는 차량 통신 기술 중 하나의 CAN 통신 그리고 차세대 통신인 CAN FD 통신에 대해서 알아볼까 합니다. 자동차 통신 기술은 ECU와 센서간의 통신을 위해서 많이 사용이 됩니다. 물론 속도가 문제가 되지 않는 곳이면 LIN통신도 사용을 많이 하고 있습니다. 속도 제약이 있는 곳이라면 FlexRay를 쓰기도 합니다. LIN, CAN, FlexRay 모두 차량에서 많이 사용되는 통신 방법입니다.이 세가지 통신 방법을 비교하면 아래와 같은데요. LIN이 가장싸지만 속도가 느리고, FlexRay가 가장 비싸지만 안전하고, 빠르다는 장점을 가지고 있습니다. CAN은 중간 정도의 성능과 안정성을 가지고 있겠죠. CAN, LIN, FlexRay에 대한 부분은 차후에 한번 자세히..
안녕하세요. 구스입니다. 오늘은 랩뷰 강의를 통해서 랩뷰에서 만든 코드를 .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 마다 메시지를 주고 받는다는..
안녕하세요. 구스입니다. 다른 언어에서 랩뷰 코드를 제어하기 위해서는 어떠한 방식이 필요할까 라는 의문을 가지고 있다가 관련된 내용을 한번 찾아보았습니다. 역시나 LabVIEW의 ActiveX를 이용하여 제어하는 방법이 가장 첫번째로 떠올랐는데요. ActiveX는 COM 혹은 OLE 기반으로 만들어진 기술을 이용하여 만들어진 함수 혹은 컴포넌트를 재사용하는데 이점을 가지고 있는 기술입니다. 액티브X(ActiveX)는 마이크로소프트사가 개발한 재사용 가능한 객체지향적인 소프트웨어 구성 요소 개발에 사용되는 기술이다. 액티브X는 컴포넌트 오브젝트 모델과 객체 연결 삽입 (OLE)을 적용해 WWW으로부터 다운로드받은 컨텐츠들을 이용하는 데 이용된다. 액티브X는 전반적인 기술 혹은 기술을 구현하는데 필요한 구성..