资讯详情

matlab与示波器连接及电脑连接

标签

最近采集了示波器的数据,MSO2014,openChoice软件 Tekvisa可以驱动,采集的波形可以直接使用matlab处理。

后来发现示波器可以直接跟踪matlab进行连接。

http://blog.sina.com.cn/s/blog_4eff3a0e0100zb8h.html

1.启动matlab,输入tmtool,弹出新窗口。

2.左边,test&measurement窗下,打开hardware选择示波器和计算机之间的连接方式。例如,我选择了visa下的usb连接。以前可能需要安装usb在购买示波器时,驱动程序会有一个磁盘。据说在某些情况下,驱动程序不能安装,因为matlab有自带的!

3.中间主窗,scan,搜索到示波器后,可以按下connect连接,如图所示

22ae1643144ad7969084591d2b38b9b9.png

4.仔细阅读示波器的说明pdf,了解示波器的命令。例如,我的示波器向示波器发送指令curve?,它将返回示波器测量数据,并可以发送一些指令来调整横轴和纵轴的单位。发送命令是write,请求回复就是query。

5.在tmtool窗口的communicate在标签中,发送命令,读取回复session log相应的m代码将在标签下看到。

6.复制session log下面的代码,回来matlab,新建m文件,粘贴代码,前面补充function,以后补上所需的后续处理,然后完成m文件!

7.类似的步骤可以在gui下编写callback,也可以在simulink编写s函数。

注意点:

1.示波器对matlab它是一个对象obj,启用时要fopen,不用时要fclose。实践中,若fopen之后,如果程序运行错误,则在下次调试前fclose以防下次fopen报错。

2.将命令写入对象,命令格式为string,若需写入xx1,xx2,xx3等许多有规律的命令,可以通过strcat和num2str两个命令。前者将多个str组合为一个str,各需要注意str例如,右侧的空间会自动被忽略strcat(‘xx ‘,‘1‘);出来的是xx1,而不是xx 1。这就是让我发现三天错误的原因!

3.simulink在模块库中,有instrument control toolbox库,里面有query instrument该模块用于从示波器和其他对象读取数据并设置数据id等待信息必须写成str格式,即带两个,如图所示。个人不喜欢使用这个模块,或者s函数更灵活。

贡献部分代码:

obj1 = visa(‘NI‘, ‘USB0::0x0699::0x0413::C013300::0::INSTR‘);

fopen(obj1);

……

fclose(obj1);

第一句话是示波器的连接方式、地址等信息定义为对象obj1.别忘了关闭最后一句话。~

fprintf(obj1, ‘DATa:SOUrce CH1‘);

%告诉示波器,我想读取的数据源是通道1~

n=100;

data=zeros(1,n*100);

for i=1:n

temp=str2num(query(obj1,‘curve?‘));

data((100*(i-1) 1):(100*i))=temp;

……

end

每次读取100个数据,连续读取n次,得到%data,也就是一个100*n长度的向量必须首先定义向量长度,这可以大大提高matlab因为query读入数据是str格式,str2num命令可以转化为向量。

以上一些是参考,但发现情况并非如此。上述程序无法通过,因此应编写自己的示波器。

标签:

标签: amp连接器93628641s连接器1414zb4m连接器1619zb4m连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台