Linux下使用Pyvisa连接GPIB设备【Linux】【pyvisa】

本文介绍了如何在Linux环境下安装keysight I/O suite和pyvisa,通过实例展示了如何查找并连接硬件设备,解决找不到visa库的问题,以及如何设置环境变量。此外,还提到了在无硬件设备时使用pyvisa-sim进行模拟测试的方法。

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

前言

作为一个刚刚开始接触硬件的萌新,所以希望能够通过自己的踩坑记录,让后来者能够减少踩坑的次数。有讲的不对的,或者有其他建议的,希望大佬们不吝赐教。

快速开始

安装

安装keysight I/O suite。

pyvisa依赖I/O库来跟硬件设备进行通信,所以我们需要一个visa库来进行命令的转发

1.安装链接:https://www.keysight.com.cn/cn/zh/lib/software-detail/computer-software/io-libraries-suite-downloads-2175637.html。
2.只需要安装IOLS即可,另外一个驱动提供了其他的功能,不在本次的讨论范围。(关于安装的话,没有特别需要注意的,安装的位置默认是在/opt/keysight下)
None

安装pyvisa

因为在linux上,所以为了不影响其他用户,这里使用-U进行非全局安装。

pip install -U pyvisa

Demo

获取已连接设备

import pyvisa as visa

# 显示所有的已连接设备,方便后续连接
rm= visa.ResourceManager()
list_instr = rm.list_rrsources()
print(list_instr)

这里有一个坑,就是在rm= visa.ResourceManager(),这里如果不传入参数,pyvisa会自行寻找存在的visa库,进行连接,但是我自己在安装完成之后,环境变量没有自动设置,所以就会报错。报错内容是:ValueError: No class registered for InterfaceType.gpib, INSTR
这时候就需要手动去指定我们需要使用的visa库,这里安装的keysight visa库的路径默认是/opt/keysight/iolibs/libktvisa32.so

  1. 第一种办法是在rm= visa.ResourceManager(visa_path) 在创建rm对象的时候手动传入

    rm= visa.ResourceManager('/opt/keysight/iolibs/libktvisa32.so')
    
  2. 第二种就是设置环境变量,因为pyvisa在扫描的时候,实际上会首先扫描PYVISA_LIBRARY这个环境变量是否存在,有的话,就会使用这个环境变量指定的visa库进行后续工作。

    export PYVISA_LIBRARY = /opt/keysight/iolibs/libktvisa32.so
    

最后我这边的结果如图所示:
在这里插入图片描述

连接在上一步查询到的设备

# 理论上通过visa库是可以连接很多中串口的设备的,具体的因为我这边没有做过测试,不做延伸。
fgen = rm.open_resource('GPIB0::1::INSTR')
# 使用这个命令就可以测试是否连接成功,成功的话就可以打印设备的一些信息。
print(fgen.query('*IDN?'))

补充

如果没有真实设备的话,实际上可以安装pyvisa-sim,这个是跟pyvisa同一个团队开发的提供simulator功能的python库。

自此,一个简单的Demo就完成了。
感谢观看。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值