仪器使用 | Tek 示波器连接MATLAB

发布于:2023-01-14 ⋅ 阅读:(405) ⋅ 点赞:(0)

本文记录通过Tek visa使得MATLAB调用示波器采集波形的方法,主要作用是记录,方便再次配置。

1 TEK驱动下载和配置

第一步:

在TeK官网下载VISA驱动:(搜索示波器型号即可)

泰克科技有限公司 - 测试、测量、监测行业领导者 | Tektronix

第二步:下载visa按默认安装:

安装后如下:(初始无对应的LAN)

可以在文件->首选项勾住:

(启动时扫描仪器必须开启,建议开启剩余两个)

调试搜索标准

配置所需要的连接方式:

第三步:配置连接,以网线(以太网连接为例)

需配置子网络(此时设备需要与电脑通过网线连接)

查看示波器utility->I/O

如下图:(为了便于后续使用选择Manual手动配置)

可以看到设备IP为192.168.0.5(可自行设置)

子掩码为:255.255.0.0

此时在浏览器中键入设备IP可管理设备(若可访问也说明通讯正常)

以太网配置

在网络和控制中心设置:(点击以太网)

设置IP为设备IP的附近IP(不可相同

192.168.0.10

子掩码为255.255.0.0

其保持他默认即可,点击确定

可以尝试控制台cmd中尝试

Ping 192.168.0.5 是否传输正常

若出现以上则说明通讯正常

完成以上操作TeKVISA配置完成

附说明书中的配置步骤:

2 MATLAB 的配置

MATLAB中Test & Measurement Tool tmtool)中配置:

首先需要安装tmtool附加内容:

安装后在command命令窗口键入tmtool打卡工具箱

若通过网线通讯则可找到TCPIP中有可选项

调整configure中的参数如图

InputBufferSize和OutputBufferSize控制采样点数(设为所需数目)

增加时延Timeout

SessionLoss中有(创建VISA对象等信息):

3 代码及测试实例(MATLAB)

调用代码(实例):

%将示波器设为对象;返回属性名称和属性值与指定项匹配的串行端口对象数组

obj1 = instrfind('Type', 'visa-tcpip', 'RsrcName', 'TCPIP0::192.168.0.5::inst0::INSTR', 'Tag', '');

% Create the VISA-TCPIP object if it does not exist

% otherwise use the object that was found.

if isempty(obj1)

    obj1 = visa('TEK', 'TCPIP0::192.168.0.5::inst0::INSTR');

else

    fclose(obj1);

    obj1 = obj1(1);

end

fopen(obj1);

%指定获取波形的通道,格式,数据大小,采样长度;

fprintf(obj1,"DATa:SOUrce CH2");

fprintf(obj1,"DATa:ENCdg ASCII");

fprintf(obj1,"WFMOutpre:BYT_Nr 1");

fprintf(obj1,"DATa:STARt 1;STOP 100000");

fprintf(obj1,"WFMOutpre:ENCdg ASCii");

%获取示波器横坐标信息

cen_f = str2num(query(obj1,"WFMOutpre:CENTERFREQuency?"));

f_span = query(obj1,"WFMOutpre:DOMain?");

flushinput(obj1);

flushoutput(obj1);

numb = str2num(query(obj1,"WFMOutpre:NR_Pt?"));

samp_int = str2num(query(obj1,"WFMOutpre:XINcr?"));

h_basis = query(obj1,"WFMOUTPRE:XUNIT?");

flushinput(obj1);

flushoutput(obj1);

% 获取垂直坐标信息

dig_lel = str2num(query(obj1,"WFMOutpre:YMULT?"));

shift_y = str2num(query(obj1,"WFMOUTPRE:YZEro?"));

very_un = query(obj1,"WFMOUTPRE:YUNIT?");

form_wav = query(obj1,"WFMOutpre:ASC_Fmt?");

flushinput(obj1);

flushoutput(obj1);

%从示波器读取波形

R_mes=[];

    waveform = str2num(query(obj1,"CURVe?"));

fclose(obj1);

%计算示波器横坐标

fin = samp_int*numb;

tim = [samp_int:samp_int:fin];

%计算电压值

x = waveform*dig_lel+shift_y;


网站公告

今日签到

点亮在社区的每一天
去签到