E5071C GPIB 프로그래밍
E5071C GPIB 프로그래밍
- 전자부품
- 계측기
- 네트워크분석기
- E5071C 네트워크분석기
- E5071C GPIB 프로그래밍 - 이 페이지
- E5071C 네트워크분석기
- 네트워크분석기
- 계측기
- 외부 PC(컨트롤러)에서 E5071C를 제어하는 방법
- - 972p
- 샘플 프로그램
- 2022/05/27 DUT가 있으면 측정한다.
- 중요 프로그램 기법
- *IDN?
- *OPC?
- :TRIG:SING
- *OPC?
- marker
- :CALC{1-9}:MARK{1-10}:Y?
- :CALC{1-9}:MARK{1-10}:X
- bandwidth 검출되지 않으면 프로그램이 정지한다. 그러므로 대역폭이 검출되는가를 먼저 체크한 후 실행한다.
- :CALC1:MARK1:BWID:DATA?
- BW, Fc, Q, Peak
- :CALC1:MARK1:BWID:DATA?
- stimulus
- :SENS{1-9}:FREQ:SPAN
- :SENS{1-9}:FREQ:STAR
- :SENS{1-9}:FREQ:STOP
- sweep setup
- Points :SENS{1-9}:SWE:POIN
- Power :SOUR{1-9}:POW
- 데이터 전송 포맷(Data Transfer Format)
- 포맷 선택
- :FORMat:DATA {ASCii|REAL|REAL32}
- ASC: ASCII
- REAL: 64-비트 부동소수점 이진파일
- REAL32: 32-비트 부동소수점 이진파일
- :FORMat:DATA {ASCii|REAL|REAL32}
- 채널 선택, 트레이스 선택
- 10 OUTPUT 717;":CALC1:PAR1:SEL"
- 채널별 Stimulus data arrays. 계산되는 값이므로, 실제로 매번 읽어들일 필요는 없다.
- 10 DIM A(1:201)
- 20 OUTPUT 717;":SENS1:FREQ:DATA?"
- 30 ENTER 717;A(*)
- formatted data array, nx2-1은 측정데이터, nx2는 0(단, smith chart 또는 polar가 아닌 경우)
- 10 DIM A(1:201,1:2)
- 20 OUTPUT 717;":CALC1:DATA:FDAT?"
- 30 ENTER 717;A(*)
- :FORM:DATA REAL 이진파일로 데이터 받기
- 50 ASSIGN @Agte507x TO 717
- 60 ASSIGN @Binary TO 717;FORMAT OFF
- 110 OUTPUT @Agte507x;":SENS1:SWE:POIN?"
- 120 ENTER @Agte507x;Nop
- 130 REDIM Fdata(1:Nop,1:2),Freq(1:Nop) ! =allocate
- 160 DIM Buff$[9]
- 170 OUTPUT @Agte507x;":FORM:DATA REAL"
- 180 !
- 190 OUTPUT @Agte507x;":CALC1:DATA:FDAT?"
- 200 ENTER @Agte507x USING "#,8A";Buff$
- 210 ENTER @Binary;Fdata(*)
- 220 ENTER @Agte507x USING "#,1A";Buff$
- 230 OUTPUT @Agte507x;":SENS1:FREQ:DATA?"
- 240 ENTER @Agte507x USING "#,8A";Buff$
- 250 ENTER @Binary;Freq(*)
- 260 ENTER @Agte507x USING "#,1A";Buff$
- 포맷 선택
- - 972p
- 내부 VBA 프로그램에서. COM object를 사용한다.
- VBA = Visual Basic for Application
- VBA Programmer's Guide - 485p
- 화면
- 예제-1Private Sub UserForm_Click()Dim FmtData As Variant, Freq As VariantDim SaveData(99, 800)Dim File As StringDim dmy As LongDim start, finishFile = "2.txt"Open File For Output As #1SCPI.SENSe(1).SWEep.POINts = 801Nop = SCPI.SENSe(1).SWEep.POINtsSCPI.DISPlay.ENABle = False'SCPI.DISPlay.ENABle = TrueECHO "Nop=", NopSCPI.TRIGger.SEQuence.Source = "BUS"Freq = SCPI.SENSe(1).FREQuency.DATAstart = TimerFor i = 0 To 99 SCPI.TRIGger.SEQuence.SINGle dmy = SCPI.IEEE4882.OPC FmtData = SCPI.CALCulate(1).SELected.DATA.FDATa For j = 0 To Nop - 1 SaveData(i, j) = FmtData(2 * j) Next jNext ifinish = TimerECHO "Elapsed Time=", finish - startFor j = 0 To Nop - 1 Print #1, j + 1, Freq(j); For i = 0 To 99 Print #1, SaveData(i, j); Next i Print #1,Next jClose #1MsgBox "Measurement Completion"SCPI.SYSTem.BEEPer.COMPlete.IMMediateEnd Sub
- reset 상태에서 S21 750MHz~1250MHz Nop=801 IFBW=70kHz 100번 스윕하는데 23.64초
- 데이터 전송포함하면 23.82초
- 화면 업데이트 하지 않으면 3.1초
- 100회 측정데이터를 배열로 처리하는데 3.2초
- IFBW=10kHz이면 약 9,6sec
- IFBW=100kHz이면 약 2,7sec