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

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

【硬件+软件】示波器的自动化控制_第1张图片

是的,有这样一种方式就可以,就是利用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()读的方式。就可以获得示波器的厂家型号,仪器型号,序列号,固件的版本号等等信息。

【硬件+软件】示波器的自动化控制_第2张图片

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

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

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

Scope.close()

Rm.close()

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

【硬件+软件】示波器的自动化控制_第3张图片

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

【硬件+软件】示波器的自动化控制_第4张图片

比如说获取示波器长度的指令“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。

【硬件+软件】示波器的自动化控制_第5张图片

你可能感兴趣的:(硬件,电子,Python,示波器,硬件,软件,硬件工程师,电子工程师,自动化控制)