안녕하세요. 구스입니다. 오늘은 LabVIEW에서 a2l 파일을 읽어오는 방법을 확인할 텐데요. a2l 파일은 CAN 데이터베이스 파일 종류 중 하나입니다. 일반 CAN 통신에서 사용이 되는 파일은 아니구요. 내부 ECU 파라미터를 이름(Symbolic Name)으로 접근하기 위한 이름이 정의된 파일이라고 볼 수 있습니다. a2l 파일은 ECU Measurement and Calibration 용으로 사용이 됩니다. a2l 파일에 대해서 좀더 상세히 알아보도록 합시다. a2l 파일은 ASAP2(ASAM MCD-2 MC)와 연관된 포맷 파일로써, ECU(Electronic Control Unit)의 파라미터 및 측정에 대한 값을 정의하기 위해서 사용이 됩니다. 이 파일은 CCP 혹은 XCP 프로토콜을 기반..
안녕하세요. 구스입니다. 오늘은 조금 쉬운 내용을 이야기 해볼까 합니다.NI 제품군 중에 임베디드 컨트롤를 위한 제품군이 있습니다. 바로 RIO 제품군인데요. RIO 제품군은 크게 cRIO, sbRIO, FlexRIO등으로 구분을 할 수가 있습니다.cRIO, sbRIO는 컨트롤러를 가진 자체 임베디스 장비라고 생각하면 되고, FlexRIO는 PXI 기반에서 돌아가는 RIO 제품이라고 보면 됩니다. RIO 제품은 FPGA 칩을 자체적으로 가지고 있어 FPGA 코딩도 가능하며, sbRIO, cRIO 등은 VxWorks 혹은 Linux Real-Time 운영체제를 가지고 있습니다. 이 글에서는 Real-Time OS를 보유하고 있는 sbRIO와 cRIO에 파일을 복사하는 방법에 대해서 알아볼텐데요.파일을 복사..
안녕하세요. 구스입니다. 오늘은 랩뷰에서 발생하는 에러를 무시하는 방법에 대해서 알아볼까 합니다.시리얼통신과 같은 통신을 하는경우 에러가 발생을 하면 안되는데, 에러가 생기는 경우가 종종입니다. 그렇다고 이 에러를 디버깅하자고하니 어디서 만들어지는 문제인지도 모르겠고, 상대방 장비가 원망스럽기만 하는 경우가 많은데요. 이럴때는 에러를 무시하게 만들면 됩니다. 물론 코드가 실행되는 과정 중에 해당 에러가 발생을 하였을때, 에러가 프로그램에 지대한 영향을 미치지 않고 그 에러를 무시해도 되는 경우에만 사용을 해야 합니다. 무시해도 되는 랩뷰 에러 삭제 처리하여 프로그램을 작성하기 위해서는 랩뷰의 에러 지우기 함수를 써야합니다.에러 지우기 함수는 아래와 같습니다. 특정 에러만 지울 것인지, 전체 에러를 지울 ..
안녕하세요. 구스입니다. 이 글에서는 랩뷰 시계를 한번 만들어 볼텐데요.랩뷰 시계를 만들기 위해서는 어떠한 내용을 파악하고 있어야 할까요. 아래에 설명할 랩뷰 시계 코드를 이해하는데 필요한 내용은 While문, For문, 기다림 함수등이 필요합니다.그럼 먼저 UI(User Interface) 부터 살펴보도록 합시다. 본 코드는 아래와 같이 구성이 됩니다.프론트패널에는 시간을 보여주는 UI로 구성이 됩니다. 랩뷰 코드는 아래와 같아요랩뷰 코드 실행 순서는 아래와 같습니다. 1. 날짜/시간을 초로 얻기를 통해서 현재 시간을 가져옵니다. 이 함수는 타임스탬프 형으로 데이터를 리턴합니다. 2. 받아온 날짜를 시간(%H), 분(%M), 초(%S)로 나눕니다.3. 각각 나눈 정보를 이용하여 시간/분/초를 인디케이터..
안녕하세요. 구스입니다. 오늘은 랩뷰에서 프로그래밍적으로 VI를 생성하거나, 편집할 수 있는 기능에 대해서 알아볼까 합니다. 동적으로 랩뷰 VI를 제어하는데 사용이 되는 기능인데요. 이 기능을 제공하는 함수는 바로 NI LabVIEW Scripting이라는 녀석입니다. LabVIEW VI Scripting는 VI Server에 대한 클래스, 프로퍼티, 메소드등을 제공해주어, 사용자가 특정 객체를 생성해서 프론트패널 혹은 블록다이어그램에 추가할 수 있으며, 새 VI 생성, 실행, 정지도 가능하게 도와줍니다. NI LabVIEW Scripting의 기능은 아래와 같습니다. 새로운 LabVIEW 코드를 프로그램적으로 생성하고 실행기존 코드 검사 및 변경새로운 컨트롤 및 인디케이터를 프로그램적으로 배치VI 커넥..