1、运用NI-Visa软件,读取示波器的资源名称(注意,你首先的用USB线连接示波器,连接方式自行选择)
2、运用pyvisa连接示波器,并进行图片传输操作(图片路径设置,不要使用中文路径,会报错。)
'''
示波器图片传输程序
'''
from datetime import datetime # std library
import time # std library
import pyvisa as visa # https://pyvisa.readthedocs.io/
#用USB线连接示波器,查询示波器资源名称,
visaRsrcAddr = "USB0::0x0699::0x0522::C014382::INSTR"
rm = visa.ResourceManager()
scope = rm.open_resource(visaRsrcAddr)
print(scope.query('*IDN?')) # 查询示波器名称信息
# 写入保存图片指令,也就是截屏
scope.write('SAVE:IMAGe \"C:/Temp.png\"')
scope.query('*OPC?') #查询指令,也可无需使用,看个人
scope.write('FILESystem:READFile \"C:/Temp.png\"') #写入指令,功能读取示波器中保存的图片数据
imgData = scope.read_raw(1920*1080) #以多大的分辨率读取数据
#获取时间
dt = datetime.now()
#保存路径设置
fileName = dt.strftime("{}MSO5_%Y%m%d_%H%M%S.png".format("./IMG/")) #不能用中文路径
file = open(fileName, "wb") #打开该路径
file.write(imgData) #写入图片数据信息,至PC路径下的路径,以上图片会保存在当前目录下的IMG文件下,如若没有IMG文件,程序会报错,注意自行设置或者创建
file.close() #关闭写入文件
scope.write('FILESystem:DELEte \"C:/Temp.png\"') #写入指令,删除示波器本地保存的截屏图片
scope.close() #关闭连接
rm.close() #关闭连接
3、正确运行程序后,便可在本地PC直接得到以下示波器图片: