Python VI_错误\u TMO(-1073807339):操作完成前超时过期

Python VI_错误\u TMO(-1073807339):操作完成前超时过期,python,visa,pyvisa,Python,Visa,Pyvisa,我尝试将我的功率分析仪Rohde&Schwarz,HMC8015(“ASRL3::INSTR”)连接到我的计算机,并读取我的设备可以通过python VISA显示的任何数据。我的代码行有很多问题,它允许读取我的设备数据 我的代码是: import visa rm = visa.ResourceManager() name = rm.list_resources() #using with allows to close explicitly the resource at the end o

我尝试将我的功率分析仪Rohde&Schwarz,HMC8015(“ASRL3::INSTR”)连接到我的计算机,并读取我的设备可以通过python VISA显示的任何数据。我的代码行有很多问题,它允许读取我的设备数据

我的代码是:

import visa

rm = visa.ResourceManager()
name = rm.list_resources()

#using with allows to close explicitly the resource at the end of the script
with rm.open_resource('ASRL3::INSTR') as Power_Analyser:

    Power_Analyser.values_format.is_binary = True
    Power_Analyser.values_format.datatype = 'B'
    Power_Analyser.values_format.is_big_endian = False
    Power_Analyser.values_format.container = bytearray

    Power_Analyser.timeout = 25000 #2,5 seconds

    Power_Analyser.write_termination = '\n'

    Data = Power_Analyser.query_ascii_values('P?',datatype='s')[0]
    print(Data)

        #write the Data to a file on my PC
        PCfilePath = 'C:\\Users\\ApCha\\Documents\\Python Scripts\\a.txt'
        newFile = open(PCfilePath, "wb")
        newFile.write(Data)
        newFile.close()
它向我显示:
VisaIOError:VI_ERROR\u TMO(-1073807339):操作完成前超时。

无论超时设置的有多大。我猜问题出在语法上
Power\u analyzer.query\u ascii\u值('P?',datatype='s')[0]
但我不知道正确的语法是什么

我查看了我的设备手册:


但似乎什么都不管用,也没有为python VISA解释清楚,我对此没有任何经验。有人知道如何解决问题吗?

我通常会在解决(新)VISA仪器的连接问题时执行以下操作:

  • 确保连接正确。例如,在Windows上,显示在设备管理器中。在NI-MAX提供的国家仪器中安装了VISA框架
  • 确保其VISA地址(或经过教育的猜测)显示在VISA资源管理器返回的列表中:
    rm.list\u resources()
  • 使用给定的明确签证地址打开资源:如
    rm。在代码中打开资源('ASRL3::INSTR')
  • 保留资源的默认配置
  • 如果API基于,则发送最基本的命令,如
    *IDN?
只有在失败的情况下,我才能配置特定的通信设置,例如
.write\u termination
.read\u termination
.timeout
。100毫秒的超时通常就可以了。请稍等片刻,确定一下

在代码中,从一开始就将
.values\u format.is\u binary
设置为
True
。但是你可以
。查询ascii\u值。我会非常惊讶地看到这并没有失败。显然,每种乐器都是不同的。虽然在快速浏览了一下手册之后,我没有看到任何迹象表明您的仪器实际上是正确的

我的建议是:从默认通信设置开始,尝试获取对
*IDN?
命令的响应,然后从那里获取响应