pc를 이용한 외부 기기 제어 - smart · pdf file4 visual basic.net의 시작 •...

153
1 PC이용한 외부 기기 제어 VisualStudio.NET - 송동혁 1

Upload: buiduong

Post on 12-Feb-2018

315 views

Category:

Documents


23 download

TRANSCRIPT

Page 1: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

1

PC를 이용한 외부 기기 제어

VisualStudio.NET - 송동혁

1

Page 2: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

2

목차

제1장 VisualBasic.NET 시작 - 기초 문법

제2장 VisualBasic.NET 시작 - Component 사용법

제3장 NI Measurement Studio를 이용한 데이터 획득

제4장 PC 제어용 보드 실습

2

Page 3: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

3

Visual Basic.NET의 시작

3

도구상자

오류목록

속성

폼 디자인

코드

메인메뉴

솔루션 탐색기

Page 4: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

4

Visual Basic.NET의 시작

• 메인메뉴 : VB.NET의 모든 메뉴

• 도구상자 : Component의 모임

• 폼 디자인 : 폼 양식을 직접 보면서 작업

• 코드 : 프로그램 소스 코드를 편집 작성

• 속성 : Component들의 속성을 설정

• 솔루션 탐색기 : 프로젝트 안의 폼, 이미지, 레포트 등을 관리

• 데이터 베이스 : 서버에 연결된 MSSQL DB 관리

4

Component : 객체 지향 언어에서의 최소 단위

객체 지향 언어 : 자주 사용하는 모듈을 하나의 객체로 묶어 라이브러리로 제공 되는 형식의 프로그램 언어

Page 5: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

5

제 1장 VisualBasic.NET의 시작 - 기초문법

5

Page 6: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

6

기본 문법 사용법 – 변수선언

설명 : 레지스터에 임의의 데이터 값을 넣는 것으로 레지스터의 이름을 정의하

여 사용 할 수 있다.

문법 : Dim 변수명 As 데이터 형식

참고 : MSDN / http://msdn.microsoft.com/ko-kr/library/47zceaw7.aspx

코드 :

Boolean 2진수

Byte 8비트 정수

Integer 32비트 정수

Long 64비트 정수

Single 32비트 실수

Double 64비트 실수

String 유니코드 문자

6

Page 7: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

7

기본 문법 사용법 – 연산자

1. 산술연산

산술 연산자는 더하기(+), 빼기(-), 곱하기(*), 나누기(/)를 하는 사칙 연산자와 나

머지(Mod), 몫(\), 지수승(^) 연산자가 있다.

2. 관계 연산자

관계 연산자는 두 피연산자를 조건에 따라 선택적으로 실행할 수 있도록 해준다.

= : 같다.

<> : 같지 않다.

< : 보다 작다.

<= : 작거나 같다.

> : 보다 크다.

>= : 크거나 같다.

Like : 두 문자열을 비교한다.

Is : 두 개체가 가리키는 변수가 동일한지 알아낸다.

7

Page 8: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

8

기본 문법 사용법 – 연산자

3. 논리 연산자

논리 연산자는 참과 거짓을 나타내는 True, False 를 갖는다.

좌변과 우변에 따라 OR, AND, XOR, EQV, IMP 의 논리에 의해 True, False 가

다르게 나타난다.

논리곱 : A And B : A 와 B가 모두 True일 때, True. 이것 이외는 False

논리합 : A Or B : A와 B가 모두 False 일 때, False. 이것 이외는 True

부정 : Not A : A가 True일 때는 False, A가 False일 때는 True

배타적 논리합 : A Xor B : A와 B가 모두 참이거나 거짓이 아닐 때는 True

배타적 논리곱 : A Eqv B : A와 B가 모두 참이거나 거짓이어야만 True

논리적 함축성 : A Imp B : A가 참이고 B가 거짓인 경우를 제외한 모든 경우는 True

8

Page 9: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

9

기본 문법 사용법 – 연산자

3. 연결자

연결 연산자는 문자열이나 수식을 연결하는 연산자로 '+' 와 '&'가 있다.

'+'는 문자열과 문자열을 연결할 경우에 이용하고 '&'는 두 수식을 연결할

경우에 이용한다.

4. 주석문

코드를 라인을 사용하지 않거나, 주석을 달때 프로그램에서 무시하는 라인을

만들 때 사용한다.

rem 또는 어퍼슬로피(‘)

Ex)

‘----------- 프로그램 시작

rem dim var as integer

‘ dim var as integer

9

Page 10: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

10

기초 문법 사용법 – MsgBox

설명 : 메시지 박스를 팝업 시킨다

문법 : MsgBox(“메시지 박스 팝업!”)

코드 : Form1_Load 이벤트

10

Page 11: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

11

기초 문법 사용법 – If

설명 : 가장 많이 사용하는 조건문으로 참일때, 거짓일때, 예외일때 사용함

문법 : If 조건 then

참 조건문

ElseIf

거짓 조건문1

Else

모든 조건 거짓문

End If

코드 :

11

Page 12: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

12

기본 문법 사용법 – Case

설명 : C의 Switch문과 흡사하며 조건문으로써 정의된 형식과 조건에 맞는 형만 실행

문법 : Select Case 검사값 코드 :

Case 비교식1

명령문1

Case 비교식2

명령문2

Case Else

명령문

End Select

12

Page 13: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

13

기본 문법 사용법 – for

설명 : 반복문으로써 시작과 끝 값의 범위를 지정하여 유한 반복 한다.

문법 : For 반복변수명 = 시작 To 끝 Step 스텝

조건문

Next

코드 :

13

Page 14: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

14

기본 문법 사용법 – While

설명 : 반복문으로써 조건이 True 일때 진입하여 False 때 나옴

문법 : While 조건

End While

코드 :

14

Page 15: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

15

기본 문법 사용법 – StreamWriter

설명 : 데이터 파일을 텍스트 파일로 저장한다.

코드 :

15

Page 16: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

16

기본 문법 사용법 – StreamReder

설명 : 텍스트 데이터 파일을 불러온다.

코드 :

16

Page 17: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

17

제 2장 VisualBasic.NET의 시작 - Component

17

Page 18: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

18

Component 사용법 - TextBox

설명 : 문자를 입력하거나 출력함

문법 : TextBox1.text = “입력 문자”

출력값 = TextBox1.text

코드 :

18

Page 19: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

19

Component 사용법 - Button

설명 : 이벤트를 발생할 때 사용하는 컴퍼넌트

문법 : Button.text = “버튼 텍스트 이름”

코드 : Button_Click 이벤트

19

Page 20: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

20

Component 사용법 – Label

설명 : 가장 많이 사용하는 컴포넌트로 폼 위에 텍스트를 표현함

문법 : Label1.text = “표현할 문자”

코드 :

20

Page 21: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

21

Component 사용법 – CheckBox

설명 : 설정에서 주로 사용되며 사용 유무 및

선택 시 많이 사용 됨

문법 : CheckBox.text = “체크박스 텍스트 이름”

코드 : CheckBox.CheckedChanged 이벤트

21

Page 22: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

22

Component 사용법 – ComboBox

설명 : 설정에서 주로 사용되며 사용 유무 및

선택 시 많이 사용 됨

문법 : ComboBox.Items.Add(“아이템 추가 1”)

코드 :

ComboBox.SelectedIndexChanged이벤트

22

Page 23: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

23

Component 사용법 – ContextMenuStrip

설명 : 실행 중 오른쪽 마우스로 빠른 메뉴

를 실행함

코드 :

23

Page 24: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

24

Component 사용법 – ListBox

설명 : 데이터를 가지고 있다가 선택된 메뉴를 클릭하면 클리간 인데스 번호가 출력 됩니다.

코드 :

24

Page 25: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

25

Component 사용법 – MenuStrip

설명 : 메인 메뉴를 만든다

코드 :

25

Page 26: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

26

Component 사용법 – PictureBox

설명 : 이미지를 넣을 수 있는 컨테이너를 작성한다

문법 : PictureBox1.Image = _

Image.FromFile _

(“드라이브명:\경로명\파일명.확장자명”)

코드 :

26

Page 27: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

27

Component 사용법 – ProgressBar

설명 : 시간이 소요되는 경우 소요 시간 상태를 알려 준다.

문법 : ProgressBar1.Value = 퍼센트(숫자;100%)

코드 :

27

Page 28: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

28

Component 사용법 – Timer

설명 : 일정한 시간마다 반복되는 타임 이벤트를 발생

코드 :

28

Page 29: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

29

Component 사용법 – SerialPort

설명 : 산업용 기기에서 가장 오랜 시간 많이 사용하는 직렬 통신 프로토클 RS232, 485, 422, VISA, GPIB 등의 형식으로 사용 할 수 있다

폼 디자인:

29

Page 30: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

30

Component 사용법 – SerialPort

코드 :

30

Page 31: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

31

Component 사용법 – SerialPort

코드 :

31

Page 32: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

32

제 3장 NI Mstudio를 이용한 데이터 획득

Page 33: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

33

목차

제 2부 GUI와 Analysis 라이브러리 • M.Studio의 Graphic User Interface 라이브러리 • M.Studio의 Analysis 라이브러리

제 1부 데이터 수집 • MAX(Measurement and Automation eXplorer) • ANSI-C 기반 DAQ 프로그래밍 시작 • NI Measurement Studio란? • NI Measurement Studio 를 이용한 데이터 수집

Page 34: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

34

시스템 환경

Windows 7 Ultimate 64bit OS

Visual Studio 2010 Professional

Measurement Studio 2010 for Visual Studio 2010

Page 35: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

35

제 1 부 데이터 수집

• MAX(Measurement and Automation eXplorer)란?

• ANSI-C 기반 DAQ 프로그래밍 시작

• NI Measurement Studio란?

• NI Measurement Studio 를 이용한 데이터 수집

Page 36: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

36

MAX(NI Measurement & Automation eXplore)드라이버

National Instrument 드라이버 유틸리티

Measurement & Automation eXplore로 쉽게 NI-DAQmx 또는 MAX™라고 칭함

Page 37: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

37

장치 관리자 익스플로러

설정 채널 모니터링

데이터 설정

MAX (NI Measurement & Automation eXplore)드라이버

Page 38: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

38

MAX : NI 하드웨어 설정 및 관리 유틸리티

1. 채널 및 태스크 관리 - 물리적 채널 및 태스크 관리 ex) 온도(TC, RTD), 압력, 로드셀, 진동 등

2. 디바이스와 인터페이스 - 컴퓨터에 연결된 하드웨어 인식 및 테스트 - 장비 시뮬레이션을 통한 하드웨어 없이 개발 가능

3. 스케일 - 센서의 고유 특성에 의한 배율 및 커브 스케일로 설정

ex) aX + b = Y, aX 4̂ + bX 3̂ + cX 2̂ + dX 1̂ + e = Y, Log Scale 등

4. 소프트웨어 - NI 소프트웨어 및 드라이버가 설치된 것을 확인

5. 원격 시스템 - 외부로 연결된 장치를 자동 검색하여 장치 등록

ex) Compaq RIO by Network, GPIB, VISA 등

NI 제품의 HW/SW의 설치 정보 관리

Page 39: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

39

NI-DAQmx 태스크

1. NI 하드웨어의 채널 설정 - 채널의 특성에 맞게 간단히 설정하여 사용함 - 신호 입력의 범위 및 스케일 이후의 단위 지정 - 센서의 타입 및 구성 설정 - 타이밍을 설정하여 데이터 샘플링 설정 - 트리거링 설정 - 고급 타이밍 설정 - 데이터 로깅 설정

2. 연결 다이어그램 - NI 하드웨어로부터 온 신호에 터미널 블록을 추가하여 채널의 위치 및 연결 방법을 상세히 설명

채널에 연결된 센서 타입 및 측정 속도, 범위 설정 하드웨어 결선 방법 다이어그램 제공

Page 40: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

40

NI- DAQmx 태스크 채널 모니터링

1. 태스크 생성 채널 모니터링 - 태스크에서 생성한 채널을 직접 실행하여 데이터 의 상태를 모니터링 > 그래프 모니터링, 테이블 모이터링 - 채널 추가 및 채널 삭제 기능 - 자동 스케일 사용

설정이 완료된 장비의 채널을 테스트

Page 41: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

41

MAX : NI-DAQmx 장비 시뮬레이션

NI 하드웨어 없이 시뮬레이션 된 장비로 프로젝트 시작

1. 디바이스와 인터페이스 마우스 우 클릭! 2. 새로 생성

Page 42: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

42

MAX : NI-DAQmx 장비 시뮬레이션

1. 시뮬레이션 NI-DAQmx 디바이스 선택

2. 마침 클릭!

Page 43: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

43

MAX : NI-DAQmx 장비 시뮬레이션

1. NI–M 시리즈 DAQ 선택 2. PCI 타입의 6221 선택 3. 확인 4. 가상 드라이버 생성 완료!

Page 44: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

44

Demo

MAX : NI-DAQmx 장비 시뮬레이션 생성

Page 45: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

45

예제의 활용 : NI-DAQmx Visual C++ 예제

C:\Users\Public\Documents\National Instruments\NI-DAQ\예제\DAQmx ANSI C

Page 46: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

46

예제의 활용 : NI-DAQmx Visual C++ 예제

\DAQmx ANSI C\Analog In\Measure Voltage\Cont Acq-Int Clk\VC_ContAcq_IntClk.dsp

Page 47: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

47

예제의 활용 : DAQmx Visual C++ 예제

\DAQmx ANSI C\Analog In\Measure Voltage\Cont Acq-Int Clk\VC_ContAcq_IntClk.dsp

Page 48: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

48

• 이해하기 어려운 복잡한 DAQ 코딩?

• GUI로 인한 개발 시간 증가?

• Analysis의 어려운 알고리즘 구매?

• 텍스트 기반 언어로 구축된 기존 시스템 증설?

프로그래머의 추가적인 고민

Visual Studio용 통합 툴 패키지

Measurement Studio

Page 49: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

49

NI Measurement Studio™

National Instrument 텍스트 기반 종합 툴 패키기

NI Measurement Studio™로 쉽게 MStudio™ 또는 M.Studio™라고 칭함

Page 50: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

50

Measurement Studio란 무엇인가?

• Measurement Studio는 Visual Studio .NET 프로그래머들을 위한 측정 및 자동화 종합 툴 패키지

• NI 하드웨어와 MS Visual Studio를 연결해주는 라이브러리 집합체

– DAQ 어시스턴트

– .NET GUI 컨트롤

– 하드웨어 인터페이스

– 고급 분석 라이브러리

– 측정 데이터 네트워킹

Page 51: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

51

Measurement Studio 패키지 상품

GOOD

BETTER

BEST

Page 52: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

52

M.Studio 시스템 개발 프로젝트의 구조

데이터 수집 프로젝트

소프트웨어

MS Visual Studio

+

NI Mstudio 개발 툴

NI-DAQmx 드라이버

+

가상 채널 설정

NI DAQ 하드웨어

+

물리적 신호

Page 53: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

53

NI-DAQmx 읽기와 쓰기 과정

태스크 닫기

데이터 읽기

태스크 시작

채널 환경설정

태스크 생성

태스크 닫기

태스크 시작

데이터 쓰기

채널 환경설정

태스크 생성 데이터 읽기와 쓰기의 5가지 단계

Page 54: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

54

NI-DAQmx 간단한 코드

태스크

생성

• Dim mydaqtask As New Task()

채널 환경

설정

• mydaqtask.AIChannels.CreateVoltageChannel("Dev1/ai0", "", AITerminalConfi

guration.Differential, 0, 10, AIVoltageUnits.Volts)

태스크

시작

• Dim reader As New AnalogSingleChannelReader(mydaqtask.Stream)

• mydaqtask.Start()

데이터

읽기

• Dim voltage As Double = reader.ReadSingleSample()

태스크

닫기

• mydaqtask.Dispose()

Page 55: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

55

MicroSoft Visual Studio 언어 비교

CS.Net

VB.Net

Page 57: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

57

M.Studio 예제 탐색 및 활용

C:\Users\Public\Documents\National Instruments\MStudioVS2010\DotNET\Examples

Page 58: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

58

M.Studio for VB.Net 의 활용방법

1. MicroSoft VisualStudio 2010에 NI Measurement Studio 2010이 설치 되면 Measurement Studio 탭이 생성 됨 2. 파일 -> 새 프로젝트 클릭!

Page 59: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

59

M.Studio for VB.Net 의 활용방법

1. 언어 선택후 Measurement Studio 탭 클릭 2. NI DAQ Windows Application 클릭 3. 프로젝트 이름 작성(SimpleDAQ2) 4. 확인 클릭!

Page 60: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

60

M.Studio for VB.Net 의 활용방법

1. Create a new project task 선택 2. Finish 클릭!

Page 61: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

61

M.Studio for VB.Net 의 활용방법 : DAQ 컴포넌트

1. Create a new project task - DAQmx task를 생성 하지 않고 직접 task를

Visual Studio에서 생성. 2. Create a new MAX task. - DAQmx task에 생성하여 Visual Studio에서

호출 하여 실행. 3. Create a reference to MAX task - 이미 DAQmx에 생성한 task를 불러옴 4. Copy a MAX task to a project task - DAQmx에서 생성한 task를 복사하여 사용 5. Copy an exsting .mxb - DAQmx에서 생성된 .mxb파일을 불러와 복

사하여 사용

Page 62: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

62

M.Studio for VB.Net 의 활용방법

1. 신호수집 클릭 2. 아날로그 입력 클릭 3. 전압 클릭

Page 63: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

63

M.Studio for VB.Net 의 활용방법

1. 디바이스 장치 선택 2. 디바이스 채널 선택 3. 마침 클릭!!

Page 64: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

64

M.Studio for VB.Net 의 활용방법

1. 채널 범위 및 단위설정 2. 데이터 수집 샘플링 및 속도 설정 3. 수집 모드 설정 4. 실행하여 데이터 획득 모니터링 확인 5. Finish 클릭!!

Page 65: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

65

M.Studio for VB.Net 의 활용방법

1. 데이터 획득 옵션 확인 2. From 디자인 및 Code 확인 3. Finish 클릭!

Page 66: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

66

M.Studio for VB.Net 의 활용방법

1. 디버깅 시작(F5) 클릭! 2. 데이터 확인

Page 67: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

67

M.Studio for VB.Net 의 활용방법 : 데이터 호출

1. acquireData는 복합 배열 2. acquireData에서의 RawData 추출 방법

Page 68: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

68

M.Studio for VB.Net 의 활용방법 : 데이터 호출

1. Data라는 배열 변수를 생성하여 acquired에 GetRawData 함수 2. acquiredData(채널 배열 값)을 통해 각 채널 데이터 값을 불러옴

Page 69: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

69

M.Studio for VB.Net 의 활용방법 : 데이터 호출

1. acquiredData의 0번 채널 데이터가 Data의 배열에 들어 있는 것을 확인 할 수 있다.

Page 70: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

70

Programming Demo

Page 71: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

71

NI cDAQ 9178 로부터 데이터 수집

구성품 1. NI cDAQ 9178 외 DIO, AI, AO, TC 모듈 2. FLUKE 725 MultiFuction Process Calibrator

목적 FLUKE 725 Calibrator에서의 신호를 cDAQ으로 받아 MicroSoft 사의 Visual Studio 2010에서 NI Measurement Studio 2010 Tool kit을 이용하여 데이터를 모니터링하고 저장한다.

Page 72: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

72

NI cDAQ 9178 로부터 데이터 수집

1. 디바이스와 인터페이스에서 장비 연결후 NI cDAQ-9178 인식 확인 2. 테스트 모듈을 선택

Page 73: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

73

NI cDAQ 9178 로부터 데이터 수집

1. 셀프 테스트

Page 74: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

74

NI cDAQ 9178 로부터 데이터 수집

테스트 패널 클릭

Page 75: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

75

NI cDAQ 9178 로부터 데이터 수집

1. 채널 확인Mod4/ai0 2. 열전쌍 타입 3. 단위 확인 4. 시작

Page 76: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

76

NI cDAQ 9178 로부터 데이터 수집

교정기(FLUKE 725)를 통해 수집 된 전압 값 확인

Page 77: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

77

NI cDAQ 9178 로부터 데이터 수집

1. 데이터 수집 데모 파일 불러오기

2. DaqTask.mxb 더블 클릭!

Page 78: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

78

NI cDAQ 9178 로부터 데이터 수집

1. 설정->전압->마우스 오른쪽 클릭

2. 물리적인 채널 변경… 클릭!

Page 79: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

79

NI cDAQ 9178 로부터 데이터 수집

1. cDAQ1Mod4 -> ai0 2. 확인!

Page 80: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

80

NI cDAQ 9178 로부터 데이터 수집

1. 실행 2. 데이터 값 확인 3. 데이터 저장

Page 81: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

81

NI cDAQ 9178 로부터 데이터 수집

1. 브레이크 포인트 설정

2. 디버깅 시작 3. 데이터 확인 4. 디버깅 해제 5. 계속(F5)

Page 82: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

82

Programming Demo

M.Studio를 이용한 c데이터 수집

Page 83: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

83

제 2부 GUI와 Analysis 라이브러리

• MStudio의 Graphic User Interface 라이브러리

• MStudio의 Analysis 라이브러리

Page 84: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

84

NI Measurement Studio™

GUI 라이브러리

Page 85: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

85

M.Studio Graphic User Interface Library

• 그래프

• 버튼

• 조절기

• 슬라이더

• 게이지

• 탱크

• 다이얼

• LED

Page 86: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

86

M.Studio GUI(Knob and Slide)

1. Knob(조절기) - 도구상자 -> Measurement Studio -> Knob선택 - 폼 선택 ->드래그하여 폼 위에 라이브러리 생성

2. 슬라이더 - 도구상자 -> Measurement Studio -> Slider선택 - 폼 선택 ->드래그하여 폼 위에 라이브러리 생성

2. 소스코드

Page 87: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

87

M.Studio GUI(Knob 설정)

1. Name - 조절기(Knob) 객체의 고유 이름

2. Dial Color - 다이얼의 색 변경(윈도우 색 팔레트)

3. Knob Style - 다이얼의 스타일 변경(5가지)

4. Pointer Color - 다이얼의 표시 부분 색 변경

5. Value - 다이얼의 초기값 설정

Page 88: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

88

M.Studio GUI(Knob 설정)

6. Coercion Mode - None : 다이얼 값의 구분 없이 부드럽게 값을 선택하여 사용 - ToDivisions : 일정 구간 다이얼의 구분이 생성됨 - ToInterval : 특정 구간 선택하여 사용자가 다이얼의 구분을 만듬

7. Interaction Mode - DragPointer : 다이얼을 마우스로 드래그 하여 값을 설정 - EditRange : 다이얼의 범위를 키보드로 변경 가능 모드 - SnobPointer : 값을 클릭하여 선택 - WrapPointer : 랩포인터는 360회전시 최소/최대 값에서 멈춤

8. Range - 다이얼의 최소/최대값 설정

Page 89: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

89

M.Studio GUI(Knob 설정)

9. Edit Range Fill… - 특정 구간의 범위를 만들때 사용 - 색으로 한계 구간을 표시할때 사용

10. Custom Division… - 특정 구간을 표시 - 문자를 함께 사용하여 표시함

11. Auto Format… - 일반적인 사용으로 5가지의 타입으로 선택하여 사용함

Page 90: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

90

Programming Demo

조절기와 슬라이더의 활용

Page 91: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

91

M.Studio GUI(Numeric and Tank)

소스 코드

Page 92: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

92

M.Studio GUI(Numeric and Tank)

TANK GUI 간단 설명 1. Fill Style - 10가지 타입의 내용물 디자인 선택

2. Fill color - 다양한 종류의 색을 지원

3. Tank Style - 3가지 타입의 디자인 선택

4. Coercion Mode - 컨트롤 방법 설정

5. Interaction Mode - 컨트롤 및 인디게이터 설정

6. Range - 최소에서 최대값 범위 설정

Page 93: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

93

M.Studio GUI(Numeric and Tank)

NumericEdit GUI 간단 설명 1. Coercion Interval - 증가 및 감소 값 지정

2. Interaction Mode - Buttons : 입력창 우측에 마우스를 이용하여 값을 클릭하여 증가/

감소 - Text : 키보드를 이용한 숫자값 입력을 통한 증가/감소 - Arrow(Key) : 키보드의 화살표 버튼을 이용하여 값을 증가/감소

2. Source - NI 객체 컨트롤을 선정하여 컨트롤러의 숫자 기입 방법으로

객체를 컨트롤

Page 94: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

94

Programming Demo

입력기와 탱크의 활용

Page 95: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

95

M.Studio GUI(Graph & Legend) 1. 그래프 - 도구상자 -> Measurement Studio -> WaveformGraph 선택 - 폼 선택 ->드래그하여 폼 위에 라이브러리 생성 - 코드 선택 -> 코드작성 Ex) - WaveformGraph1.PlotYAppend(데이터 값) : y축 값 이어 쓰기 - WaveformGraph1.PlotY (데이터 값) : y축 값 쓰기 - WaveformGraph1.PlotXAppend(데이터 값) : x축 값 이어 쓰기 - WaveformGraph1.PlotX (데이터 값) : x축 값 쓰기 - WaveformGraph1.PlotX (배열 값) : 배열에 있는 X값 전체 쓰기

2. Legend - 도구상자 -> Measurement Studio -> Legend선택 - 폼 선택 ->드래그하여 폼 위에 라이브러리 생성 - Legend작업 -> Source 선택 -> WaveformGraph1 선택

Page 96: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

96

M.Studio GUI(Graph & Legend)

WaveformGraph 설명 1. Name - 그래프 객체의 이름

2. Caption - 그래프 상단의 그래프 이름

3. History Capacity - 그래프 플롯의 데이터를 메모리에 상주시키는데 필요한 샘플링 데이터의 수 설정

4. Line Color - 기본 플롯(Plot)의 라인 색상 선택

5. Line Style - 6가지 기본 플롯 라인의 스타일 설정

객체 이름 및 모드설정

Plot 설정

X축 설정

Y축 설정

기타 설정

Page 97: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

97

M.Studio GUI(Graph & Legend) 6. Point Color - 플롯 라인의 각 포인트 색 설정

7. Point Style - 16가지 플롯 포인트 설정

8. Edit Plots … - 플롯 추가 / 삭제 설정

Page 98: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

98

M.Studio GUI(Graph & Legend)

9. XAxis Caption - X축 이름 설정

10. Interaction Mode - Edit range : X축 및 Y축을 클릭하여 범위를 수정 할 수 있는 모드

11. Label Format - 데이터 값의 숫자 형식 설정

12. Xaxis Mode 7가지의 그래프 모드 설정 - Fixed : X축 고정 - AutoScaleLoose : 데이터 흐름 자동 레인지 설정 - ScopeChat : 데이터 History 만큼 가득 찼을때 화면을 지우고 다시 그림 - StripChart : 데이터 History의 신 데이터 1개를 쓰고 구 데이터 1개를 삭제함 - AutoScaleVisibleLoose : History 버퍼의 데이터를 기준으로 최소 최대를 자동 설정

13. Edit Xaxes… - 가로축 Range 추가 / 삭제 / 편집 / 설정

Page 99: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

99

M.Studio GUI(Graph & Legend) 14. Edit Cursor… - 그래프 내부에 커서를 표시 설정 / 편집 / 추가 / 삭제

15. Edit Annotation… - 그래프 내부에 메모를 표시 설정 / 편집 / 추가 / 삭제

16. Auto Format… - 랜덤 그래프 스타일 15가지 제공

17. Create Tool Strip… - InteractionMode, Cursors, Annotations 를 도구모음으로 제공

Page 100: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

100

M.Studio GUI(Graph & Legend)

1. Name - 범주 객체의 이름

2. Border - 범주 객체의 외곽선 스타일

3. Item Size - 범주 아이콘의 크기 설정

4. Vertical Scroll Mode / Horizontal Scroll Mode - 가로 / 세로의 스크롤바 사용 유무 설정

5. Scroll Bar Style - 스크롤바 스타일

6. Scroll Bar Color - 스크롤바 색상 설정

Page 101: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

101

M.Studio GUI(Graph & Legend) Legend 간단 설명(Legend Edit Items) 1. Name - 범주 객체의 이름 설정 2. Source - NI 그래프 플롯 선택

3. Text - 플롯 데이터의 이름

4. Visible - 플롯을 그래프 화면에 표시 유무 설정

Page 102: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

102

Programming Demo

그래프와 범례의 활용

Page 103: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

103

M.Studio GUI(기타)

분포도 그래프 ScatterGraph

디지털 그래프 DigitalWaveformGraph

복소수 그래프 ComplexGraph

광도 그래프 IntensityGraph

Page 104: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

104

M.Studio GUI(기타)

게이지 미터계

사각 LED 토글 스위

치 원형 LED 온도계

Page 105: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

105

NI Measurement Studio

Analysis 라이브러리

Page 107: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

107

M.Studio Analysis(Signal Generator)

• 신호 타입

• 신호 파라미터

Page 109: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

109

Filter Analysis 1. 필터의 종류 - Lowpass - Highpass - Bandpass - Bandstop

2. 알고리즘 - Elliptic - Bessel - Butterworth - chebyshev - Inv Chebyshev

M.Studio Analysis(Filter and FFT)

Page 111: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

111

제 4 장 PC 제어용 실습 보드

Page 112: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

112

실습장치 목적 및 개요

개발 장치를 활용한 PC 응용 교육분야

시스템 구성

아날로그 입력 예제

디지털 입력 예제

디지털 출력 예제

카운터 출력 예제

카운터 입력 예제

카운터 입출력 예제 - 모터 RPM 제어

통신 기반 디지털 센서 데이터 입력

통신 기반 DC 서보 모터 제어

목차

Page 113: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

113

실습 장치의 목적

• 최근 산업현장에 폭넓게 보급되고 있는 PC 기반의 계측/제어/모니터링 시스템을 개발할 수

있는 엔지니어를 양성하기 위한 교육용 실습 활용

실습장치 개요

• 다양한 프로그램언어 (LabVIEW, C, Basic 등)를 기반으로

구동가능한 다기능 계측보드를 기반으로 하여 다양한

센서 및 엑츄에이터를 연동하여 학습자가 편리하게

계측 및 제어의 원리를 교육할 수 있도록 하는 장치

제안 실습장치 목적 및 개요

Page 114: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

114

PC 용 프로그램을 기반으로 한 계측/모니터링/제어 분야 교육

개발장치를 활용한 PC 응용 교육 분야

측정

분석

디스플레이

제어

Page 115: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

115

통합 계측/제어 실습장치

하드웨어 구성

Multi functional DAQ Board

Terminal Block

으로

+

센서 및 엑츄에이터

센서 및 엑츄에이터, 인디케이터 설치용 전용 PCB

전용 케이스

Page 116: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

116

시스템 구성

구성품 : 센서/구동기 실습장치 (1ea) 다기능 계측보드 + 터미널 블록 (1ea) 케이블 및 센서 보관함 (1ea)

센서/구동기실습장치 케이블 및 센서 보관함 터미널 블록 + 다기능보드

Page 117: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

117

다기능 계측 보드 : NI USB 6221

시스템 구성

Page 118: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

118

장비스팩

Page 119: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

119

USB 6221 + Terminal Block

USB 6221 상판에 센서/구동기 실습장치와 연결할 수 있는 터미널 블록 설치

시스템 구성

Page 120: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

120

시스템 구성

터미널 블록 사양

Page 121: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

121

센서/구동기 실습장치

시스템 구성

Page 122: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

122

시스템 구성

센서/구동기 실습장치 세부 사양 (1)

Page 123: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

123

시스템 구성

센서/구동기 실습장치 세부 사양 (2)

Page 124: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

124

시스템 구성

센서/구동기 실습장치 세부 사양 (3)

Page 125: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

125

센서/구동기 실습장치

시스템 구성

가속도센서 아날로그 출력단자

가속도센서 RS232c 출력단자

마이크로프로세서 (디지털 센서화)

통신기반 DC 서보모터

엔코더

DC 모터

포토센서

(LED, 세그먼트)

스위치류

온도센서 출력단자

디지털 단다재

DC모터 드라이버

Page 126: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

126

케이블 및 센서 보관함

시스템 구성

Page 127: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

127

센서 및 케이블 보관함 사양

시스템 구성

센서 및 전원 케이블은 본 항목에 포함되지 않으나 보관시에는 동일하게 보관하도록 제작되었음

Page 128: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

128

케이블 및 센서 보관함 – 구성(1)

시스템 구성

Page 129: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

129

케이블 및 센서 보관함 – 구성 (2)

시스템 구성

Page 130: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

130

가속도 센서

아날로그 입력 - 예제

3축 가속도 센서를 이용한 초소형 Evaluation 보드 Freescale 사(구 모토로라)의 MMA7260Q 3축 센서 를 필터와 함께 설계됨 3.3V 전원만 인가하면 추가적인 회로 없이 가속도 센서를 동작 시킬 수 있음, 외관 크기 20 X 10 mm

Page 131: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

131

가속도 센서 연결

아날로그 입력 - 예제

Page 132: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

132

아날로그 입력 케이블 연결 (BNC 케이블 연결)

아날로그 입력 - 예제

Page 133: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

133

프로그램

아날로그 입력 - 예제

Page 134: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

134

온도센서

아날로그 입력 예제 (2)

Page 135: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

135

온도센서 데이터 측정 – 온도센서 연결

Gain : 32.394, Offset : -58.966

아날로그 입력 예제 (2)

Page 136: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

136

온도 센서 컨디션 설정

136

아날로그 입력 예제 (2)

Page 137: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

137

포토센서

디지털 입력 – 예제

포토센서란?

* 원칩 포토 IC 채용으로 3.7mm 초박형 사이즈 실현 (W13 X H19 X L3.7mm : 투과형), (W13 x H24 x L3.7mm : 반사형) * BGS 방식을 채용하여 검출 시 배경 물체의 영향을 최소화 (BGS 반사형) * 적색 LED 가시광원을 적용하여 검출 spot의 위치 확인 가능 * IP67의 보호구조 실현 (IEC 규격) * 검출 물체의 색상, 재질에 따른 오차범위 최소화로 안정적인 검출 실현 * 출력 단락 과전류 보호회로, 전원 역접속 보호회로 내장

Page 138: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

138

포토센서 연결

디지털 입력 – 예제

Page 139: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

139

포토센서 연결

- 우측 디자인

코드 :

디지털 입력 – 예제

Page 140: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

140

DC 모터

카운터 출력 - 예제

Brush 타입의 DC 모터로서 전압의 크기에 따라 모터의 회전속도가 변환된다. 일반적인 컨트롤러에서는 높은 Power의 전압을 제공하지 않으므로 모터 드라이버를 중간에 사용하고 PWM(Pulse with Modulation) 신호를 이용해 속도제어를 수행해본다.

Page 141: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

141

DC 모터 연결

카운터 출력 - 예제

Page 142: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

142

엔코더

카운터 입력 - 예제

엔코더는 회전형, 직선형 사각파, 사인파형 출력형 인크리멘탈형, 절대형으로 크게 구분할 수 있다. 각각의 용어가 의미하는 바는 무엇일까?

센서 내부에 설치된 디스크 패턴에서 발생하는 펄스열(Pulse Train)의 신호차를 이용하여 회전각 또는 속도를 추출해 낼수 있는 센서임.. 적용 센서 : 5V, 1000 ppr

Page 143: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

143

엔코더 연결하기

카운터 입력 - 예제

Page 144: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

144

모터 RPM 제어 – 배선(연결)

카운터 입출력 예제

모터

풀리 – 1:2

엔코더

Page 145: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

145

모터 RPM 제어 – 배선(연결)

카운터 입출력 예제

Page 146: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

146

모터 RPM 제어

카운터 입출력 예제

Page 147: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

147

참고 – Control ??

Page 148: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

148

참고 – Control ?

Page 149: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

149

참고 – Control ?

Page 150: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

150

Page 151: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

151

아날로그 센서의 디지털 센서화 :

가속도 센서 AD Converter Microprocessor Communication

통신 기반 데이터 측정

Page 152: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

152

가속도 센서 연결

통신기반 데이터 측정

Page 153: PC를 이용한 외부 기기 제어 - SMART · PDF file4 Visual Basic.NET의 시작 • 메인메뉴 : VB.NET의 모든 메뉴 • 도구상자 : Component의 모임 • 폼 디자인

153

통신 기반 – 구동기 제어

DC Servo Motor 제어