• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

matlab与示波器连接及电脑连接 - 无拘无束的猪

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

 

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

后面又发现可以直接将示波器跟matlab进行连接。

1.启动matlab,输入tmtool,弹出新窗口。
    2.左边,test&measurement窗口下,打开hardware树,选择示波器与电脑的连接方式。比如我选择的是visa下的usb连接。之前可能需要安装usb驱动程序,买示波器的时候会有盘。据说有些情况下也可以不装驱动,因为matlab有自带的!
    3.中间主窗口,scan,进行搜索,搜索到示波器后,就可以按下“connect”进行连接了


    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命令可以转成向量。
 
 
以上的一些是参考,但是发现并不是那样的,对于以上的程序并不能运行通过,所以还是要针对自己的示波器进行编写。

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
rust宏的复用发布时间:2022-07-18
下一篇:
Rust-HayStack发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap