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"))

這樣顯得簡練些。

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