【硬件+软件】示波器的自动化控制 |
您所在的位置:网站首页 › 示波器软件相关知识点 › 【硬件+软件】示波器的自动化控制 |
有没有这样一种情况,就是通过脚本控制你的测量设备,比如示波器,那是不是就可以不用人为的去分析数据,直接由脚本就可以完成整个操作了。 是的,有这样一种方式就可以,就是利用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。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |