PyVisa教程-用Python控制仪器【3,例程】

本文介绍如何使用SCPI命令控制Keithley2000万用表进行电压测量,包括初始化仪器、设置测量参数、触发测量、读取数据及计算平均值的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个更复杂的例程

下面的例程展示,如何用SCPI命令从Keithley 2000万用表读取10个电压值。在读完之后,程序将计算平均值并输出到屏幕上。

让我们一步一步的介绍程序。首先,初始化仪器:

>>> keithley = rm.open_resource("GPIB::12")
>>> keithley.write("*rst; status:preset; *cls")

此处,我们创建了变量keithley,这是进行深入操作仪器的基础。紧随其后,我们发送初始化和复位命令到仪器。

下一步是发送测量参数给仪器,此处为间隔时间(500ms)和读取电压值的数目(10)。我将不做更多解释,请直接看SCPI命令和(或)Keithley 2000手册。

>>> interval_in_ms = 500
>>> number_of_readings = 10
>>> keithley.write("status:measurement:enable 512; *sre 1")
>>> keithley.write("sample:count %d" % number_of_readings)
>>> keithley.write("trigger:source bus")
>>> keithley.write("trigger:delay %f" % (interval_in_ms / 1000.0))
>>> keithley.write("trace:points %d" % number_of_readings)
>>> keithley.write("trace:feed sense1; trace:feed:control next")

现在,仪器已经准备好开始测量了。接下来的三行命令使仪器等待一个触发脉冲,触发它,并等待直到它发送一个服务请求信号。

>>> keithley.write("initiate")
>>> keithley.assert_trigger()
>>> keithley.wait_for_srq()

发送服务请求信号,仪器显示测量结束并且结果已经准备好传输。我们可以用 keithley.query("trace:data?")获取数据,得到如下结果:

-000.0004E+0,-000.0005E+0,-000.0004E+0,-000.0007E+0,

-000.0000E+0,-000.0007E+0,-000.0008E+0,-000.0004E+0,

-000.0002E+0,-000.0005E+0

然后,我们将其转换成python的数值列表。函数query_assii_values可以完成这项任务。

>>> voltages = keithley.query_ascii_values("trace:data?")
>>> print("Average voltage: ", sum(voltages) / len(voltages))

最后,我们需要复位仪器的数据缓存区和SRQ状态寄存器,以便准备新一次的测量。这些在仪器手册上有详细的说明。

>>> keithley.query("status:measurement?")
>>> keithley.write("trace:clear; trace:feed:control next")

瞧,简洁的18行代码实现了采集数据的目的(自然SCPI命令是比较繁琐的,那又是另一回事了)。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值