news 2026/8/22 16:57:31

如何用 PyVISA 让 Python 自动操控 GPIB / USB / TCP/IP 测量仪器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何用 PyVISA 让 Python 自动操控 GPIB / USB / TCP/IP 测量仪器

如何用 PyVISA 让 Python 自动操控 GPIB / USB / TCP/IP 测量仪器

【免费下载链接】pyvisaA Python package with bindings to the "Virtual Instrument Software Architecture" VISA library, in order to control measurement devices and test equipment via GPIB, RS232, or USB.项目地址: https://gitcode.com/gh_mirrors/py/pyvisa

桌上摆着一台示波器、一台电源,你希望它们自己吐数据,而不是手动抄读数。VISA(虚拟仪器软件架构)是仪器通信的行业标准,GPIB、串口、USB、网口这些接口各有各的脾气。PyVISA 把 VISA 标准封装成一套 Python API:装好之后,一段代码就能同时驾驭不同接口、不同厂商的仪器,不需要硬件厂商驱动也能跑起来。

🔌 PyVISA 安装步骤:一条 pip 命令 + 选对后端

pip install pyvisa

PyVISA 本身只是一层壳,真正干活的是后端——底层驱动的实现包。选哪个,看你的机器现在有什么:

后端什么时候选它安装方式
ivi(NI-VISA)系统装了 VISA 驱动套件,功能最全、最稳无需额外安装,装好驱动即默认启用
py(pyvisa-py)没有任何驱动,想要跨平台的纯 Python 实现pip install pyvisa-py
serial(PySerial)只玩 RS232 串口,要一个轻量方案pip install pyserial

拿不准就先装pyvisa-py,后面可以无感切换。

📡 3 行代码列出全部设备,跑通第一次 *IDN? 查询

打开仪器前,先确认机器能看到它。*IDN?是 SCPI 里的身份命令,应答里带着厂商、型号、序列号,是验证连接最省事的一招:

import visa rm = visa.ResourceManager() # 创建资源管理器,自动挑默认后端 for name in rm.list_resources(): # 枚举全部可见仪器 box = rm.open_resource(name) # 打开其中一台 print(box.query("*IDN?")) # 身份查询 box.close()

列表为空别急着怀疑代码,先查线缆和驱动,后面有一节专门排这个错。

⚡ 读测量值、下指令:PyVISA 最常用的 3 个方法

读数值。思路:query()一次完成"发命令 + 等应答";返回的字符串想直接变数字,就用query_ascii_values一步转成数值列表,省掉手动 split:

meter.timeout = 2000 # 读数慢的设备,把等待从默认 5 秒放宽 sample = meter.query_ascii_values("MEAS:VOLT:DC?") # "3.291,3.294" -> [3.291, 3.294]

下指令。write()是单向发送,不需要应答;参数格式务必照手册抄,单位符号一个都别少:

gen.write("FREQ 10e6") # 让信号源输出 10 MHz

⏳ PyVISA 异步读取:长任务别把进程卡死

耗时几十秒的批量读数,同步调用会把整个程序挂起。思路:用read_asynchronously()把读取放到后台 job,主循环隔一会儿查一次缓冲区,非空即可取数:

meter.query("MEAS:VOLT:DC?") # 先发起测量 buf = meter.read_asynchronously() # 后台开始读,立即返回 while buf is None: # 轮询 job 状态 buf = meter.read_asynchronously() values = buf[:] # 拿到字节后转成数值

需要事件驱动而不是轮询时,再看wait_on_event(),那是进阶话题。

生态怎么搭:PyVISA 只管搬数据

PyVISA 只负责把字节搬进 Python,剩下各环节交给分工明确的库:

  • numpy:把读数变成数组,做均值、方差等数学运算
  • scipy:滤波、插值等信号处理
  • pandas:把多轮采集整理成表,落盘或出报表
  • matplotlib:画波形、出报告
  • pyserial:pyvisa-py / serial 后端处理串口的底层依赖

一条线串起来:采集 → 入库 → 画图。

新手常见卡点:资源、超时、后端 3 问

现象原因处理
list_resources()返回空没插上、地址没对、驱动没装查线缆与 GPIB 地址;核对资源名写法,如GPIB0::5::INSTRASRL1::INSTRTCPIP::192.168.1.10::inst0::INSTR
读数据报VisaIOError超时默认等待只有 5 秒调大instrument.timeoutdel instrument.timeout设为无限等待(谨慎使用)
创建 ResourceManager 就报错,提示找不到后端既没装 NI-VISA 也没装 pyvisa-pypip install pyvisa-py,不动任何硬件驱动

还有一件顺手的事:python -m visa能进交互式命令行,直接listopenquery,比跑脚本更快定位问题。

下一步:官方文档与社区

  • 深入属性、事件、二进制块读取:docs/source/api/index.rst
  • 安装与资源命名等常见问题:docs/source/faq/faq.rst
  • 想看 ResourceManager 和 Resource 的实现:pyvisa/highlevel.py

仓库地址:https://gitcode.com/gh_mirrors/py/pyvisa,需要完整源码时 clone 下来即可。

【免费下载链接】pyvisaA Python package with bindings to the "Virtual Instrument Software Architecture" VISA library, in order to control measurement devices and test equipment via GPIB, RS232, or USB.项目地址: https://gitcode.com/gh_mirrors/py/pyvisa

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/22 16:57:00

untrunc:不重新编码修复损坏 MP4/MOV 视频文件

untrunc:不重新编码修复损坏 MP4/MOV 视频文件 【免费下载链接】untrunc Restore a truncated mp4/mov. Improved version of ponchio/untrunc 项目地址: https://gitcode.com/gh_mirrors/un/untrunc 很多 MP4/MOV 文件"播不了",并不等…

作者头像 李华
网站建设 2026/8/22 16:56:21

LlamaIndex 系列【4】入门案例(阿里云百炼适配)

文章目录1. 高层概念1.1 大语言模型(LLMs)1.2 智能体应用(Agentic Applications)1.3 智能体(Agents)1.4 检索增强生成(RAG)1.5 五大核心应用形态2. 安装与环境配置2.1 创建工程2.2 安…

作者头像 李华
网站建设 2026/8/22 16:54:56

Java求职Day51:Spring Boot整合与JVM调优实战

1. Java求职学习路线解析:第51天实战指南作为一名经历过Java求职全过程的开发者,我深知系统化学习的重要性。Day51通常意味着学习者已经掌握了Java基础、面向对象编程和部分框架知识,正处于从理论学习向项目实战过渡的关键阶段。这个时间节点…

作者头像 李华
网站建设 2026/8/22 16:54:38

Arcface-PyTorch 完整实操:5 步搞定人脸识别模型训练与 LFW 评估

Arcface-PyTorch 完整实操:5 步搞定人脸识别模型训练与 LFW 评估 【免费下载链接】arcface-pytorch 这是一个arcface-pytorch的源码,可以用于训练自己的模型。 项目地址: https://gitcode.com/gh_mirrors/arc/arcface-pytorch Arcface-PyTorch 是…

作者头像 李华
网站建设 2026/8/22 16:54:30

OpenAI暂停Astra训练警示:AI前沿训练中的网络风险与安全实践

这类消息出来,最值得关注的不是“暂停”这个动作本身,而是它背后指向的“前沿训练”到底在做什么,以及“网络风险”具体指什么。对于开发者、研究者和关注AI安全的人来说,这更像是一个信号,提醒我们在追求模型能力突破…

作者头像 李华
网站建设 2026/8/22 16:54:28

贪心算法与组合编码实战:从双数极值配对到卡牌状态压缩

1. 项目概述:从“干货版”到实战算法思维看到“干货版《算法导论》”这个标题,很多朋友可能会心一笑。经典如《算法导论》,其理论深度与严谨性毋庸置疑,但对于许多需要快速上手、解决实际工程问题的开发者而言,其庞大的…

作者头像 李华