330 likes | 573 Vues
컴퓨터 계측 ë° ì‹¤ìŠµ ê°œ ìš”. ì˜ë‚¨ëŒ€í•™êµ 기계공학부. PC ì˜ ê¸°ë³¸ìž¥ì¹˜. PC ì˜ ìž‘ë™êµ¬ì¡°. ì»´í“¨í„°ì˜ ê¸°ë³¸êµ¬ì„±. CPU ì˜ êµ¬ì¡°. IBM-PC ì˜ ìž…ì¶œë ¥ 단ìž. Analog and Digital. Analog: ì¸¡ì •ì¹˜ì˜ ê°’ì´ ì—°ì†ì ì¸ í˜•íƒœ Digital: ë³€í™”ì˜ ìµœì†Œ í¬ê¸°ê°€ ì •í•´ì ¸ ìž‡ê³ ë³€í™”ì˜ í¬ê¸°ëŠ” 최소í¬ê¸°ì˜ ì •ìˆ˜ë°°ë§Œ 가능 Digital ì˜ ìž¥ë‹¨ì : Digital í™” ëœ ì´í›„ì—는 추가ì ì¸ noise ê°€ 없으나 , resolution ì´ ì œí•œì ìž„. ë””ì§€í„¸ì˜ ìž¥ì . ìž¡ìŒì„ ê±°ì˜ íƒ€ì§€ ì•ŠìŒ
E N D
컴퓨터 계측 및 실습개 요 영남대학교 기계공학부
Analog and Digital • Analog: 측정치의 값이 연속적인 형태 • Digital: 변화의 최소 크기가 정해져 잇고 변화의 크기는 최소크기의 정수배만 가능 • Digital의 장단점: Digital화 된 이후에는 추가적인 noise가 없으나, resolution이 제한적임
디지털의 장점 • 잡음을 거의 타지 않음 • 작동전압이 낮음 (5V 혹은 12V) • 자동 스케일링이 가능(scaling) • 다른 기기(혹은 컴퓨터)와의 연결이 용이 • 데이터의 처리(data reduction, filtering...)가 가능하다
커미조아 인터페이스보드 COMI-SD104 Multi-Function Board
기본 사양 • Bus BM PC Bus(32Bit PCI) • 크기 195 * 107 mm • 자원할당 Plug & Play 방식의 자동할당
입출력 채널 • 아날로그 입력 Differential 8 Channel, Single Ended 16 Channel • 아날로그 출력 2 Channel • 디지털 입력 8 Channel • 디지털 출력 8 Channel • 타이머 2 channel
A/D Conversion • Complete 12 bit A/D Conversion • A/D Converter : Burr Brown ADS7899 • Type of ADC : Successive approximation • A/D Channel : 16 Single Ended, 8 Differential • Input Voltage Range : 10 V, 5 V, 2, 1, 0 10V, 0 5V, 0 2V,0 1V • Resolution : 14 Bits, 1 in 16384 • Maximum Sampling Rate : 375 kHz • Streaming to Disk Rate : 375 kHz (Tested on PentiumⅢ 700MHz) • Input Impedance : 10 Mohm • A/D Trigger Mode : Programmable Timer, Software, External Trigger • Data Transfer : Programmed I/o, Interrupt, Block Mode • Channel Configuration : Uni polar/Bipolar, Gain, Channel, Channel No • FIFO Size : 4 Kbytes
D/A Conversion • D/A Converter : Burr Brown DAC7545 • D/A Channel : 2 Channel (for single DC Output) • Resolution : 12 Bits, 1 in 4096 • Setting time : 2usec • Output Voltage Range : 10 V • D/A Trigger Mode : Software • Data Transfer : Programmed I/O
Digital Input • TTL Compatible Input • Channel : 8 Channel • Voltage Level : Low(0~0.8 V), High(2V~) • Input Load : Low 0.5V(0.2 mA), High 2.7V(20 mA) • Data Transfer : Programmed I/O
Digital Output • TTL Compatible Output • Channel 8 Channel • Voltage Level Low(0~0.4 V), High(2.4V~) • Input Load Low 0.5V(0.2 mA), High 2.7V(0.4 mA) • Data Transfer Programmed I/O
Programmable Counter • COMI-SD Counter • Clock Input Channel 2 Channel • Resolution 32 bits • Gate Input • Software Reset • Real Time Clock
프로그램 작성 공통 사항 (1) • Comidas.h와 Comidas.cpp를 Include하기 • ComidasCommon.h, Comidas.h 그리고 Comidas.cpp 파일을 프로젝트가 있는 폴더에 복사한다. • Comidas.cpp 파일을 프로젝트에 추가한다. • Comidas.cpp 소스파일의 맨 처음 부분에 #include "stdafx.h" 구문을 추가한다. • COMI-SD104 보드를 제어하는 함수를 사용하는 소스파일에 • #include “Comidas.h” • 구문을 추가한다.
프로그램 작성 공통 사항 (2) • 디바이스 핸들 • 디바이스 핸들은 COMI-SD104를 제어하는 모든 함수의 파라미터로 사용되므로 전역변수 또는 메인 윈도우 클래스의 멤버 변수로 관리한다. • 일반적으로 다이얼로그 기반 프로그램인 경우 메인 다이얼로그 클래스(XXXXDlg)의 멤버변수로 선언한다. • class CASISTDlg : public CDialog • { • ………... • public: //user parameter • HANDLE m_hDevice; • ………... • };
프로그램 작성 공통 사항 (3-1) • 라이브러리 및 디바이스 로딩(Loading) • 프로그램 시작 부분에서 다음과 같은 함수를 수행하여 라이브러리 및 디바이스를 로드하여야 한다. • BOOL COMI_LoadDll(void) : 라이브러리를 로드한다. • HANDLE COMI_LoadDevice (COMIDAS_DEVID deviceID, ULONG instance) : 지정한 디바이스를 로드한다. • 일반적으로 다이얼로그 기반 프로그램인 경우에는 OnInitDialog()함수에서 라이브러리 및 디바이스 로딩을 수행하면된다.
프로그램 작성 공통 사항 (4-1) • 라이브러리 및 디바이스 언로딩(Unloading) • 프로그램 종료 부분에서 다음과 같은 함수를 수행하여 라이브러리 및 디바이스를 언로드하여야 한다. • void COMI_UnloadDll(void) : 라이브러리를 로드한다. • void COMI_UnloadDevice (HANDLE hDevice) : 지정한 디바이스를 언로드한다. • 일반적으로 다이얼로그 기반 프로그램인 경우에는 WM_CLOSE이벤트 핸들러인 OnClose()함수에서 라이브러리 및 디바이스 언로딩을 수행하면된다.
프로그램 작성 공통 사항 (4-2) ☞ OnClose() 함수 생성 및 작성 예
Digital Output 구동 프로그램 • LED, 7세그먼트, 스테핑 모터
기본함수 • SetTimer ( UINT nIDEvent, 10, NULL ) • OnTimer ( UINT nIDEvent ) • KillTimer ( UINT nIDEvent )
SetTimer ( 0, 10, NULL) • SetTimer 는 OnTimer, KillTimer 와 함께 사용되며 OnTimer 함수를 구동하는 함수이다. 여기서 첫번째 매개변수 0은 실행되는 Timer 번호, 10은 단위가 msec로 OnTimer 실행 간격을 의미한다. 즉 0번 Timer가 0.01초 마다 실행된다.
OnTimer ( UINT nIDEvent ) • nIDEvent는 Timer 번호를 의미한다. • SetTimer 함수가 한 개만 존재할 때는 nIDEvent는 0으로 인식하고 여러 개의 SetTimer 함수가 존재할 때는SetTimer 함수의 첫번째 매개변수 값을 받아 작업이 분기되어진다.
KillTimer ( 0 ) • KillTimer 함수의 매개변수는 Timer 번호(nIDEvent)를 의미한다. 여기에는 0 번 Timer를 지시하고 있다. 따라서 이 KillTimer 함수는 0 번 Timer를 끝낸다.