1.29k likes | 2.37k Views
Labwindows/CVI. 2011/09/05 김동환. CONTENTS. 프로그램 소개 ( Labwindows/CVI ) 예제 및 기초 C 문법 설치방법 및 사용법 과제 관련 공지. 세미나의 목적. 1. 수치해석 시간에 주어질 과제 중 C 로 해야하는 과제를 학생들이 해결 할 수 있도록 한다 . 2. Compile 할 수 있는 프로그램인 Labwindows/CVI 를 소개한다. Labwindows/CVI. - C 언어 기반의 Programming tool
E N D
Labwindows/CVI 2011/09/05 김동환
CONTENTS • 프로그램 소개 ( Labwindows/CVI ) • 예제 및 기초 C 문법 • 설치방법 및 사용법 • 과제 관련 공지 세미나의 목적 1. 수치해석 시간에 주어질 과제 중 C 로 해야하는 과제를 학생들이 해결 할 수 있도록 한다. 2. Compile 할 수 있는 프로그램인 Labwindows/CVI 를 소개한다.
Labwindows/CVI • - C언어 기반의 Programming tool • - 강력한 GUI (Graphic User Interface) 제공 • - Data 수집 및 분석 개발환경이잘 갖추어져 있음 • 간편한 Interface 로 누구나 쉽게 프로그램 개발 가능 • Library, 예제 찾기가 용이하고, 강력한 Help 기능 지원
Labwindows/CVI (예제) 그래프 출력 프로그램 • 쉽게 사용 가능한 프로그램 개발
예제 - Newton-Raphson method 조건문과 반복문 방정식의 근 구하기 반복 할 수록 근에 다가감.
예제 - 알고리즘 변수선언, 입력 받는 함수 초기값 for 문 계산 함수에 대입 유추한 값을반복대입 결과값이 나왔을 때 이전 값과의 상대 오차가 얼마인지 계산. 몇 번 반복 할 꺼야? 무한 반복 하면서 상대오차가 얼마 이하가 될 때 멈추고 싶어. 그 점을 지나는 직선의 방정식으로 다음 점 유추 입력 받음 If 문, while 문
예제 변수선언 파일 입출력 함수 . . . . . . .
예제 조건문 반복문 ( while )
예제 - 실행화면 교재에 방정식의 해 구하기 참고
설치방법 http://joule.ni.com/nidu/cds/view/p/id/1147/lang/en접속 다음에나오는 페이지 에서 간단히 이메일, 이름 등을 작성하고 continue
설치방법 클릭해서 파일 다운로드 파일 실행하면 setup file 다운로드 됨 완료 실행해서 unzip 후 설치시작
설치방법 다음화면 Licence 동의 후 next , next , next
설치방법 설치시작 ! 설치 종료 후 시작 프로그램에 생긴 링크로 실행
사용법 시작화면
사용법 File New Source
사용법 Coding Compile Execute 참고 실행 시 project file, workspace file 을저장해 주어야 함. 팝업 뜨면 이름 정해주고 저장하기.
과제관련 공지 • 과제 20% ( 수업계획서 ) • EXCEL, C언어, MATLAB 으로 과제 나감. • 제출기한 지켜주세요. • 과제 제출 이메일: jkjk1203@hanmail.net ( 전상범 ) • 문의사항은 010-9185-1973로전화주세요.
CVI 시작하기 - Introduction to Labwindows/CVI- 20120207 김유신, 김동환
목차 • LabWindows/CVI 소개 • 설치방법 • CVI 시작하기 • 실습 1 • 과제 ---------------------------------------------- • 파일 입·출력, 구조체 기본 • 실습 2
Labwindows/CVI 소개 • - C언어 기반의 Programming tool • - 강력한 GUI (Graphic User Interface) 제공 • - 간편한 Interface 로 누구나 쉽게 프로그램 개발 가능 • - Data 수집 및 분석 개발환경이잘 갖추어져 있음 (DAQ) • Library, 예제 찾기가 용이하고, 강력한 Help 기능 지원 < EEDF > < WIPS 2.16 > < OES > < 2D Probe > < IEDF >
설치방법 http://www.ni.com접속 - Support 로 들어가서 해당 프로그램 선택, 설치 (각자 하기) - Version 9.0으로 설치할 것 (Cd-key 문제)
CVI 시작하기 • 참고 홈페이지 (www.cvi.kr) • 스터디 항목의 강좌 많이 이용할 것 • 질문답변도 꾀 활성화 되어있음
CVI 시작하기 • Visual Basic과 똑같이 사용가능 (콘솔 프로그램 작성) Newton-Raphson method 방정식의 근 구하기 반복 할 수록 근에 다가감.
CVI 시작하기 - 알고리즘 변수선언, 입력 받음 (파일 입출력 함수) 초기값 for 문 함수에 대입 유추한 값을반복대입 결과값이 나왔을 때 이전 값과의 상대 오차가 얼마인지 계산. 몇 번 반복 할 꺼야? 무한 반복 하면서 상대오차가 얼마 이하가 될 때 멈추고 싶어. 그 점을 지나는 직선의 방정식으로 다음 점 유추 입력 받음 If 문, while 문
CVI 시작하기 변수선언 파일 입출력 함수 ( printf ) . . . . . . .
CVI 시작하기 조건문 ( for ) 반복문 ( while )
CVI 시작하기 - 실행화면 시작화면에서 source file(.c)을 생성하고 coding 후 compile 그리고실행함 그러나 LabWindows/CVI는 Console 프로그램 작성용으로나온 프로그램이 아님 강력한 GUI를 이용할 것
CVI 시작하기 compile Debug 시작화면에서 source file(.c)을 생성하고coding 후 compile 그리고실행함 Console 프로그램 작성시 이렇게 사용하면 됨
CVI 시작하기 • LabWindows/CVI 개발절차 내가 구상한 UIR 만들기 각 컨트롤의 고유이름, 함수 명, Label 등을 지정해 줌 각 컨트롤의 함수를 불러올 때 실행되는 코드들 작성
CVI 시작하기 - Welcome Page (show at startup 체크해제 시 다음부턴 안 나옴)
CVI 시작하기 • 저장 먼저 할 것 (File– Save project As.. 그리고 File – Save Workspace)
CVI 시작하기 Workspace File (.cws) Header File (.h) Project File (.h) User Interface Resource File (.uir) • UIR 파일 만들기 (File – New – User Interface) • 저장 후 Add ***.uir to project 하기
CVI 시작하기 • UIR 파일을 더블클릭 하면 다음과 같은 edit 창이 뜸 여러 Panel 들을 구분해주기 위해 이름을 지정 위 버튼들을 눌렀을 때 혹은 다른 기능들을 수행 시 부르는 함수
CVI 시작하기 • Panel 에 마우스를 대고 오른쪽 클릭하면 여러 사용 가능한 버튼들이 나옴 가장 많이 사용하는 버튼들을 알아보자
CVI 시작하기 • 각각의 속성 정해주기 (각 버튼들을 더블 클릭하면 속성 창이 나옴) 각 컨트롤의 Constant Name 과 Callback 함수 명, Label 등을 지정해 보자
CVI 시작하기 • Edit Numeric 표시되는 값의 자료 형, 쓰여진 값을 주거나 받을 때 대상 변수의 자료 형이 이와 같아야 함 Incremental value 각각의 기능을 더 자세히 알고 싶을 때는 해당 컨트롤을 우 클릭하면 나오는 Control Help를 이용한다.
CVI 시작하기 • Edit Command Button 이 버튼을 클릭하였을 때, 실행하는 함수 Under bar 두 개 를 Label에 넣으면 키보드로도 클릭할 수 있음 (Alt+)
CVI 시작하기 • Edit Ring Data와 Label을 연결 - A를 선택하면 저 Control에서 값을 받아올 때 (int)1 에 해당하는 값을 받음
CVI 시작하기 • Edit Graph 마우스 우측 클릭으로 색상조정가능 축의 속성을 정해줌 (label, format 등) 보통 사용하지 않음
CVI 시작하기 • Edit Timer Interval 에서 정해준 시간마다 Callback 함수를 불러옴 다음 단계 - Generation Code 속성이 모두 적용된 화면
CVI 시작하기 • Generation Code (Code – Generate – All Code)
CVI 시작하기 • 자동으로 기본 Code가 생성됨 (실행해 보기, Compile – Debug 버튼 사용) • 실행화면 • Callback 함수에 • QuitUserInterface(0); • 라는문장이 없으면 꺼지지 않음
CVI 시작하기 • code 기본 구성 Start 버튼을 눌렀을 때 다음과 같은 명령을 수행함 • 주요함수 소개 • SetCtrlVal() : 어떤 패널의 컨트롤에 값을 입력할 때 사용(NUMERIC이나 TEXT창에 어떤 값을 입력할 때) • GetCtrlVal() : 어떤 컨트롤의 값을 내가 받고 싶은 변수로 가지고 올 때 사용(우리가 값을 받을 변수 앞에 & 기호를 사용) • SetCtrlAttribute() : 컨트롤의 속성을 바꾸고자 할 때(혹은 값을 바꾸고자 할 때) • QuitUserInterface() : 주요함수는 아니나 프로그램을 종료하고 싶을 때 쓰는 함수 • 이외에도 무수히 많은 함수들이 있고 사용됨 (Library 검색으로 함수를 찾을 수도 있음) 프로그램 창의 좌측 아래에 있음
실습 (소요시간 30분~60분) • Text 출력, Graph Control은 연구실 자료실에 CVI검색하여 LabWindows/CVI 기초(by 김건호)를 참고 할 것 • (거기 있는 예제 꼭 해볼 것) • 실습 (타이머를 이용한 식당 고르기 게임) 설명 Start 버튼: 타이머가 Enable되어 RINGGUAGE의 빨간 바늘이 정해준 시간 간격대로 돌기 시작함 Stop 버튼: 타이머가 Disable되어 빨간 바늘이 멈춤 RINGGUAGE: RING control에 해당 모양 있음 TEXT창: 걸린 식당에 해당하는 이야기가 맨 아래 text창에 출력됨
과제 • 간단한 계산기 만들기 메뉴 Bar도만들어 보기
파일 입·출력 • 예시 프로그램 (FFT 프로그램) • WIPS FASTMODE로 측정해 온 csv Raw data를 불러와서 주파수 분석함
파일 입·출력 • 오늘의 실습 (지각비 결산 프로그램)
파일 입·출력 • 사용한 함수 • If문: RINGGUAGE가 한 바퀴 돌았을 때 제일 처음 값으로 변수를 되돌릴 때 사용했음 • While문: 무한 루프를 돌게 하기 위해 사용 (예: while(1){ }) • FileSelectPopup(): CVI 제공 함수, 어떤 파일을 불러올 건지 popup 창이 뜸 • fopen():파일을 열 때 사용 • fclose(): 파일을 닫을 때 사용 • fscanf(): 파일을 읽을 때 사용 • strcmp(); 두 개의 문자열을 비교할 때 사용 • atoi(); 문자를 숫자로 바꿀 때 사용 • 사용 예시는 다음 장에…
파일 입·출력 • int CVICALLBACK Load_CB (int panel, int control, int event, • void *callbackData, int eventData1, int eventData2) • { • FILE *fp; • char filename[250]; • char temp[50]; • char name[20]; • int tempv; • … • switch (event) • { • case EVENT_COMMIT: • select = FileSelectPopup ("c:\\Users\\Donghwan\\Desktop", "*.txt", "", "Load File", VAL_LOAD_BUTTON, 0, 1, 1, 1, filename); • if(select) • { • fp = fopen(filename,"rt"); • if(!fp) return 0; • fscanf(fp,"%s %s %s %s %s %s %s %s",name,temp,temp,temp,temp,temp,temp,tempv); • } • fclose(fp); • …