You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python通过GPIB读取SR865A锁相放大器报GPIBInstrument无ask属性错误

问题修复方案

核心原因

这个报错由PyVISA版本的方法名变更导致:PyVISA v1.5及之后的版本已经正式移除了旧版的ask()方法,等价的替换方法为query(),两者功能完全一致,都是向仪器发送SCPI查询指令并同步等待返回结果。

修复代码

你只需要修改get_all方法内的方法名即可,完整可运行代码如下:

import pyvisa as visa
import time,string
import random


class device:
    def __init__(self,visa_code='GPIB0::8::INSTR'):
        rm = visa.ResourceManager()
        self.device=rm.open_resource(visa_code)
        # 可选:设置5秒超时,避免仪器响应慢报错
        self.device.timeout = 5000
#get data    
    def get_all(self):
        # 把ask替换为query即可解决报错
        return self.device.query('SNAP? 0,1,2,3')
        
                          
if (__name__ == '__main__'):
    # 可选:补全INSTR后缀符合VISA地址标准格式
    add="GPIB0::14::INSTR"
    lockin=device(add)
    data=lockin.get_all()
    x=float(data.split(',')[0])
    y=float(data.split(',')[1])
    r=float(data.split(',')[2])
    theta=float(data.split(',')[3])

额外注意事项

  • 若你需要兼容新旧版本的PyVISA,也可以在类初始化后手动给实例绑定方法:self.device.ask = self.device.query,无需修改后续业务代码。
  • SR865A的SNAP指令返回的数值默认是科学计数法格式,直接用float转换不会出现格式问题。

内容的提问来源于stack exchange,提问作者rao han

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 06:57:01