news 2026/8/22 11:28:29

PyVISA 完整指南:Python 控制测量仪器,三分钟跑通

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PyVISA 完整指南:Python 控制测量仪器,三分钟跑通

PyVISA 完整指南:Python 控制测量仪器,三分钟跑通

【免费下载链接】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

你想用 Python 控制测量仪器。PyVISA 是测量设备通信的最短路径:它包装 VISA(仪器控制的事实标准库层),GPIB、USB、串口、TCP/IP,一套 API 全通。不依赖厂商驱动,纯 Python 也能兜底。

它凭什么让你少折腾

你手里有一台 GPIB 示波器。厂商驱动却只出了 Windows 版——

  • 统一接口:一套代码通吃仪器
  • 多后端:一句话切换驱动实现
  • 纯 Python 兜底:没驱动也能跑
  • 直接抛异常:不用查状态码

PyVISA 最短路径:8 行代码打开第一台仪器

终端里敲下——

pip install pyvisa

这段代码列出总线上的仪器。再打开 GPIB-14 那台示波器,问出身份,关掉。

import visa rm = visa.ResourceManager() print(rm.list_resources()) scope = rm.open_resource('GPIB0::14::INSTR') print(scope.query('*IDN?')) scope.close()

终端会打印出类似Agilent,MSO44,MY51234,4.00.102的字符串。四段分别是厂商、型号、序列号、固件版本。这就是仪器对“你是谁”的标准回答。⚡

三个你大概率会碰到的场景

怎么让脚本每 500ms 采一次电压并落盘

万用表已经挂在总线上。你要一个日后能打开的文件。

import visa, time rm = visa.ResourceManager() mm = rm.open_resource('GPIB0::12::INSTR') mm.timeout = 1000 with open('voltage.csv', 'w') as f: for _ in range(20): f.write(mm.query('MEASURE:VOLT?') + '\n') time.sleep(0.5) mm.close()

跑完 10 秒,目录里多出一个 20 行数字的 voltage.csv。

怎么把 USB 总线上的仪器一次列全

开工之前,你甚至不知道手头有几台仪器。

import visa rm = visa.ResourceManager() for name in rm.list_resources('USB*'): inst = rm.open_resource(name) print(name, inst.query('*IDN?')) inst.close()

终端每行一条“资源名 + 厂商型号”。直接粘进表格,就是实验室的设备清单。

长任务进行中:怎么轮询又不卡住主线程

频谱仪在跑一次长扫描。主线程还想继续写日志。

import visa, time rm = visa.ResourceManager() inst = rm.open_resource('TCP/IP::192.168.1.50::INSTR') inst.timeout = 1000 inst.write('INIT') while inst.query('MEAS:PROG?') != '100': time.sleep(0.5) print('测完了,读数据')

主线程每 500ms 醒一次看一眼进度。日志和界面全程不卡。

装完就报错?先看这三条

  • LibraryNotFoundError,找不到 VISA 库 → 默认后端要 NI-VISA 共享库,没有就pip install pyvisa-py,纯 Python 后端接管。✅
  • open_resourceInvalidResourceName→ 资源名对着list_resources()的输出逐字核对,板号和接口都敏感。
  • 读数据总是超时 → 多半是串口波特率没对上,先确认 9600 波特率和换行符。

顺手搭个数据闭环:让 PyVISA 的数据跑起来

  • pandas:把刚才落盘的 CSV 变成 DataFrame,极值、均值一行出。
  • numpy:仪器回传的逗号分隔 ASCII 直接解析成数组,喂给 FFT。
  • matplotlib:三行画出电压随时间的曲线,噪声底一眼看见。
  • pyvisa-py:没有厂商驱动时,这个纯 Python 后端就是 PyVISA 能启动的原因。🔧

完整 API 清单和后端说明,见仓库 docs 目录下的官方文档。

打开终端,把那条 pip 命令敲进去。三十秒后,你就在跟仪器说话了。

【免费下载链接】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 11:26:22

NoFences:免费的 Windows 桌面分区工具指南

NoFences:免费的 Windows 桌面分区工具指南 【免费下载链接】NoFences 🚧 Open Source Stardock Fences alternative 项目地址: https://gitcode.com/gh_mirrors/no/NoFences NoFences 桌面分区是一款完全免费的开源工具,用来把 Windo…

作者头像 李华
网站建设 2026/8/22 11:25:05

机器学习分类模型实战:从原理到工程落地的完整指南

1. 项目概述:从“分类”这个核心动作说起“数学建模分类模型”——这个标题听起来很学术,但它的内核其实是我们每天都在面对的问题。简单来说,就是教会计算机,如何根据已有的经验(数据),去判断一…

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

内网渗透测试

七个阶段第一阶段:前期交互(Pre-engagement)确定测试范围和目标。第二阶段:情报搜集(Intelligence Gathering)指纹:操作系统 子域名 端口 被动监听第三阶段:威胁…

作者头像 李华
网站建设 2026/8/22 11:20:19

AI全栈知识15:AI应用的可观测性 - Token监控与成本控制

AI全栈知识15:AI应用的可观测性 - Token监控与成本控制 写在前面 你维护一个普通微服务,监控很简单:QPS、延迟、错误率、CPU、内存。这些指标稳定可预测,每次请求消耗的资源基本一致。 AI服务不一样。同一个接口,用户…

作者头像 李华
网站建设 2026/8/22 11:18:14

技术驱动下的零边际成本趋势:AI、自动化与能源如何重塑未来经济

这次我们来看一个关于技术发展趋势的讨论话题:“未来一切或将免费”。这个观点由埃隆马斯克提出,并非一个具体的开源项目或软件工具,但它触及了人工智能、自动化、能源等前沿技术发展的核心逻辑。对于开发者、创业者和技术爱好者而言&#xf…

作者头像 李华