1

我尝试将我的功率分析仪 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_TMO (-1073807339): Timeout expired before operation completed.

不管超时设置有多大。我猜问题出在语法上, Power_Analyser.query_ascii_values('P?',datatype='s')[0]但我不知道什么是正确的语法。

我查看了我的设备手册: https ://scdn.rohde-schwarz.com/ur/pws/dl_downloads/dl_common_library/dl_manuals/gb_1/h/hmc80115/HMC8015_SCPImanual_en_01.pdf

但似乎没有任何效果,python VISA 没有任何明确的解释,我对此没有任何经验。有谁知道如何解决这个问题?

4

1 回答 1

1

在对(新)VISA 仪器的连接问题进行故障排除时,我通常会执行以下操作:

  • 确保它已正确连接。就像,在 Windows 上,显示在设备管理器中。并且在 NI-MAX 中——前提是安装了 National Instrument 的 VISA 框架。
  • 确保它的 VISA 地址(或有根据的猜测)显示在 VISA 资源管理器返回的列表中:rm.list_resources()在您的代码中。
  • 使用给定的显式 VISA 地址打开资源:就像rm.open_resource('ASRL3::INSTR')在您的代码中一样。
  • 保留默认配置的资源。
  • 发送最基本的命令,例如*IDN?API 是否基于SCPI

仅当失败时,我才配置特定的通信设置,例如.write_termination.read_termination.timeout。100 ms 的超时时间通常可以。为了确定,请稍等片刻。

在您的代码中,您从一开始就设置.values_format.is_binaryTrue正确。但是你.query_ascii_values看到这没有失败,我会感到非常惊讶。显然,每种乐器都是不同的。尽管快速浏览了手册后,我没有看到任何迹象表明您的仪器实际上是。

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

于 2019-06-17T19:45:36.000 回答