入门 PyVISA(一)

PyVISA 是一个 Python 软件包,可用来控制各种测量设备,而不受接口(如 GPIB、RS232、USB、以太网)的限制。例如,从 GPIB 编号为 12 的 Keithley 万用表读取IDN信息只需三行 Python 代码:

import pyvisa
rm = pyvisa.ResourceManager()
rm.list_resources()
('ASRL1::INSTR', 'ASRL2::INSTR', 'GPIB0::12::INSTR')
inst = rm.open_resource('GPIB0::12::INSTR')
print(inst.query("*IDN?"))

(这就是整个程序,really!)它可在 Windows、Linux 和 Mac 上运行,并可使用任意适配器(如 National Instruments、Agilent、Tektronix、Stanford Research Systems)。

PyVISA

PyVISA 是VISA 库的前端。它可在 Python 3.6+ 上运行。VISA 的全称是虚拟仪器软件架构 (Virtual Instrument Software Architecture)。VISA 是一种标准,用于配置、编程和故障诊断包含 GPIB、VXI、PXI、串行、以太网和/或 USB 接口的仪器系统。PyVISA 可以通过pip命令安装。

$ pip install -U pyvisa

VISA Specification 与 Visual Basic、C 和 G(LabVIEW 的图形语言)有明确的绑定。Python 可用于调用 VISA 共享库(.dll、.so、.dylib)中的函数,从而直接运用标准实现。此外,Python 还可用于直接访问仪器使用的大多数总线系统,因此可以设想直接在 Python 中实现 VISA 标准(参见 PyVISA-Py 项目)。

需要注意的是 PyVISA 既是 VISA 共享库的 Python 封装器(wrapper),也可作为其他 VISA 实现的前端,如 PyVISA-Py。

PyVISA Backend

PyVISA 后端是实现 PyVISA 与仪器之间通信协议的模块。PyVISA 包含一个封装了NI公司 VISA 库的后台。不过,需要自行下载并安装该库(参见 NI-VISA 安装)。不同供应商有多种 VISA 实现。PyVISA 针对NI VISA 和 Keysight IO 库套件进行了测试,这两种库都可以免费下载(不需要开发环境,只需要驱动库)。

PyVISA 适用于 32 位和 64 位 Python,无需额外配置即可处理 32 位和 64 位 VISA 库。但是需要确保 Python 和 VISA 库的位数相同。

一个例子是PyVISA-py, 它是一个纯 Python 后端,使用跨平台库进行串行/USB/GPIB/以太网通信。如下使用 pip 进行安装。

$ pip install -U pyvisa-py

通过 添加 @py 到VISA资源管理器,运行代码如下:

import pyvisa
rm = pyvisa.ResourceManager('@py')

但目前,PyVISA-Py 只实现了 VISA 标准的有限子集,并不支持所有总线系统上的所有协议。

测试 PyVISA 安装成否

可以启动 python 并创建一个 ResourceManager 来检查 PyVISA 是否已正确安装:

import pyvisa
rm = pyvisa.ResourceManager()
print(rm.list_resources())

您可以直接从 GitHub 安装最新的开发版本(风险自担):

$ pip install -U git+https://github.com/pyvisa/pyvisa.git

配置 Backend

目前有两个Backends可用: pyvisa 包含的Backend,其使用 IVI 库(包括 NI-VISA、Keysight VISA、R&S VISA、tekVISA 等)和 pyvisa-py 提供的Backend(它通过VISA 库的纯 python 实现)。如果没有指定Backend,pyvisa 会在安装了 IVI 库的情况下使用 IVI 后端。如果没有,则使用 pyvisa-py 后端。

可以通过向 ResourceManager 传递参数来选择所需的Backend,如添加 @py 到VISA资源管理器可选择到pyvisa-py 后端。也可以通过设置环境变量 PYVISA_LIBRARY 来选择。它的取值与 ResourceManager 构造函数相同。

配置 IVI backend

IVI 后端要求首先安装 IVI-VISA 库。例如,可以使用 NI-VISA 或合适的其他库。在多数情况下,PyVISA 能够找到共享VISA库的位置。如果不行,或想用另一个库,则要在ResourceManager 构造函数提供库路径:

rm = ResourceManager('Path to library')

你可能感兴趣的:(PyVISA,python,pip)