Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LabVIEW 공부 정리 #1

Open
KangHoyong opened this issue Mar 15, 2020 · 0 comments
Open

LabVIEW 공부 정리 #1

KangHoyong opened this issue Mar 15, 2020 · 0 comments
Assignees

Comments

@KangHoyong
Copy link
Owner

What is LabView ?
Test, 측정, 제어 어플리케이션을 위해 특별히 설계된 엔지니어링 S/W
데이터의 흐름

활용분야

  1. 각종 계측장비를 이용한 측정 및 테스트 자동화
    : 국내에서 가장 많이 활용하는 분야로 측정 및 테스트 자동화 솔루션을 개발
  2. PC 기반 어플리케이션 프로그램 개발
    : 개발업무를 진행하면서 업무 효율을 높이기 위하여 개발에 필요한 Tool을 만들고 자 하는 경우
  3. 각종 디바이스들을 이용한 제품 개발
    : 제품 개발 S/W로 LabVIEW를 이용하는 경우
  4. 알고리즘 개발 및 검증
    : 알고리즘을 시뮬레이션 및 Real-Field 에서 검증하는 경우
  5. 생산라인 테스트 자동화

Add - on Toolkit 제공
3rd Party Toolkit 제공 VIPM NIPM LabView Tools Network

구성요소
LabView - 프런트 패널(프론트앤드 사용자 인터페이스) - 컨트롤 팔레트(사용자 인터페이스 구현 / 보기 -> 컨트롤 팔레트)
- 블록다이어그램(백앤드 소스코드 프로그램 기능을 구성하는 소스코드에 해당 / 보기 -> 함수팔레트) - 함수 팔레트
- 컨트롤 (사용자 입력 처리 프론트 앤드)
: 사용자의 입력을 받는 부분 , 생성 : 프런트, 블록다이어그램 가능(주로 프런트생성)
: 검은색 삼각형 위치에 따라서 구분가능 (오른쪽) -> 블록다이어그램 / 프론트에서는 흰색 바탕
- 인디케이터 (사용자 에게 결과를 보여주는 프론트 앤드)
: 사용자에게 데이터를 보여주는 부분 , 생성 : 프런트, 블록다이어그램 가능(주로 프런트생성)
: 검은색 삼각형 위치에 따라서 구분가능 (오른쪽) -> 블록다이어그램 / 프론트에서는 회색 바탕
- 와이어 (데이터를 전달하는경우에 사용 하는 도구)
: 데이터의 타입에 따라서 색상이 다름 -> 숫자 오렌지색 DBL 64비트 부동소수점
-> Bool 타입 녹색
-> 문자열 보라색
: 데이터 타입 이 같은경우
: ex ) 블리언 타입 블리언 입력이 들어와야 와이어가 깨지지 않음

실행 단축키 Ctrl + R , 도구 아이콘 중 화살표 모양 버튼 이용
깨진 실행 버튼 -> 문법 오류 표시 (정적 분석 실시간 체크기능 있음) / 에러 리스트 출력 (에라 보이기) 해당 위치로 하이라이트

파일 -> 새로만들기 Ctrl + N -> 프론트 패널 , 블록다이어그램
Ctrl + E 서로 윈도우 전환 단축키

블록다이어그램 -> 숫자형 -> 마우스 우클릭 -> 컨트롤 변경 -> 프런트 패널 -> 마우스 우클릭 -> 대체 -> UI변경 (실버 UI )

마우스 모양이 실타레 변경 마우스 왼쪽 눌러서 쭉 댕겨서 연결하면됨

===============================================================
입출력 아이콘의 크기 및 이름 변경

아이콘 크기 변경 -> 크기 조절점 이용
이름 라벨 Lable -> 텍스트 부분 더블 클릭 후 수정

VI 저장하기
Ctrl + S 다른 이름 저장 : 복사 -> 복사본 열기 -> 계속 -> Save

파일 확장자

  • VI(Virtual Instrument)

데이터 형식
- 숫자형 -> 부동 소수점형 실수 DBL
-> 고정 소수점형 실수 FXP
-> 정수 (Int 64 32 16 8)
-> 부호없는 정수 (U64, 32 16 8)
형 Type 에 따라 다른 터미널 색깔 이 다름
마우스 우클릭 형 -> 여러가지 타입을 볼수 있음

 - 불리언 프론트 타입 : 버튼 형태 (터미널 색상 초록색)
 우클릭 : 기계적 동작 		

 - 문자열 : ASCII 방식 (터미널 색상 분홍색) 마우스 우클릭 (여러가지 디스플레이 보여줌).

 - 열거형 : 문자처럼 보이지만 실제로는 숫자 output 숫자 (데이터 타입 아닌경우 강제 변환)
		-> 강제 변환 많으면 메모리 최적화 안좋음, 원하는 데이터가 처리과정에서 변형발생
		아이탬 보여줌 (문자 -> 결과는 숫자) 

 - 배열 : 배열 껍데기에 원하는 데이터 형태 끌어 놓아 만듬
 배열 앞에 인덱스 디스플레이 / 배열의 원소 
 원소와 차원으로 구성 (단 , 원소는 같은 종류)
 원소의 순서 : 인덱스 
 인덱스 디스플레이가 몇개 인가로 1차원 2차원 유추가능 
 블록다이어그램에서는 와이어 굵기로 유추 

 - 클러스터   주의 : 인디케이트 인디케이트 끼리 / 컨트롤 컨트롤 끼리 
   여러 가지 형태 변수들의 집합 
   클러스터 껍데기에 필요한 변수 형태를 끌어 놓아 만듦
   각각의 원소는 순서를 가짐 
   클러스터 내의 컨트롤 순서 재설정 옵션 이용 
   클러스터 선택 -> 클러스터 내의 컨트롤 순서 재설정 ... -> 원하는 순서를 클릭 지정 -> 종료 
           서브 VI 입력 출력 정의 필요 입력 출력 많은 경우 물리적 연결할때 공간 제한 클러스트 이용하여 여러가지 
 입력을 하나묶음 으로 만듬 (모듈화 작업)
 단점 -> 속도의 문제 발생 
 이름 풀기 / 이름 묶기 
 에러 클러스터 제공 
 풀기 묶기 중요 !!! 

모듈화 = SubVI 만든다.
Error In - 케이스 구조 - Error out (요런 구조)

=================================================

주사위 던지기 프로그램
난수 - 곱하기 - 올림 - 주사위 값 출력

숫자형 데이터 변환

  • 서로 다른 숫자형 데이터 타입 연결
    8비트 부호없는 정수(U8) -> 출력 부호가 있는 8비트 정수 (I8) : 자동으로 변환 강제변환점 표시 방법 빨간색 삼각형

복합연산 (여러개 입력 값을 계산해서 나온 결과를 보여줌)
컨트롤 + 스페이스바 + D (입출력을 자동으로 생성)

배열 원소 곱하기, 더하기 1차원 원소

강제 변환 을 하지 않고 하는 방법 프로그래밍 - 숫자형 - 변환 중간에 변환 타입을 넣어서 해결

주사위 프로그램
난수 (0-1) -> 곱하기 -> 올림 함수 (1 ~ 6값이 나옴) -> 생성주사위값 인디케이트
생성 상수 ->

======================================================

Bool 함수 팔레트
AND OR NOT

bool 0 또는 1 변경 가능
숫자를 Bool 배열로 도 가능

=======================================================

문자열 함수 팔레트
문자열 길이 함수
문자열 연결 함수
문자열 잘라내기 함수
패턴 매칭 - 문자열 정규식 필요 (원하는 패턴을 뽑아내기위한경우)
캡처

문자열 숫자 변환 함수
10진수 16진수 소수점 지수 숫자의 문자 변환
반대의 경우 문자의 숫자 변환 가능

경로 -> 문자열 배열로 변경

=======================================================
비교 함수 팔레트

  • 크다 작다 등 비교 함수 포함
    캡처

크기를 비교하는 경우에 많이 사용되고 있음

많이 사용되고 있는 것들
캡처

==========================================================
구조 함수 팔레트
프로그래밍 - 구조
For / While 의 루프 함수
Timed 구조 -> 1미리 세컨트 처리
In Place 원소 구조 -> 메모리 최적화 구조

For 함수 기본 구조
N -> 루프카운트 터미널 루프 실행 횟수 지정
i -> 루프 반복횟수 터미널

for 루프를 사용해 난수를 10번 생성하기
캡처

for 루프 함수0 부터 While 함수 1부터 -> 정지 조건 필수

캡처

마우스 우클릭 오토 인덱싱 비활성 -> 마지막 값만 출력

시프트 레지스터

  • 이전의 루프에서 연산한 결과를 현재의 루프에서 사용
  • 루프 내에서 사용하는 임시 저장 공간
    캡처
    반복 수행 횟수 3
    0 값 들어가서 + 2 -> 2 -> 반복수행 2 + 2 -> 4 -> 반복수행 4 + 2 -> 6 최종 결과는 6

다층 시프트 레지스터
데이터 이동 아래로
캡처

시프트 레지스터의 초기화
캡처

1부터 100까지 더기
반복회수 100

레지스터 0 초기화 -> + -> 출력 I32
i +1

while 사용자가 정지할 때 까지 발생한 난수의 평균값 구하기
캡처

부동소수점 변환 함수 변환 을 이용하자

다이어그램 비활성화 구조 주석처리해서 테스트 하는 방식과 동일
왼쪽 마우스 해서 이 서브다이어그램 활성화 이런식으로 사용하면됩니다.

출처
https://www.youtube.com/watch?v=l-2IiFoasv0

@KangHoyong KangHoyong self-assigned this Mar 15, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant