gpt4 book ai didi

python - PyVisa 和打印新数据

转载 作者:行者123 更新时间:2023-11-28 22:59:32 27 4
gpt4 key购买 nike

我正在尝试使用 Pyvisa 从我的 Keithly 2701 DMM 的一个 channel 中捕获数据。

我通过 temp = keithly.ask('SCPI COmmand') 获得静态一次性响应,但我想做的是在不设置任何预定义大小的情况下不断打印新数据,即捕获 300 个数据点数。

如果我看到超过 10000 个数据点的趋势,或者在另一个实验中,我可能会在 2500 个数据点之后看到趋势,我想确定何时停止捕获。

from pylab import *
from visa import instrument

inst = SerialInstument(args)

while new data:
print inst.aks('channel')

最佳答案

while True:
print inst.ask('channel')
time.sleep(1)

当你认为合适时,你可以 ctrl-c 停止循环。

上面的脚本很简单——它只是在屏幕上显示数字,直到你杀死它。我发现使用 matplotlib 实时绘制来自 PyVISA 的数据很有用。我发现这在 pyplot 模式下有问题(当我关闭交互模式时我有很多空白屏幕,ymmv)所以我将它嵌入到 tkinter 窗口中,如下所示:

import matplotlib
matplotlib.use('TkAgg') # this has to go before the other imports
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.figure import Figure
import Tkinter as Tk
import visa

# set up a PyVISA instrument and a list for the data
data = []
keithley = visa.instrument('GPIB0::whatever')

# make a Tkinter window
root = Tk.Tk()

# add a matplotlib figure to the Tk window
fig = Figure()
ax = fig.add_subplot(111)
canv = FigureCanvasTkAgg(fig, master=root)
canv.show()
canv.get_tk_widget().pack(fill='both', expand=True)

# a function that is called periodically by the event loop
def plot_update():
# add a new number to the data
data.append(keithley.ask('SCPI:COMM:AND?'))

# replot the data in the Tk window
ax.clear()
ax.plot(data)
fig.tight_layout()
canv.draw()

# wait a second before the next plot
root.after(1000, plot_update)

root.after(1000, plot_update)
root.mainloop()

它可能看起来不多,但我们逐渐将像这样的短脚本开发成一个相当强大的仪器控制程序;)

关于python - PyVisa 和打印新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12939083/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com