1 / 110

Labwindows/CVI

Labwindows/CVI. 2011/09/05 김동환. CONTENTS. 프로그램 소개 ( Labwindows/CVI ) 예제 및 기초 C 문법 설치방법 및 사용법 과제 관련 공지. 세미나의 목적. 1. 수치해석 시간에 주어질 과제 중 C 로 해야하는 과제를 학생들이 해결 할 수 있도록 한다 . 2. Compile 할 수 있는 프로그램인 Labwindows/CVI 를 소개한다. Labwindows/CVI. - C 언어 기반의 Programming tool

feryal
Download Presentation

Labwindows/CVI

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Labwindows/CVI 2011/09/05 김동환

  2. CONTENTS • 프로그램 소개 ( Labwindows/CVI ) • 예제 및 기초 C 문법 • 설치방법 및 사용법 • 과제 관련 공지 세미나의 목적 1. 수치해석 시간에 주어질 과제 중 C 로 해야하는 과제를 학생들이 해결 할 수 있도록 한다. 2. Compile 할 수 있는 프로그램인 Labwindows/CVI 를 소개한다.

  3. Labwindows/CVI • - C언어 기반의 Programming tool • - 강력한 GUI (Graphic User Interface) 제공 • - Data 수집 및 분석 개발환경이잘 갖추어져 있음 • 간편한 Interface 로 누구나 쉽게 프로그램 개발 가능 • Library, 예제 찾기가 용이하고, 강력한 Help 기능 지원

  4. Labwindows/CVI (예제) 그래프 출력 프로그램 • 쉽게 사용 가능한 프로그램 개발

  5. 예제 - Newton-Raphson method 조건문과 반복문 방정식의 근 구하기 반복 할 수록 근에 다가감.

  6. 예제 - 알고리즘 변수선언, 입력 받는 함수 초기값 for 문 계산 함수에 대입 유추한 값을반복대입 결과값이 나왔을 때 이전 값과의 상대 오차가 얼마인지 계산. 몇 번 반복 할 꺼야? 무한 반복 하면서 상대오차가 얼마 이하가 될 때 멈추고 싶어. 그 점을 지나는 직선의 방정식으로 다음 점 유추 입력 받음 If 문, while 문

  7. 예제 변수선언 파일 입출력 함수 . . . . . . .

  8. 예제 조건문 반복문 ( while )

  9. 예제 - 실행화면 교재에 방정식의 해 구하기 참고

  10. 설치방법 http://joule.ni.com/nidu/cds/view/p/id/1147/lang/en접속 다음에나오는 페이지 에서 간단히 이메일, 이름 등을 작성하고 continue

  11. 설치방법 클릭해서 파일 다운로드 파일 실행하면 setup file 다운로드 됨 완료 실행해서 unzip 후 설치시작

  12. 설치방법

  13. 설치방법 다음화면 Licence 동의 후 next , next , next

  14. 설치방법 설치시작 ! 설치 종료 후 시작 프로그램에 생긴 링크로 실행

  15. 사용법 시작화면

  16. 사용법 File New Source

  17. 사용법 Coding Compile Execute 참고 실행 시 project file, workspace file 을저장해 주어야 함. 팝업 뜨면 이름 정해주고 저장하기.

  18. 과제관련 공지 • 과제 20% ( 수업계획서 ) • EXCEL, C언어, MATLAB 으로 과제 나감. • 제출기한 지켜주세요. • 과제 제출 이메일: jkjk1203@hanmail.net ( 전상범 ) • 문의사항은 010-9185-1973로전화주세요.

  19. CVI 시작하기 - Introduction to Labwindows/CVI- 20120207 김유신, 김동환

  20. 목차 • LabWindows/CVI 소개 • 설치방법 • CVI 시작하기 • 실습 1 • 과제 ---------------------------------------------- • 파일 입·출력, 구조체 기본 • 실습 2

  21. Labwindows/CVI 소개 • - C언어 기반의 Programming tool • - 강력한 GUI (Graphic User Interface) 제공 • - 간편한 Interface 로 누구나 쉽게 프로그램 개발 가능 • - Data 수집 및 분석 개발환경이잘 갖추어져 있음 (DAQ) • Library, 예제 찾기가 용이하고, 강력한 Help 기능 지원 < EEDF > < WIPS 2.16 > < OES > < 2D Probe > < IEDF >

  22. 설치방법 http://www.ni.com접속 - Support 로 들어가서 해당 프로그램 선택, 설치 (각자 하기) - Version 9.0으로 설치할 것 (Cd-key 문제)

  23. CVI 시작하기 • 참고 홈페이지 (www.cvi.kr) • 스터디 항목의 강좌 많이 이용할 것 • 질문답변도 꾀 활성화 되어있음

  24. CVI 시작하기 • Visual Basic과 똑같이 사용가능 (콘솔 프로그램 작성) Newton-Raphson method 방정식의 근 구하기 반복 할 수록 근에 다가감.

  25. CVI 시작하기 - 알고리즘 변수선언, 입력 받음 (파일 입출력 함수) 초기값 for 문 함수에 대입 유추한 값을반복대입 결과값이 나왔을 때 이전 값과의 상대 오차가 얼마인지 계산. 몇 번 반복 할 꺼야? 무한 반복 하면서 상대오차가 얼마 이하가 될 때 멈추고 싶어. 그 점을 지나는 직선의 방정식으로 다음 점 유추 입력 받음 If 문, while 문

  26. CVI 시작하기 변수선언 파일 입출력 함수 ( printf ) . . . . . . .

  27. CVI 시작하기 조건문 ( for ) 반복문 ( while )

  28. CVI 시작하기 - 실행화면 시작화면에서 source file(.c)을 생성하고 coding 후 compile 그리고실행함 그러나 LabWindows/CVI는 Console 프로그램 작성용으로나온 프로그램이 아님 강력한 GUI를 이용할 것

  29. CVI 시작하기 compile Debug 시작화면에서 source file(.c)을 생성하고coding 후 compile 그리고실행함 Console 프로그램 작성시 이렇게 사용하면 됨

  30. CVI 시작하기 • LabWindows/CVI 개발절차 내가 구상한 UIR 만들기 각 컨트롤의 고유이름, 함수 명, Label 등을 지정해 줌 각 컨트롤의 함수를 불러올 때 실행되는 코드들 작성

  31. CVI 시작하기 - Welcome Page (show at startup 체크해제 시 다음부턴 안 나옴)

  32. CVI 시작하기 • 저장 먼저 할 것 (File– Save project As.. 그리고 File – Save Workspace)

  33. CVI 시작하기 Workspace File (.cws) Header File (.h) Project File (.h) User Interface Resource File (.uir) • UIR 파일 만들기 (File – New – User Interface) • 저장 후 Add ***.uir to project 하기

  34. CVI 시작하기 • UIR 파일을 더블클릭 하면 다음과 같은 edit 창이 뜸 여러 Panel 들을 구분해주기 위해 이름을 지정 위 버튼들을 눌렀을 때 혹은 다른 기능들을 수행 시 부르는 함수

  35. CVI 시작하기 • Panel 에 마우스를 대고 오른쪽 클릭하면 여러 사용 가능한 버튼들이 나옴 가장 많이 사용하는 버튼들을 알아보자

  36. CVI 시작하기 • 각각의 속성 정해주기 (각 버튼들을 더블 클릭하면 속성 창이 나옴) 각 컨트롤의 Constant Name 과 Callback 함수 명, Label 등을 지정해 보자

  37. CVI 시작하기 • Edit Numeric 표시되는 값의 자료 형, 쓰여진 값을 주거나 받을 때 대상 변수의 자료 형이 이와 같아야 함 Incremental value 각각의 기능을 더 자세히 알고 싶을 때는 해당 컨트롤을 우 클릭하면 나오는 Control Help를 이용한다.

  38. CVI 시작하기 • Edit Command Button 이 버튼을 클릭하였을 때, 실행하는 함수 Under bar 두 개 를 Label에 넣으면 키보드로도 클릭할 수 있음 (Alt+)

  39. CVI 시작하기 • Edit Ring Data와 Label을 연결 - A를 선택하면 저 Control에서 값을 받아올 때 (int)1 에 해당하는 값을 받음

  40. CVI 시작하기 • Edit Graph 마우스 우측 클릭으로 색상조정가능 축의 속성을 정해줌 (label, format 등) 보통 사용하지 않음

  41. CVI 시작하기 • Edit Timer Interval 에서 정해준 시간마다 Callback 함수를 불러옴 다음 단계 - Generation Code 속성이 모두 적용된 화면

  42. CVI 시작하기 • Generation Code (Code – Generate – All Code)

  43. CVI 시작하기 • 자동으로 기본 Code가 생성됨 (실행해 보기, Compile – Debug 버튼 사용) • 실행화면 • Callback 함수에 • QuitUserInterface(0); • 라는문장이 없으면 꺼지지 않음

  44. CVI 시작하기 • code 기본 구성 Start 버튼을 눌렀을 때 다음과 같은 명령을 수행함 • 주요함수 소개 • SetCtrlVal() : 어떤 패널의 컨트롤에 값을 입력할 때 사용(NUMERIC이나 TEXT창에 어떤 값을 입력할 때) • GetCtrlVal() : 어떤 컨트롤의 값을 내가 받고 싶은 변수로 가지고 올 때 사용(우리가 값을 받을 변수 앞에 & 기호를 사용) • SetCtrlAttribute() : 컨트롤의 속성을 바꾸고자 할 때(혹은 값을 바꾸고자 할 때) • QuitUserInterface() : 주요함수는 아니나 프로그램을 종료하고 싶을 때 쓰는 함수 • 이외에도 무수히 많은 함수들이 있고 사용됨 (Library 검색으로 함수를 찾을 수도 있음) 프로그램 창의 좌측 아래에 있음

  45. 실습 (소요시간 30분~60분) • Text 출력, Graph Control은 연구실 자료실에 CVI검색하여 LabWindows/CVI 기초(by 김건호)를 참고 할 것 • (거기 있는 예제 꼭 해볼 것) • 실습 (타이머를 이용한 식당 고르기 게임) 설명 Start 버튼: 타이머가 Enable되어 RINGGUAGE의 빨간 바늘이 정해준 시간 간격대로 돌기 시작함 Stop 버튼: 타이머가 Disable되어 빨간 바늘이 멈춤 RINGGUAGE: RING control에 해당 모양 있음 TEXT창: 걸린 식당에 해당하는 이야기가 맨 아래 text창에 출력됨

  46. 과제 • 간단한 계산기 만들기 메뉴 Bar도만들어 보기

  47. 파일 입·출력 • 예시 프로그램 (FFT 프로그램) • WIPS FASTMODE로 측정해 온 csv Raw data를 불러와서 주파수 분석함

  48. 파일 입·출력 • 오늘의 실습 (지각비 결산 프로그램)

  49. 파일 입·출력 • 사용한 함수 • If문: RINGGUAGE가 한 바퀴 돌았을 때 제일 처음 값으로 변수를 되돌릴 때 사용했음 • While문: 무한 루프를 돌게 하기 위해 사용 (예: while(1){ }) • FileSelectPopup(): CVI 제공 함수, 어떤 파일을 불러올 건지 popup 창이 뜸 • fopen():파일을 열 때 사용 • fclose(): 파일을 닫을 때 사용 • fscanf(): 파일을 읽을 때 사용 • strcmp(); 두 개의 문자열을 비교할 때 사용 • atoi(); 문자를 숫자로 바꿀 때 사용 • 사용 예시는 다음 장에…

  50. 파일 입·출력 • 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); • …

More Related