python之示波器控制显示

1、安装驱动NI-VISA
https://www.ni.com/zh-cn/support/downloads/drivers/download/packaged.ni-visa.544206.html
2、查询USB口的序列号
在这里插入图片描述
3、python编程
3.1、核心库pyvisa包安装

import pyvisa
import matplotlib.pyplot as plt
import numpy as np

3.2、
我们将创建一个 ResourceManager资源管理期对象,管理链接示波器的通信; 通过调用该对象的list_resources方法,‌可以获取到电脑上所有符合VISA通信协议的接口资源列表。‌这个列表包含了所有可访问的仪器资源,‌每个资源都有一个唯一的VISA地址,‌这个地址是用于与仪器进行通信的关键;
通过调用该对象的open_resource()打开与示波器的连接并建立对应的对象scope

visa_address = 'USB0::0x2A8D::0x1797::CN58526321::INSTR'
rm = pyvisa.ResourceManager()
instruments = rm.list_resources()
scope = rm.open_resource(visa_address)

设置延时和清除,visa的timeout单位是毫秒,需要单独命令设置。
设置后,如果返回的时间大于timeout,才会报timeout error, 否则会一直等。这种情况适用于仪表对于复杂测试命令的需要稍长时间反应的情况。

    scope.timeout = 20000
    scope.write('*CLS')

通过scope对象实现对示波器信息发送和接收示波器的数据,其中.wirte()负责发送指令信息,.query()负责接收示波器的数据信息。

scope.write('*CLS')
scope.query('*IDN?')

后续的通信均是在这两个指令基础上进行操作,不同的参数决定了发送指令信息的不同和接收的数据信息的不同。更多参数如下所示:

    # 初始化设置波形X,Y轴的偏置和尺度
    scope.write(':CHANnel1:OFFSet ' + str(parse_read.ch1_offset))
    scope.write(':CHANnel1:SCALe ' + str(parse_read.ch1_scale))
    scope.write(':CHANnel1:PROBe 1')
    scope.write(':CHANnel2:OFFSet ' + str(parse_read.ch2_offset))
    scope.write(':CHANnel2:SCALe ' + str(parse_read.ch2_scale))
    scope.write(':CHANnel2:PROBe 1')
    scope.write(':TIMebase:SCALe ' + str(parse_read.time_scale))  # 800us
    scope.write(':TIMebase:POSition ' + str(parse_read.time_position))

参数构成语法:'***** ‘中设置参数类型,如’:CHANnel1:OFFSet '表示通道1的偏置大小,其后加上设置参数的值,例如偏置大小设置为parse_read.ch1_offset(config文件中可集中更改)

scope.write(':CHANnel1:OFFSet 1')
scope.write(':CHANnel1:SCALe 1')
scope.write(':CHANnel2:OFFSet 3')
scope.write(':CHANnel2:SCALe 1')
scope.write(':TIMebase:SCALe 0.000008')  # 800us
scope.write(':TIMebase:POSition 0.0')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值