【硬件+软件】示波器的自动化控制

有没有这样一种情况,就是通过脚本控制你的测量设备,比如示波器,那是不是就可以不用人为的去分析数据,直接由脚本就可以完成整个操作了。

图片

是的,有这样一种方式就可以,就是利用python中的pyvisa库,实现这样的控制。

pyvisa是什么?

pyvisa中的visa全程是虚拟一起软件结构(Virtual Instrument Software Architecture),是python的一个第三方库,可以用来控制各种测量仪器,比如示波器,万用表,频谱仪等等。并且它支持包括Ethernet(LAN), USB, GPIB(通用接口总线), RS232(一种串行通讯接口)等接口的数据接入。

在python中,可以直接通过”pip install pyvisa”就可以安装这个实用的测量仪器第三方库。

在安装了pyvisa之后,为了保证pyvisa能够正常工作,还需要安装NI-VISA库,然后就可以开始连接相应的设备,也就是通过支持的接口。

LAN:[TCPIP0::192.168.0.1::inst0::INSTR]

GPIB:[GPIB0::1::INSTR]

Serial:[serial('COM1','BaudRate',4800)]

USB:[USB::XXX::XXX::XXX::INSTR]

所以连接示波器的指令就是连接这个接口地址,假设接口是个网口地址

Visa_address=”[TCPIP0::192.168.0.1::inst0::INSTR]”

然后建立管理器,再去连接这个地址

Rm=pyvisa.ResourceManager()

Scope=rm.open_resource(visa_address)

此时建立了一个示波器对象Scope,可以对它进行控制,比如写入和读取,方法分别是write(), query()。

常用的写入项:

“*RST”: 重启示波器

“AUTOSET EXECUTE”: 自动设置示波器

“HORIZONTAL”: 采样率

常用的读取项:

“MEASU:MEAS1: xxx”: 添加测量项

“MEASU:MEAS1: SOU CH1”: 设置测量通道为1

“MEASU:MEAS1: xxx?”: 读取测量结果

获取示波器信息方式有两种,一种是用query(‘*idn?’),一种是先write(‘*idn?’)写入,然后使用read()读的方式。就可以获得示波器的厂家型号,仪器型号,序列号,固件的版本号等等信息。

图片

示波器中最重要的就是所抓取的波形了,那么它的波形数据如何读取。

对于波形数据的抓取,可以利用query_ascii_values去读取ASCII数据,或者读取二进制数据的query_binary_values。

最后就是工具的关闭了,也就是连接上的示波器对象和整个测量仪器管理器。

Scope.close()

Rm.close()

可以看到,python控制示波器的指令中,有很多指令是示波器所固有的,那如何去理解这些指令到底是干什么用的呢?对于这个,其实这些指令都可以叫SCIP命令,它们可以通过去厂家的官方网站进行下载。

图片

进入官网之后,找到相应的示波器型号,然后下载它的manual(说明书),一般名字会是编程手册,比如下图:

图片

比如说获取示波器长度的指令“horizontal: recordlength?”就可以从中找到。

获取示波器长度指令:

Record=int(scope.query(‘horizontal: recordlength?’))

Scope.write(‘date:stop {}’.format(record))

在示波器正式连接并调整好参数之后,就可以看是采集了,可以选择单次或多次运行。

Scope.write(‘acquire:stopafter SEQINCE’)  #单次运行

Scope.write(‘acquire:stopafter run’)   #多次运行

运行之后,如何采集示波器的数据,可以通过诸如指令:scope.query_binary_values(‘curve?’, datatype=’h’,container=np.array)获取到它的数据,如果想具体到某一项,可以在相应示波器manual中寻找。

不过上面采集的数据会比较乱,要通过公式转换,才能得到示波器中我们看到的电压值。

最后,在有是电压值和时间参数之后,就可以得到坐标系的X轴和Y轴,然后就可以绘制出示波器的图像,一般会用到Python中的图形绘制库matplotlib和科学计算库numpy。

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/139633.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt系列-常用控件使用整理

1、QMainWindow介绍 菜单栏最多只有一个 //菜单栏创建 菜单栏最多只能有一个QMenuBar*bar menuBar();//将菜单栏放入到窗口中setMenuBar(bar);//创键菜单QMenu*fileMenubar->addMenu("文件");QMenu*editMenubar->addMenu("编辑");//创建菜单项QActi…

牛客网 -- WY28 跳石板

题目链接&#xff1a; 跳石板_牛客题霸_牛客网 (nowcoder.com) 解题步骤&#xff1a; 参考代码&#xff1a; void get_approximate(vector<int>& v,int n) {//求约数&#xff0c;从2到sqrt(n)即可&#xff0c;原因看图解//这里一定要等于sqrt(n)&#xff0c;例如16…

【网络编程】从网络编程、TCP/IP开始到BIO、NIO入门知识(未完待续...)

目录 前言前置知识一、计算机网络体系结构二、TCP/IP协议族2.1 简介*2.2 TCP/IP网络传输中的数据2.3 地址和端口号2.4 小总结 三、TCP/UDP特性3.1 TCP特性TCP 3次握手TCP 4次挥手TCP头部结构体 3.2 UDP特性 四、总结 课程内容一、网络通信编程基础知识1.1 什么是Socket1.2 长连…

Linux C语言

一、基础知识 &#xff08;一&#xff09;冯诺依曼体系 1、存储器&#xff1a;内存 存储程序的思想&#xff1a;按照存储器中指令的顺序 2、存储器的分类 1&#xff09;主存&#xff1a;内存&#xff08;C盘&#xff09; 2&#xff09;外存 3&#xff09;寄存器是cpu内部…

Excel和图片如何互相转换?有何技巧?

一、将图片转为excel表格 首先&#xff0c;打开金鸣识别网站&#xff0c;点击“点击添加需转换的图片或PDF”按钮&#xff0c;添加待识别的图片或PDF文件。 添加完待识别的图片或PDF后&#xff0c;点击“提交识别”按钮&#xff0c;程序便开始识别。 识别完成后&#xff0c;系…

Flutter之Widget生命周期

目录 初始化构造函数initStatedidChangeDependencies 运行时builddidUpdateWidget 组件移除deactivatedisposereassemble 函数生命周期说明&#xff1a;实际场景App生命周期 前言&#xff1a;生命周期是一个组件加载到卸载的整个周期&#xff0c;熟悉生命周期可以让我们在合适的…

航天科技×辰安科技 打造智慧化工园区安全保障平台

近年来&#xff0c;国内化工园区安全事故频发&#xff0c;多起化工园区重特大事故造成了严重人员财产损失的同时&#xff0c;也重创了行业的整体发展。在智能制造和工业互联网的背景下&#xff0c;建设智慧化工园区&#xff0c;使用智能化手段实现安全生产是解决当前化工园区安…

【Overload游戏引擎细节分析】视图投影矩阵计算与摄像机

本文只罗列公式&#xff0c;不做具体的推导。 OpenGL本身没有摄像机(Camera)的概念&#xff0c;但我们为了产品上的需求与编程上的方便&#xff0c;一般会抽象一个摄像机组件。摄像机类似于人眼&#xff0c;可以建立一个本地坐标系。相机的位置是坐标原点&#xff0c;摄像机的朝…

2020年下半年~2022下半年下午题易错总结

2020年下半年 试题一&#xff1a; 1.组播报文对无线网络空口的影响主要有(14) &#xff0c;随着业务数据转发的方式不同, 组播报文的抑制分别在 (15)、(16) 配置。 答案&#xff1a; &#xff08;14&#xff09;无线空口拥塞 &#xff08;15&#xff09;直连AP的交换…

瑞芯微RK3568核心板在边缘服务器产品中的应用-迅为电子

迅为RK3568核心板在边缘服务器产品中可以发挥关键作用&#xff0c;为边缘计算应用提供高性能的计算和多媒体处理能力。边缘服务器通常用于处理和存储数据&#xff0c;执行本地计算任务&#xff0c;并支持与远程云服务的通信。以下是RK3568核心板在边缘服务器产品中的应用方案&a…

项目中 .env.development 与 .env.production 的区别

文章目录 一、项目中使用此两个文件的意义二、使用方式 一、项目中使用此两个文件的意义 我们在开发项目时&#xff0c;经常会有开发环境与生产环境&#xff0c;分别会对应不同的请求地址与各种不同的变量&#xff0c;这个时候我们就可以使用 process.env 去抓取这两个文件写的…

VS使用Visual Assist添加代码说明信息

写代码时&#xff0c;我们一般需要在代码的最前面添加一些说明信息&#xff0c;作者的联系方式等等。一些高级的 IDE 工具提供修改代码模板的功能&#xff0c;这样就能够在创建新代码时自动加上版权信息。Visual Studio 虽然没有提供这样的操作界面&#xff0c;但是我们可以通过…