이 페이지는 기계 번역을 사용하여 번역되었습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
VISA를 사용하여 스윕 사인파를 생성하고 Quick-Control 오실로스코프를 사용하여 파형 캡처
R2026a이 예제는 함수 발생기를 사용하여 스윕된 사인파 파형을 생성하는 방법과 오실로스코프를 사용하여 이를 캡처하는 방법을 보여줍니다.
지원되는 하드웨어의 전체 목록을 보려면 Instrument Control Toolbox 제품 페이지를 방문하십시오.
요구 사항
이 예제는 Keysight Technologies® 33522B 함수 발생기와 Tektronix® TDS 1002 오실로스코프를 사용하여 테스트되었습니다. 함수 발생기와 오실로스코프의 GPIB 주소는 각각 GPIB0::5::INSTR과 GPIB0::11::INSTR입니다. 함수 발생기는 채널 1에서 100ms마다 1V의 오프셋으로 2V p-p 스윕 사인파(20~200Hz)를 생성하도록 구성되어 있습니다. 오실로스코프는 채널 1에서 파형을 수집하도록 구성되어 있습니다.
오실로스코프 구성
Quick-Control(오실로스코프)를 사용하여 오실로스코프를 구성합니다.
scopeResource = "GPIB0::11::INSTR"; ch = "CH1";
오실로스코프 객체를 생성하고 계측기에 대한 연결을 엽니다.
scope = oscilloscope; scope.Resource = scopeResource; connect(scope)
autoSetup 함수는 연결된 신호에 따라 채널, 수직, 수평 및 트리거 제어를 자동으로 조정합니다.
autoSetup(scope)
채널 1을 활성화하고 구성합니다.
enableChannel(scope,ch); configureChannel(scope,ch,"VerticalCoupling","DC")
채널을 1 VOLTS/DIV로 표시하도록 구성하십시오.
configureChannel(scope,ch,"VerticalRange",1)프로브 감쇠를 1x로 설정합니다(옵션으로는 1, 10, 100이 있습니다).
configureChannel(scope,ch,"ProbeAttenuation",1)The AcquisitionTime 속성은 파형 지속 시간을 초 단위로 나타냅니다. AcquisitionTime을 설정하면 SEC/DIV 제어도 그에 따라 변경됩니다. AcquisitionTime은 일반적으로 10개 칸(division) 또는 데이터 한 화면에 해당합니다.
scope.AcquisitionTime = 0.25; scope.TriggerLevel = 2.56; scope.TriggerSource = ch; scope.TriggerSlope = "rising"; scope.TriggerMode = "normal"; disp(scope)
oscilloscope: TEKTRONIX,TDS 1002
Instrument Settings:
AcquisitionStartDelay: 'Not supported'
AcquisitionTime: 0.25 s
ChannelNames: 'CH1', 'CH2', 'MATH', 'REFA', 'REFB'
ChannelsEnabled: 'CH1'
SingleSweepMode: 'off'
Timeout: 10 s
WaveformLength: 2500
Trigger Settings:
TriggerLevel: 2.56
TriggerSource: 'CH1'
TriggerSlope: 'rising'
TriggerMode: 'normal'
Communication Properties:
Status: 'open'
Resource: 'GPIB0::11::INSTR'
lists of methods
함수 발생기 구성
VISA-GPIB 객체를 사용하여 스윕 파형을 생성하도록 함수 발생기를 구성합니다.
fgenResource = "GPIB0::5::INSTR";
vfgen = visadev(fgenResource)vfgen =
GPIB with properties:
ResourceName: "GPIB0::5::INSTR"
Alias: "FGEN_2CH"
Vendor: "Agilent Technologies"
Model: "33522B"
BoardIndex: 0
PrimaryAddress: 5
SecondaryAddress: 65535
NumBytesAvailable: 0
Show all properties, functions
스윕 진폭과 오프셋을 구성합니다.
writeline(vfgen,"SOUR1:VOLT +1.0") writeline(vfgen,"SOUR1:VOLT:OFFS +1.0")
스윕 모드를 활성화합니다.
writeline(vfgen,"SOUR1:FREQ:MODE SWE"); writeline(vfgen,"SOUR1:SWE:STAT ON"); writeline(vfgen,"SOUR1:SWE:SPAC LIN");
시작 및 종료 주파수를 구성합니다.
fstart = 20; fstop = 200; writeline(vfgen,compose("SOUR1:FREQ:STAR %d",fstart)); writeline(vfgen,compose("SOUR1:FREQ:STOP %d",fstop));
시작 주파수에서 종료 주파수까지 스윕하는 데 걸리는 시간을 sweepTime으로 구성합니다.
sweepTime = 0.1;
holdTime = 0;
returnTime = 0;
writeline(vfgen,compose("SOUR1:SWE:TIME %0.1f",sweepTime));holdTime으로 정지 주파수를 유지하는 시간을 구성합니다.
writeline(vfgen,compose("SOUR1:SWE:HTIME %0.1f",holdTime));시작 주파수로 돌아가는데 필요한 시간을 returnTime으로 구성합니다.
writeline(vfgen,compose("SOUR1:SWE:RTIME %0.1f",returnTime));트리거를 구성합니다.
writeline(vfgen,"TRIG1:SLOP POS"); writeline(vfgen,"TRIG1:SOUR IMM");
파형 수집
오실로스코프를 사용하여 파형 데이터를 수집합니다. AcquisitionTime 속성은 파형 지속 시간을 초 단위로 나타냅니다. WaveformLength 속성은 파형 데이터의 점 개수를 나타냅니다.
y = readWaveform(scope); t = linspace(0,scope.AcquisitionTime,scope.WaveformLength);
파형 플로팅
plot(t,y) ylim([0.5,3.5]); title("Acquired waveform (sweep)") xlabel("Time (s)"); ylabel("Voltage (V)");

정리
작업이 끝나면 작업 공간을 비웁니다.
disconnect(scope) clear scope vfgen