Python-pyvisa读取仪器数据-自动化测试

python自动化测试读取测试仪器仪表数据,实测有效
可以方便快捷,节省时间,自动化测试,事半功倍。
pyvisa库是主要的
一些仪器允许传输在一次询问中传输大数据片。典型例子是示波器,可以传输整个电压波形。或者波形发生器,可以传输需要产生的整个波形数据。像这样的数据传输有两种方法:ASCII方式(慢,可读)或者二进制(快,难于调试)。PyVisa提供了这两种传输方式:pyvisa.resources.MessageBasedResource.query_ascii_values() 和 pyvisa.resources.MessageBasedResource.query_binary_values()。在预先设置好的情况下,可以使用pyvisa.resources.MessageBasedResource.query_values()。
然后就是通过设备命令就可以读取想要的数据了

Python-pyvisa读取仪器数据-自动化测试_第1张图片

import pyvisa as visa
import matplotlib.pyplot as plt
import matplotlib
import numpy as np
import re
import time
matplotlib.rc("font", family='YouYuan')

rm = visa.ResourceManager()
res = rm.list_resources()
mydev = rm.open_resource(res[0])

mydev.write(':SENS:DIG:FUNC "CURR"')


cur_val  = float(re.match('.*',mydev.query("MEAS:CURR?"))[0])
last_time  =time.time()
first_time = last_time
sum = 0

print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))


curr = []
i = []
n = 0
plt.figure(figsize=(10, 5))
plt.grid(linestyle='-.')


while 1:
    n = n+1
    cur_time = time.time()
    sum = sum + cur_val * (cur_time - last_time)
    last_time = cur_time
    cur_val = float(re.match('.*', mydev.query("MEAS:CURR?"))[0])
    curr.append(cur_val*1000)
    i.append(n)
    if n >1000:
        curr.pop(0)
        i.pop(0)
    plt.clf()  # 清除之前画的图
    plt.grid(linestyle='-.')
    # time_local = [time.strftime("%Y-%m-%d", time.localtime(i / 1000)) for i in netWorthArray[:, 0]]
    plt.plot(i,curr)
    plt.title('均值:{:.5f} mA 累计时间:{:.3f} s 功耗:{:.3f} mAh'.format(np.mean(curr),cur_time - first_time,sum/3600*1000))
    # # plt.set_xticks(xticks)
    # plt.xticks(netWorthArray[:, 0],time_local)
    # # plt.set_xticklabels(time_local, rotation=15)
    #plt.show()
    plt.xlabel('num')
    plt.ylabel('mA')
    plt.pause(0.01)


Python-pyvisa读取仪器数据-自动化测试_第2张图片
总之通过这类方式就可以读取任何你想要的数据,并远程控制仪器,有什么问题需要研究开发的加我
扣扣:2379714114,欢迎共同学习,或者留言

你可能感兴趣的:(python,python,自动化,pycharm,测试工具)