설명
벡터 네트워크 분석기(VNA)에서 컨트롤러 PC 또는 네트워크 드라이브로 결과를 전송하려고 합니다.
벡터 네트워크 분석기(VNA)에서 컨트롤러 PC 또는 네트워크 드라이브로 결과를 전송하려고 합니다.
일반적으로 측정 자동화를 실행하는 동안 결과를 저장하거나 처리해야 합니다. 이 상황에서는 두 가지 옵션을 사용할 수 있습니다.
아래에 제시된 Matlab 예시에서는 R&S ZNB20 Vector Network Analyzer에서 두 가지 옵션을 사용하는 방법을 설명합니다. 파일 전송의 경우, s-파라미터 또는 터치스톤 파일 세트가 VNA와 연결된 USB의 D:\에 저장됩니다. 데이터 전송의 경우, 활성 트레이스가 VNA에서 Matlab으로 전송되고 확인을 위해 표시됩니다.
+++코드+++
% 전제 조건:
% - R&S VISA.NET에서 R&S VISA 5.11.0 이상 버전 설치
%% 세션 오프닝
clc;
inst_handle = visa('rs','TCPIP0::10.205.0.51::hislip0::INSTR'); %VISA 연결, Toolbox 필요
inst_handle.OutputBufferSize = 1000000; %바이트 단위의 버퍼 사이즈
inst_handle.InputBufferSize = 1000000;
fopen(inst_handle);
clc;
fprintf(inst_handle,'*IDN?'); %기기 확인 상태
a=fscanf(inst_handle);
disp(a);
fprintf(inst_handle,"*RST"); %네 개의 트레이스 표시
fprintf(inst_handle,"*CLS");
fprintf(inst_handle,'CONF:CHAN1:STAT ON');
fprintf(inst_handle,'SWEep:TYPE LIN');
points=201; 포인트 %nr, 트레이스 해상도 설정
fprintf(inst_handle, 'SENSE1:SWEEP:POINTS %d',points);
fcenter=1000000000;
fprintf(inst_handle,'FREQ:CENT %d',fcenter); %중심 주파수 정의
fspan= 500000000;
fprintf(inst_handle,'FREQ:SPAN %d',fspan); %스팬 설정
fprintf(inst_handle,'SOUR:POW -20');
fprintf(inst_handle,'BANDwidth 1000');
fprintf(inst_handle,'TRIG:SOUR IMM');
fprintf(inst_handle,'CALCulate:PARameter:DELete:ALL');
fprintf(inst_handle,'CALC1:PAR:SDEF "Ch1Trc1", "S21" ');
fprintf(inst_handle,'DISP:WIND1:TRAC1:FEED "Ch1Trc1"');
fprintf(inst_handle,'CALC1:PAR:SDEF "Ch1Trc2", "S11" ');
fprintf(inst_handle,'DISP:WIND1:TRAC2:FEED "Ch1Trc2"');
fprintf(inst_handle,'CALC1:PAR:SDEF "Ch1Trc3", "S12" ');
fprintf(inst_handle,'DISP:WIND1:TRAC3:FEED "Ch1Trc3"');
fprintf(inst_handle,'CALC1:PAR:SDEF "Ch1Trc4", "S22" ');
fprintf(inst_handle,'DISP:WIND1:TRAC4:FEED "Ch1Trc4"');
fprintf(inst_handle,'INIT:CONT:ALL OFF'); %모든 채널에서 싱글 스윕 모드 활성화
fprintf(inst_handle,'INIT:ALL;*WAI'); %모든 채널에서 싱글 스윕 모드 시작
timeout=30; %초 단위 타임아웃
set(inst_handle,'Timeout',timeout); %동기화 오류 방지를 위해 획득 전 타임아웃 증가
fprintf(inst_handle,'MMEMory:CDIRectory "D:\"'); %Windows에서 D:로 표시되는 현재 디렉터리를 USB에 설정
fprintf(inst_handle,'MMEMory:CDIRectory?'); %s-파라미터가 저장되는 파일 탐색기
directory_path=fscanf(inst_handle); % "파일 전송"
X = 'Target Directory for saving the s2p file=';
disp(X);
disp(directory_path);
fprintf(' Saving s-parameters file ...\n ');
fprintf(inst_handle,'MMEM:STOR:TRAC:CHAN 1,"vna_traces.s2p"');
% 트레이스를 Matlab 워크스페이스로 전송하는 "데이터 전송"
fprintf(inst_handle,'INIT1:IMM;*WAI'); %run single sweep for channel1
fprintf('Fetching data points ...\n ');
fprintf(inst_handle,':FORM REAL,32');
fprintf(inst_handle,'CALC1:DATA:TRAC? "Ch1Trc4", FDAT');
data = binblockread(inst_handle,'float32');
fread(inst_handle,1); %fread가 추가 종단 장치에서 버퍼 제거
timeout=1; %초 단위 타임아웃이 정상값으로 복구됨
set(inst_handle,'Timeout',timeout);
%--------------플롯에 트레이스 표시---------
fstart=fcenter-fspan/2;
fstop=fcenter+fspan/2;
resolution=fspan/points;
points_array=1:1:points;
for c = 1:points %시간 축 및 전력 데이터 측정
points_array(1,c)=points_array(1,c)*resolution;
points_array(1,c)=points_array(1,c) + fstart;
end
plot(points_array,data);
fprintf(inst_handle,':SYST:ERR?\n'); %대기 중 오류 확인
a=fscanf(inst_handle);
disp(a);
fclose(inst_handle);
+++
코드를 실행한 후 VNA 화면은 다음과 같습니다. 획득한 Matlab 트레이스가 중첩되었으며 캡처된 데이터의 정상 상태 확인을 위해 두 개의 마커가 수동으로 추가되었습니다.
VNA의 D:\에 저장된 s-파라미터의 위치와 함께 ZNB20의 오류 및 펌웨어 버전 검증을 위한 Matlab 출력은 다음과 같습니다.
추가 정보로, R&S VisaTester Trace Tool을 사용하여 선택된 트레이스의 전송을 검증할 수도 있습니다. 프로그램 실행 후 확인된 예시는 다음과 같습니다.
해시 기호(#)는 데이터 블록을 나타냅니다. 바로 다음의 숫자는 그 다음에 나온 숫자에서 데이터 블록의 길이를 설명하는 자리의 개수를 나타냅니다. 이 예시에서 이어지는 세 자리 숫자는 804 바이트 길이를 나타내며, 선택한 포인트 숫자 201과 일치합니다. FORM REAL,32 명령은 데이터 포인트당 4 바이트를 할당합니다.
참조자료: