PyVisa教程-用Python控制仪器【2,连接您的仪器】

连接您的仪器

提示

如果应用PyVisa 1.5以前版本,请参阅Migrating from PyVISA < 1.5.

一个例程

让我们直入主题,看一个简单的例程:

>>> import visa

>>> rm = visa.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的两个目标,精简化,面向对象方法。输入visa模块之后,创建了ResourceManager对象。如果没有指定,PyVisa将使用默认的后台(NI-Visa)。可以通过以下方式查看:

>>> print(rm)

<ResourceManager('/path/to/visa.so')>

提示

某些情况下,PyVisa找不到相应的库,则返回OSError。需要找到库路径,传递给ResouceManager,解决该问题。也可以通过设置配置文件,详见设置后台

配置好ResourceManager之后,可以通过list_resource方法列出可用的资源,输出为VISA资源名称的元组,可以采用规律性的语法筛选所需的仪器。list_resources()描述了详细的语法,默认值为”?*::INSTR“,意为默认名称以”::INSTR“结尾的仪器(特定情况下,USB RAW和TCPIP SOCKET资源不会列出)。本例中,有一GPIB仪器编号为14,可以通过ResourceManager的open “GPIB0::14::INSTR”方法获取控制权,该对象命名为my_instrument。注意,open_resource返回了GPIBInstrument类实例。

 

>>> print(my_instrument)

<GPIBInstrument('GPIB::14')>

虽然有很多Resource子类来描述不同的资源,但不用担心ResourceManager提供合适的类。可以检查Resource Classes中类的方法和参数。

然后,通过”\*IDN?“查询该资源信息,这是一标准的GPIO信息”你是谁?“或者(某些情况下)”目前你显示的是什么?“query是write一消息紧跟read方法的简写形式。

因此:

>>> my_instrument.query("*IDN?")


等同于

>>> my_instrument.write('*IDN?')

>>> print(my_instrument.read())

串口设备(RS232)例程

如Oxford ITC4温度控制器,连接到电脑的COM2。以下代码打印该设备信息到显示屏。

itc4 = rm.open_resource("COM2")

itc4.write("V")

print(itc4.read())

替代独立的write和read操作,可以用query方法。以上代码等效于:

print(itc4.query("V"))

这样显得简练些。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章