모듈화(SubVI) 모듈화란 사용자가 원하는 기능의 함수를 직접 만드는 것을 말합니다. 랩뷰에서는 SubVI라고 많이 부르며 랩뷰 기본 함수 및 툴킷에서 제공되는 아이콘 외에 내가 직접 함수 아이콘을 만든다고 보시면 되겠습니다. "그럼 모듈화를 왜 사용해야 하는 걸까요?", "기존에 제공되는 함수를 사용하면 더 편하고 쉬운게 아닌가요?" 등의 의문을 가지고 계신 분들이 있으실텐데요. 개인적으로는 내가 잘 활용할 수 있는 나만의 모듈. 즉, SubVI를 얼마나 많이 가지고 있는지가 나의 LabVIEW 스킬이 될 수 있다고 생각합니다. 그만큼 랩뷰에서는 지원되는 함수만 있다면 입출력 터미널을 와이어링만 시켜서 일단 코드 작성을 끝낼 수 있기 때문이죠. "先 기능 구현, 後 스터디가 가능하다고나 할까요?" 크..
주석(Comment) 주석은 쉽게 말해서 코드 실행이 되지 않는 부분이 말합니다. 보통 코딩을 할 때 특정 부분에 대한 설명을 기록하기 위해 주석 처리를 한다고 보면되는데 파이썬에서는 기본적으로 해시(#)를 사용해서 주석 처리를 합니다. # 주석 예시 # Moonnote Tistory Blog(Moonnote.tistory.com) # Python comment # print("사용 안하는 코드를 잠시 주석 처리합니다.") Print("코드 뒤에 주석으로 표시하기도 합니다.") # 주석 처리 VS Code에서 주석에 대한 단축키는 'Ctrl + /'로 쉽게 설정가능합니다. 2줄 이상 주석 표시하는 경우 위의 방법을 이용하여 ¹주석 표시할 부분을 전체 드래그하여 한번에 단축키(Ctrl+/)를 눌러서 처리하..
들여쓰기(Identation) 들여쓰기는 코드를 일정 간격 띄워서 작성하는 방법입니다. C, C++, Java 등의 언어에서는 { }를 기준으로 코드를 작성하기 때문에 들여쓰기에 관대한 편이지만 파이썬 같은 경우 들여쓰기를 잘못 지정할 경우 "IndentationError: 예기치 않은 들여쓰기" 메시지가 나타납니다. # 들여쓰기 Error 예시 print("Hello World!!") print("Welcome to the Python World.") # 실행 결과 File "", line 2 print("Welcome to the Python World.") IndentationError: unexpected indent ¹들여쓰기를 해야하는 상황에서 들여쓰기 하지 않은 경우에는 "Indentatio..
오토 인덱싱(Auto Indexing) 이번 시간에는 랩뷰 오토 인덱싱(Auto Indexing)에 대해서 한번 알아보도록 하겠습니다. 오토 인덱싱(Auto Indexing)이란 "Auto + Indexing"의 의미 그대로 자동적으로 인덱스 처리를 수행해주는 기능을 말합니다. 인덱스는 배열의 구성 요소 중 하나로 'n번째'라는 위치 정보를 나타내는 용어인데요. 이 위치 정보를 자동으로 처리하기 위해 ¹반복문(For문, While문)을 이용한 ²배열 데이터를 다룬다고 보시면 되겠습니다. 오토 인덱싱은 기본적으로 활성화 되어있기 때문에 반복문(For문 or While문) 경계에 터널이 생성되면 오토인덱싱이 활성화 되어있습니다. 아래의 이미지는 오토인덱싱이 활성화되어 있는 예시 이미지입니다. 여기서 LabV..
프로그래밍에 필요한 조건문(CASE 구조), 반복문(For문, While문 등)까지 살펴보셨다면 반복 실행되는 코드에서 랩뷰는 어떻게 데이터 전달을 하는지 알아보도록 하겠습니다. Loop 사용에 대해 익숙하지 않으신 분들은 앞서 포스팅하였던 내용을 한번정도 리뷰 후 본문을 읽어주시길 바랍니다. LabVIEW 조건문 - CASE 구조 랩뷰(LabVIEW) Tutorial 10 | 조건문, CASE 구조 이번 시간에는 분기문 또는 조건문에 대해서 알아보겠습니다. 프로그래밍 언어란 결국에는 사람의 생각하는 방법을 모방하여 문법을 형성한 것인데요. 프로그래밍이 아니더라도 우리는 항상 moonnote.tistory.com LabVIEW 반복문01 - For 루프 랩뷰(LabVIEW) Tutorial 11 | 반복..
이번 시간에는 While문에 대해서 알아보도록 하겠습니다. While문의 경우 이전 포스팅에서 설명드렸던 For문과 마찬가지로 반복문입니다. While 루프(While Loop) 랩뷰에서 While 루프는 함수 팔레트 >> 프로그래밍 >> 구조 >> While 루프를 선택하시면 생성할 수 있습니다. 마찬가지로 블록다이어그램에서 원하는 크기만큼 드래그하여 루프를 생성하면 되고 While 루프의 경우 아래의 이미지처럼 다음 2가지로 구성되어 있습니다. ① 조건 터미널 : While 루프의 실행 여부를 판별하기 위한 불리언(참, 거짓) 값을 입력받는 터미널입니다. ② 반복 횟수 : 현재 반복하고 있는 횟수 정보를 반환하는 인디케이터 터널입니다.(시작 넘버가 0부터 시작) 반복문이기 때문에 For문과 마찬가지로..
이번 시간에는 반복문에 대해서 알아보겠습니다. 반복문이란 프로그래밍 언어에서 루프(Loop)라고 부르기도 하며 지정한 횟수만큼 또는 특정 정지 조건을 만족할 때까지 코드를 계속 반복 실행하는 구조를 말합니다. 대표적으로 For 루프와 While 루프가 있는데 이번 포스팅에서는 For 루프에 대해서 먼저 알아보도록 하겠습니다. For 루프(For Loop) 랩뷰에서 For 루프는 함수 팔레트 >> 프로그래밍 >> 구조 >> For 루프를 선택하시면 생성할 수 있습니다. 케이스 구조와 마찬가지로 For 루프를 선택하고 블록다이어그램에서 원하는 크기만큼 드래그하면 아래의 이미지처럼 생성이 됩니다. For 루프의 기본 구성은 총 2가지로(카운트 설정, 반복 횟수) 되어 있으며 아래의 이미지와 같이 생성됩니다. ..
이번 시간에는 분기문 또는 조건문에 대해서 알아보겠습니다. 프로그래밍 언어란 결국에는 사람의 생각하는 방법을 모방하여 문법을 형성한 것인데요. 프로그래밍이 아니더라도 우리는 항상 매번 선택을 해야하는 순간들이 있죠..이 선택 한번에 의해 결과는 달라지게 되는데, 이러한 특성을 가지고 있는 것이 바로 조건문(분기문)입니다. 프로그래밍을 접해보신 분들이라면 우리가 익히 알고 있는 If문, Switch/Case문 등이 바로 이런 문법이라고 할 수 있겠네요. LabVIEW에서는 CASE 구조 하나로 조건에 따른 서로 다른 기능을 구현할 수 있습니다. 케이스 구조(CASE Structure) 케이스 구조는 함수 팔레트 >> 프로그래밍 >> 구조 >> 케이스 구조를 선택하시면 생성하실 수 있습니다. 케이스 구조를 ..
웨이브폼(Waveform)이란, 웨이브폼(Waveform)이란 '파형'이란 의미로 파동과 같은 신호의 모양과 형태를 말합니다. LabVIEW에서도 웨이브폼(Waveform) 데이터 타입을 지원하고 있는데 주기적인 신호 측정을 표시하고 저장하는 목적으로 사용됩니다. 주기적인 신호라는 말처럼 웨이브폼은 데이터의 크기 정보 외에 시간 정보를 같이 포함하고 있는데요. 기본적인 LabVIEW 웨이브폼의 구성 요소는 ¹시작 시간(t0), ²시간 간격(dt), ³데이터 배열(Y[]) 3가지로 구성됩니다. 위의 이미지는 LabVIEW 웨이브폼 상수인데요. 웨이브폼도 결국 클러스터 타입으로 구성되어있는 것을 보실 수 있습니다. 다만 Wire 색상을 Pink가 아닌 Brown으로 구분 짓고 있습니다. (숫자형으로 이루어진..
이번 시간에는 지금까지 다루었던 내용을 토대로 간단한 성적서 프로그램을 한번 만들어보도록 하겠습니다. 기본 UI 제공 파일 블록다이어그램에서 실습을 Step by Step으로 실습해볼 계획이기에 기본 UI가 만들어져있는 파일을 아래에 다운로드를 클릭하여 받으시고 진행하도록 하겠습니다. 뭐..직접 만들어도 크게 상관은 없긴 합니다. (사용 버전 : LV 2018) 실습 VI를 열어보면 성적 입력(클러스터 컨트롤), 업데이트 버튼, 성적표 테이블(테이블 인디케이터)로 구성되어 있습니다. 실습해보고자 하는 프로그램은 먼저 응시자들에 대한 정보(이름, 과목별 점수)를 기입하고 아래 버튼을 누르면 성적표 테이블에 업데이트되도록 만들어볼 예정입니다. 그럼 본격적으로 만들어보도록 하겠습니다. 1. 버튼 입력 확인 :..
클러스터(Cluster) 클러스터(Cluster)는 배열 타입처럼 데이터를 클러스터 쉘에 모아서 사용하는 타입입니다. 다만 배열의 경우같은 데이터 타입 1가지만 쉘에 담을 수 있었다고한다면 클러스터의 경우 여러 타입의 데이터들을 하나의 클러스터 쉘로 묶어서 사용할 수 있습니다. 예를 들어 숫자형, 문자열, 불리언 타입을 클러스터로 묶어서 사용하는 것이죠. 한번정도 사용 경험이 있으신 분들은 LabVIEW에서 에러 핸들링을 위한 데이터 타입으로 에러 컨트롤 또는 인디케이터를 보셨을 텐데요. 에러 데이터 입∙출력도 바로 이 클러스터 타입입니다. 클러스터의 타입은 3가지로 분류되는데 타입에 따라서 블록 다이어그램에 색상이 나뉩니다. 클러스터는 다양한 데이터 타입들을 담을 수 있기 때문에 배열처럼 인덱스 정보가..
이번 시간에는 LabVIEW 배열(Array) 타입에 대해 알아보도록 하겠습니다. LabVIEW 기본 데이터 타입 3가지(숫자, 문자, 불리언)에 대해 모르시는 분들께서는 이전 포스팅(Tutorial 03-05)을 먼저 참고해주시고 본문을 읽는 것을 추천 드립니다. 배열(Array) 배열(Array)이란 동일한 원소들을 하나로 묶은 데이터 타입을 말하며 번호(인덱스)와 이에 대응하는 데이터들로 이루어져 있습니다. LabVIEW에서의 배열 상수로 배열의 구성을 살펴보면 각 칸마다 데이터 값이 들어가 있으며 제일 좌측 상단에 숫자 0으로 시작하는 위치 정보를 나타내는 인덱스(Index) 정보가 포함되어 있습니다. 배열에서 데이터 원소의 위치 정보를 나타내는데 필요한 인덱스(Index) 개수에 따라 1차원(n..
LabVIEW 기본 화면 LabVIEW를 실행하였을 때 아래와 같이 두 개의 패널이 나타납니다. 두 패널은 서로 한쌍이기에 LabVIEW를 사용한다면 항상 같이 묶여서 사용된다고 보면 되는데요. 프런트 패널(Front Panel)과 컨트롤 팔레트(Control Palette) 먼저 왼쪽에 격자가 있는 패널부터 살펴보겠습니다. 패널 이름은 프런트 패널(Front Panel)이라고 부르며 실제 UI(User Interface), 즉 디스플레이와 관련된 패널이라고 보시면 됩니다. 프런트 패널에서 우클릭을 하면 UI 구성에 필요한 컨트롤(버튼, 문자 입력란, 숫자 값 입력란 또는 슬라이드 등) 및 인디케이터(그래프, 테이블, LED, 게이지 등) 관련 팔레트가 나타납니다. LabVIEW에서는 이를 컨트롤 팔레트..