안녕하세요. 지지비입니다. 이번 포스팅에서는 XY 그래프를 확대 및 축소하는 방법, x축이나 y축의 오토 스케일과 커서에 대해서 알아보도록 하겠습니다. 1. XY 그래프를 확대/축소하는 방법 XY그래프를 확대나 축소하기 위해서는 먼저 XY그래프의 그래프 팔레트를 보이도록 설정해야 합니다. XY그래프를 오른쪽 클릭하여 Visible Items - Graph Palette 를 클릭합니다. 여기서 돋보기 버튼을 누르면 6가지 버튼이 나옵니다. 이 버튼을 통해서 확대/축소가 가능합니다. ① 드래그한 부분을 확대합니다. ② 드래그한 부분을 x축만 확대합니다. ③ 드래그한 부분을 y축만 확대합니다. ④ 전체 화면으로 돌아갑니다. (xy 오토스케일) ⑤ 클릭하고 있으면 확대됩니다. ⑥ 클릭하고 있으면 축소됩니다. 2..
안녕하세요. 지지비입니다. 이번 포스팅에서는 루프와 함께 XY 그래프를 그리는 방법에 대해서 알아보도록 하겠습니다. 루프와 함께 XY 그래프를 그리는 것은 반복적으로 측정을 하고 데이터를 얻어 XY 그래프로 볼 수 있도록 하기 위함입니다. 여기서 두 가지 방법이 있는데, 측정이 모두 끝나고 나서 XY그래프를 그리는 방법이 있고 측정하면서 XY그래프를 그리는 방법이 있습니다. 먼저 측정이 모두 끝나고 나서 XY그래프를 그리는 방법에 대해서 알아보도록 하겠습니다. 1. 측정 완료 후 XY 그래프 플롯 간단하게 만들 수 있는 방법이지만 제가 선호하지 않는 방식이기도 합니다. 왜냐하면 측정을 하면서 바로바로 디스플레이가 되지 않으면 제대로 측정이 되는지 되지 않는지 확인할 수 없기 때문입니다. 특히 자동화를 고..
안녕하세요. 지지비입니다. 이번 포스팅에서는 랩뷰를 이용한 GPIB 통신을 하는 방법에 대해서 알아보도록 하겠습니다. 학부생 때, 대학원 때 랩뷰를 잘 쓸 수 있었으면 눌러 놓고 딴짓을 해도 됐을 텐데 라는 생각을 종종 합니다. 사실 랩뷰도 상관없고 파이썬도 상관없지만 계측기를 자동화해서 다룰 수 있었다면 참 좋았을 것입니다(더 게을러질 수 있었을 테니까). 지금이야 능숙하게 관련 드라이버도 잘 알고 사용하고 있지만 그때에는 잘 몰랐고 알려주는 데도 별로 없었습니다. 랩뷰 강의를 들어 봐야 DAQ 가지고 전압 재는 것이나 하고 있으니.. 저한테 필요한 건 오실로스코프에서 전압 가져오는 것, 스펙트럼 분석기에서 파장 읽어오는 것이면 됐는데 말입니다. 여기서는 내셔널 인스트루먼트(NI)에서 나온 GPIB t..
안녕하세요. 지지비입니다. 이번 포스팅에서는 여러 열 리스트박스를 이용하여 양불 판정을 색깔로 나타내는 방법에 대해서 알아보도록 하겠습니다. 결론적으로, 아래와 같은 프로그램을 만들게 됩니다. 목차 1. 프로그램 설명 먼저, 프로그램은 기준값(최대,최소)을 가지고 측정 결과를 Pass 또는 Fail로 판단하도록 하였습니다. 그 결과는 여러 열 리스트박스에 들어가도록 하였고, 양불 판정의 결과를 색깔과 문자열로 나타내도록 했습니다. 여기서 여러 열 리스트박스를 사용하는 이유는 특정한 셀의 속성(색깔)을 변경하기 위해서입니다. 배열은 원소가 모두 같은 속성을 갖게 되기 때문에, 특정 원소만 배경색을 변경할 수 없습니다. 측정 결과는 아래와 같이 여러 열 리스트박스로 들어가게 되며, 여러 열 리스트박스에 들어..
안녕하세요. 지지비입니다. 이번 시간에는 프로퍼티 노드에 대해서 알아보도록 하겠습니다. 프로퍼티 노드를 통해 컨트롤이나 인디케이터의 속성을 변경할 수 있습니다. 여기서 속성이란 컨트롤의 값, 배경색, 글자색, 글자의 굵기 등을 말합니다. 랩뷰를 사용하다 보면 반드시 사용해야 할 일이 생기게 되므로 잘 알아두시는 게 좋습니다. 1. '프로그래밍적으로' 변경한다 프로퍼티 노드를 사용하기 위해 검색하면 '프로그래밍적으로' 변경한다는 이야기가 있습니다. '프로그래밍적으로'라는 말은 무엇일까요? 말 그대로 '프로그램이 변경한다' 라는 이야기입니다. 아래 예제에서는 확인 버튼을 누르면 입력이 5보다 큰 지 확인하여 참/거짓 불리언에 출력하도록 만든 프로그램입니다. 이 프로그램에서 참/거짓 불리언은 입력에 따라 녹색..
안녕하세요. 지지비입니다. 이번 포스팅에서는 랩뷰의 기다림(ms) 함수(Wait (ms))와 다음 ms배수까지 기다림 함수(Wait Until Next ms Multiple)에 대해서 알아보고 비교하는 방법을 알아보겠습니다. 포스팅 밑에는 제가 기다림 함수를 사용하는 팁에 대해서 나와 있으니 끝까지 봐 주세요! 1. 함수의 위치 기다림(ms)함수와 다음 ms배수까지 기다림 함수는 블록 다이어그램의 함수 팔레트 - Timing 에 위치하고 있습니다. 또는 블록 다이어그램 퀵드롭(Ctrl+Spacebar)메뉴에서 Wait 이라고 치면 두 함수를 선택해서 넣을 수 있습니다. 2. 기다림 vs 다음 ms배수까지 기다림 - 기다림 함수 기다림 함수는 이 함수가 실행하는 순간 입력한 ms(밀리세컨드)까지 아무것도 ..
안녕하세요. 지지비입니다. 이번 포스팅에서는 생산자/소비자 디자인 패턴의 구조를 사용하는 방법에 대해서 알아보도록 하겠습니다. 생산자 소비자 패턴은 말이 어렵지 실제로 보면 어렵지 않은 구조입니다. 글을 읽어 보시면 이해되실거라 생각합니다. 1. 생산자/소비자 디자인 패턴 만들기 생산자/소비자 디자인 패턴은 랩뷰에서 이미 제공하고 있는 탬플릿을 사용하여 쉽게 만들 수 있습니다. 먼저 File-New...를 클릭하여 아래와 같이 생산자/소비자 디자인 패턴(이벤트)을 찾아 클릭하여 탬플릿을 엽니다. 2. 생산자/소비자 디자인 패턴 이해하기 먼저 생산자와 소비자가 무엇을 의미하는지 알아보겠습니다. 생산자 : 작업를 생성하는 주체 소비자 : 작업을 수행하는 주체 생산자 구조는 사용자가 입력하는 특정 이벤트를 감..
안녕하세요. 지지비입니다. 이번 포스팅에는 랩뷰의 프로젝트를 사용하는 법에 대해서 알아보도록 하겠습니다. 1. 프로젝트란 무엇인가? 프로그램을 만들다 보면 프로그램에 사용하는 subVI, 설정 파일, 텍스트 파일, 기타 여러가지 파일들을 윈도우 폴더 안에 넣어 관리할 수 있습니다. 프로젝트는 프로그램에서 사용하는 파일, 문서나 subVI를 연결해 주는 역할을 합니다. 프로젝트로 관리하면 subVI를 추가할 때 프로젝트 내에서 관리하고 있으면 바로바로 추가하기도 쉽고, 오류가 있는 파일도 찾기 쉽습니다. 2. 프로젝트 만들기 기존에 만들어 둔 프로그램이 아래와 같다고 생각하겠습니다. 메인 프로그램인 Main.vi와 SubVI폴더에 사용하고 있는 SubVI를 저장해 둔 상태입니다. 랩뷰 메뉴에서 File -..
안녕하세요. 지지비입니다. 이번에는 랩뷰의 디자인 패턴 중 대표적인 상태머신 구조에 대해서 알아보도록 하겠습니다. 1. 상태머신 구조란? 상태머신 구조를 이해하기 위해서는 먼저 상태라는 단어를 이해해야 합니다. 상태는 알고리즘을 다이어그램 형태로 만들었을 때 각각의 박스를 상태로 이해하면 편할 것 같습니다. 아래는 제가 자판기 예제를 만들기 위해 작성한 다이어그램입니다. 각 상태를 빨간색 점선으로 표기했습니다. 상태를 파악했으니 상태머신 구조에 대해서 알아보겠습니다. 상태머신 구조는 아래와 같이 구현합니다. While 루프, 케이스 구조, 시프트 레지스터가 상태머신 구조를 만드는 세 가지 요소입니다. 최초 시프트 레지스터 초기화를 통해서 초기 상태를 지정합니다(제외할 수 있음). 케이스 구조에서 상태를 ..
이번 강의에서는 이벤트 구조(Event Structure)에 대해서 알아보도록 하겠습니다. 1. 이벤트 구조란 무엇인가? 이벤트 구조는 "특정 이벤트"가 발생했을 때 어떤 코드를 실행시킨다는 목적을 가지고 있는 구조입니다. 대표적으로 어떤 버튼을 클릭한다거나, 단축키를 누른다거나 하는 행위가 이벤트이고 이벤트가 발생했을 때 어떤 코드를 실행하도록 하게 되어 있습니다. 특정 이벤트가 발생하는 것을 감지하기 위해서 이벤트 구조는 보통 혼자서 사용하지 않고 While 루프와 같이 사용합니다. 계속해서 이벤트를 감지하고, 감지했을 때 프로그램을 구동하기 위해서입니다. 따라서 이벤트 구조는 보통 아래와 같은 형태가 기본적으로 사용됩니다. 2. While 루프의 정지 이벤트 추가하기 위 구조에서 실행 버튼이 깨져 ..
안녕하세요. 이번 강의는 다시 기본 구조로 돌아와서 조건에 따라 실행할 코드를 변경하는 케이스 구조에 대해서 알아보도록 하겠습니다. 1. 케이스 구조란 랩뷰의 케이스 구조는 특정 입력이 들어왔을 때 입력에 따른 실행 코드를 지정해 주는 것을 말합니다. 대부분의 언어에서 사용하는 if...else...또는, switch와 같은 구조입니다. 케이스 구조는 블록 다이어그램의 함수 팔레트에서 Structures-Case Structures를 선택하여 배치할 수 있습니다. 2. 케이스 구조 인터페이스 케이스 구조는 케이스 선택자, 케이스 라벨과 케이스로 구분됩니다. 케이스 선택자에 입력된 값에 따라 같은 케이스 라벨에 있는 케이스가 실행됩니다. 즉, 한 번에 하나의 케이스만 실행됩니다. 아래는 케이스 입력을 불리..
이번 강의에서는 텍스트 파일에서 데이터를 불러와 XY 그래프를 그리는 방법에 대해서 설명하겠습니다. 이제 약간 어플리케이션 영역으로 넘어가는 것 같네요. 1. 사용할 데이터 아래 데이터는 테스트로 쓸 sine 형태의 x배열, y배열이 있는 데이터입니다. 2. 데이터 불러오기 스프레드시트 형태로 되어있는 데이터를 불러오기 위해 사용할 함수는 함수 팔레트의 File I/O - Read Delimited Spreadsheet.vi 입니다. 스프레드 시트로부터 읽기 함수를 블록 다이어그램에 위치시키겠습니다. 스프레드시트로부터 읽기 함수는 읽은 데이터의 출력 형태를 선택할 수 있습니다. Double형 숫자 Integer형 숫자 문자열 우리는 사인 함수이므로 데이터에 소수점이 포함되기 때문에 1번 또는 3번으로 선..