Python控制tek示波器(2)

5、编程开端

import pyvisa
rm = pyvisa.ResourceManager()
rm.list_resources()   #输出('ASRL1::INSTR', 'ASRL2::INSTR', 'GPIB0::14::INSTR')
my_instrument = rm.open_resource('GPIB0::14::INSTR')
print(my_instrument.query('*IDN?'))

导入pyvisa后,我们创建了一个ResourceManager对象。如果不带参数调用,PyVISA将首选默认后端(IVI),它会尝试为您查找VISA共享库。可以使用下述指令来查看共享库的位置: 

print(rm)    #输出

一旦你有了ResourceManager,你可以使用list_resources方法列出可用的资源。输出是一个列有VISA资源名的元组。您可以使用专用的正则表达式语法来筛选特殊的工具。该语法在list_resources()中有详细描述。默认值为' ?*::INSTR ',这意味着默认情况下,只列出资源名以'::INSTR '结尾的仪器。要列出当前的所有资源,请通过' ?list_resources *’。

在这种情况下,有一个GPIB仪器,仪器编号为14,所以你要求ResourceManager打开“' GPIB0::14::INSTR '”,并将返回的对象分配给my_instrument。

注意,open_resource为您提供了一个GPIBInstrument类的实例

print(my_instrument)  #输出

有许多Resource子类表示不同类型的资源,但你不必担心,因为ResourceManager会为你提供适当的类。您可以在Resource类中查看每个类的方法和属性

然后,使用以下消息查询设备:'\*IDN?'。这是GPIB的标准信息“what are you?”

query是读写操作的一种简单表达方式。

my_instrument.query("*IDN?")

等同于

my_instrument.write('*IDN?')
print(my_instrument.read())

6、配置仪器参数

对于大多数仪器,您实际上需要正确地配置仪器,以便它理解计算机发送的信息(特别是如何识别命令的结束),以及计算机知道仪器何时结束通话。如果你不这样做,你可能会看到一个报告超时的VisaIOError。

目前我们只关注如何正确设置资源的read_terminate和write_terminate属性。ResourceManager中 包括很多其他属性,后续再介绍。

my_instrument.read_termination = '\n'
my_instrument.write_termination = '\n'
my_instrument.query('*IDN?')

这里我们用“n”,也就是“换行”。这是一个常见的值,另一个是’ r ‘即’回车’,在某些情况下使用null字节’ 0 '。

对于通过串行通信的仪器,需要确保配置了正确的波特率。默认波特率设置为9600,但是您应该检查您的仪器的手册,以验证您的用例的正确值。如果您希望配置其他串行仪器参数,请参阅资源类以获得完整的属性列表。


以下指令用于设置波特率:

my_instrument.baud_rate = 57600

你可能感兴趣的:(Python控制示波器,python)