2006 전자파측정클럽워크샵 교정자동화및 전자파분야적용사례 www.korearental.co.kr
Contents Programming Language Excel VBA Programming - 모듈추가방법 - Sheet에컨트롤추가방법 - 사용자정의폼의추가방법 - 프로그램작성예제 - Excel Cell 지정방식 (Range, Cells) -VBA Tip Application PASCAL 소개
Programming Language Visual C++ Visual Basic LabVIEW Measurement Automation VEE Delpai Etc.
Excel VBA Programming 프로그램작성 드라이버설치 GPIB Interface Card Driver Install - National Instrument -Agilent 모듈추가 Excel File Open VBA Open(Alt + F11) Niglobal.bas 와 Vbib-32.bas 추가 사용자정의폼추가 Sheet 에컨트롤추가함수사용 - ilonl() -ilwrt() - ilrd() - illoc() -Etc.
모듈추가방법 프로젝트탐색창에서마우스우클릭 Note 정상적인설치시 Module 경로 C:\Program Files\National Instruments\NI-488.2\Languages\Visual Basic
Sheet 에컨트롤추가방법 도구모음에서마우스우클릭후 Visual Basic 도구모음활성화 Visual Basic 도구모음에서필요한컨트롤선택 Sheet 에각종컨트롤을추가한예제
사용자정의폼의추가방법 프로젝트탐색창에서마우스우클릭 사용자정의폼을추가한예제
프로그램작성예제 (1/9) Excel 에서 Show 버튼을클릭하면 Instrument ID 라는창이나타나고 조회 버튼을클릭하면 GPIB 에연결된장비의 ID 값을읽어오기
프로그램작성예제 (2/9) 새엑셀파일에서 Visual Basic 도구모음활성화 Visual Basic 도구모음 디자인모드 컨트롤도구모음 Visual Basic Editor 컨트롤도구모음
프로그램작성예제 (3/9) 컨트롤도구모음에있는명령버튼을선택하여다음과같이 Excel Sheet 에명령버튼을추가 명령버튼위에서마우스우클릭하여 속성 (P) 을선택
프로그램작성예제 (4/9) 속성창에서다음과같이속성값을변경 번호 타입 속성 이름 Caption 1 명령단추 CmdShow Show 변경전 변경후
프로그램작성예제 (5/9) Alt + F11 버튼을눌러서 VBA 를실행 왼쪽의프로젝트창에서마우스우클릭하여사용자정의폼을삽입
프로그램작성예제 (6/9) 다음과같이사용자정의폼을작성하고각각의컨트롤에대하여속성값을변경 4 5 3 1 2 6 번호 1 2 3 4 타입폼 Label Label 텍스트상자 속성이름 UserForm1 Label1 Label2 txtcommand Caption Instrument ID GPIB Command ID Information 7 5 텍스트상자 txtid 6 명령단추 cmdrun 조회 7 명령단추 cmdexit 종료
프로그램작성예제 (7/9) Sheet1(Sheet1) 을더블클릭하여편집창을활성화한후다음과같이프로그램입력 Option Explicit Const BDINDEX = 0 ' Board Index Const PRIMARY_ADDR_OF_DMM = 1 ' Primary address of device Const NO_SECONDARY_ADDR = 0 ' Secondary address of device Const TIMEOUT = T10s ' Timeout value = 10 seconds Const EOTMODE = 1 ' Enable the END message Const EOSMODE = 0 ' Disable the EOS mode Const ARRAYSIZE = 1024 ' Size of read buffer Dim ErrMsg As String * 100 Dim Dev As Integer Dim ErrorMnemonic Dim ValueStr As String * ARRAYSIZE Dim Response As Integer Private Sub GPIBCleanup(msg$) ErrorMnemonic = Array("EDVR", "ECIC", "ENOL", "EADR", "EARG", _ "ESAC", "EABO", "ENEB", "EDMA", "", _ "EOIP", "ECAP", "EFSO", "", "EBUS", _ "ESTB", "ESRQ", "", "", "", "ETAB") ErrMsg$ = msg$ & Chr(13) & "ibsta = &H" & Hex(ibsta) & Chr(13) _ & "iberr = " & iberr & " <" & ErrorMnemonic(iberr) & ">" MsgBox ErrMsg$, vbcritical, "Error" ilonl Dev%, 0 End End Sub
프로그램작성예제 (8/9) Private Sub Form_Load() Dev% = ildev(bdindex, PRIMARY_ADDR_OF_DMM, NO_SECONDARY_ADDR, TIMEOUT, EOTMODE, EOSMODE) If (ibsta And EERR) Then ErrMsg = "Unable to open device" & Chr(13) & "ibsta = &H" & Chr(13) & Hex(ibsta) & "iberr = " & iberr MsgBox ErrMsg, vbcritical, "Error" End End If ilclr Dev% If (ibsta And EERR) Then Call GPIBCleanup("Unable to clear device") txtcommand.text = "*IDN?" End Sub Private Sub cmdrun_click() Dim DisplayStr As String ilwrt Dev%, txtcommand.text, Len(txtCommand.Text) If (ibsta And EERR) Then Call GPIBCleanup("Unable to write to device") ilrd Dev%, ValueStr, Len(ValueStr) If (ibsta And EERR) Then Call GPIBCleanup("Unable to read from device") DisplayStr = Left$(ValueStr, ibcntl - 1) txtid.text = DisplayStr End Sub Private Sub CmdExit_Click() ilonl Dev%, 0 End End Sub
프로그램작성예제 (9/9) Show 버튼을더블클릭하여 VBA 편집창을활성화시킨후다음의프로그램을작성 Private Sub CmdShow_Click() UserForm1.Show End Sub VBA 편집모드를 OFF 한후실행 VBA 편집모드 ON VBA 편집모드 OFF 실행결과화면
Excel Cell 지정방식 (Range) Calibration Results 라는 Sheet 의특정셀에데이터입력하기 Sheets("Calibration Results").Range( Cell Address ).value = strreadingdata Cell Address 예제 : A3 셀에데이터입력하기 Sheets("Calibration Results").Range( A3 ).value = 12.4
Excel Cell 지정방식 (Cells) Calibration Results 라는 Sheet 의특정셀에데이터입력하기 Sheets("Calibration Results").Cells(Row_Index, Col_Index).value = strreadingdata Row_Index Col_Index 예제 : A3 셀에데이터입력하기 Sheets("Calibration Results").Cells(3, 1).value = 12.4
VBA Tip 예제 : Excel 의경고메시지안뜨게하는법 Application.DisplayAlerts = False 예제 : 특정 Sheet 의선택 Sheets( Row Data ).Select 예제 : Sheet 의모든셀의선택 Sheets( Row Data ).Cells.Select 예제 : Sheet 의선택영역을클립보드로복사 Selection.Copy
Ref 0 dbm Samp Log 10 db/ Atten 10 db Center 1 GHz #Res BW 30 khz #VBW 300 khz Channel Power Results (measuring..) Density -69.87 dbm/hz Span 3 MHz Sweep 9.167 ms (401 pts) Integration BW 2.000 MHz Application ICS (Instruments Control Solution) Frequency Scanner Screen Capture Ref 0 dbm Samp Log 10 db/ 11:56:53 Apr 27, 2006 R T Atten 10 db Measure Meas Off ACP Channel Power Occupied BW Center 1 GHz Span 3 MHz #Res BW 30 khz #VBW 300 khz Sweep 9.167 ms (401 pts) Channel Power Results (measuring..) Channel Power Integration BW 2.000 MHz -6.86 dbm Density -69.87 dbm/hz Emission BW Harmonic Dist Radar Signal Builder 11:56:53 Apr 27, 2006 R T Measure Meas Off ACP Channel Power Occupied BW Channel Power -6.86 dbm Emission BW Harmonic Dist GPIB RS232 TCP/IP LPT DLL
PASCAL Powerful Automation Solution for Calibration 주요기능요약 측정기교정을위한프로젝트를엑셀로관리 - 모든명령어가엑셀파일에기술 (VB Source(X)) 다양한종류의통신프로토콜지원 - GPIB, RS232 및 UDP 통신프로토콜지원 측정결과를 Excel 성적서로저장 - 기존의교정성적서에자동으로새 Sheet 를추가삽입 측정기별 History 관리 - 한측정기당하나의 Excel 파일이생성되며측정일자별로 Sheet 를자동생성 측정기화면캡처 ( 지원가능모델참조 ) - Spectrum Analyzer, Network Analyzer, Noise Fig ure Analyzer, Oscilloscope 와같은분석기종류에대하여측정당시화면을캡처하여 PC 에저장 측정항목의선택적실행
PASCAL Visual Basic Programming Private Sub GPIBWrite() Dim Dev As Integer Dim Command As String Dev% = ildev(bdindex, Address, NO_SECONDARY_ADDR, TIMEOUT, EOTMODE, EOSMODE) If (ibsta And EERR) Then ErrMsg = "Unable to open device" & Chr(13) & "ibsta = &H" & _ Chr(13) & Hex(ibsta) & "iberr = " & iberr MsgBox ErrMsg, vbcritical, "GPIB Error" ilonl Dev%, 0 Exit Sub End If Command= :FREQ:CENT 2.1175GHZ ilwrt Dev%, Command, Len(Command) If (ibsta And EERR) Then Call GPIBCleanup("Unable to write to device") Exit Sub End If ilonl Dev%, 0 End Sub PASCAL Programming Function Target Command Min Max Unit Operation Write SA :FREQ:CENT 2.1175GHZ
PASCAL Calibration Results Form Visual Basic FarPoint Spread Pegasus Imaging
PASCAL Project Editor GPIB 명령어 사용자정의변수 ( 배열 ) For Next 문 PASCAL Function
PASCAL 상수테이블설정 다양한형식의사용자정의상수지원 텍스트박스, 콤보박스, 체크박스 자동생성 예제
PASCAL Simple Block Diagram START 프로젝트창의 Row Index 1 증가 프로젝트스프레드로부터 1Line 읽기 Y 주석문또는공백? N 프로젝트 End? 1 Line 내의모든변수를실제값으로변환 N Y Complete 측정항목 Title? 측정항목 Title 을측정결과창에기록 Y N Function Code 로해당함수를호출및실행 (Write, Read, Formula, Delay, Message, etc.) 측정결과창의 Row Index 1 증가
PASCAL GPIB RS232 TCP/IP LPT UDP Easy & Fast Programming!
www.korearental.co.kr