PyVisa可列出以太网设备但打开资源时报错[Python3.11]
解决TTI QPX1200SP电源以太网VISA连接报错VI_ERROR_RSRC_NFOUND
可能的原因及修复步骤
1. 修正VISA资源字符串格式
TTI QPX系列电源的SOCKET连接通常需要调整资源字符串后缀,尝试将::SOCKET替换为::INSTR:
ttipsu = 'TCPIP0::10.10.0.27::9221::INSTR'
若仍无效,可尝试省略端口后的标识,让VISA自动适配:
ttipsu = 'TCPIP0::10.10.0.27::INSTR'
2. 切换至pyvisa-py纯Python后端
如果NI-VISA的visa64.dll存在兼容性问题,可改用无需依赖NI库的pyvisa-py后端:
先安装依赖:
pip install pyvisa-py
再修改初始化代码:
import pyvisa as visa rm = visa.ResourceManager('@py') # 指定使用pyvisa-py后端 print(rm.list_resources(query='TCP?*')) ttipsu = 'TCPIP0::10.10.0.27::9221::SOCKET' psu = rm.open_resource(ttipsu)
3. 检查电源网络通信设置
- 确认QPX1200SP的以太网菜单中VISA/TCP服务已启用,且端口号设置为9221(默认端口为9221,可在设备菜单验证)。
- 检查设备是否限制了IP访问,确保你的主机IP在允许连接的范围内。
4. 增加连接超时参数
连接超时可能触发资源未找到的错误,尝试设置更长的超时时间:
psu = rm.open_resource(ttipsu, open_timeout=5000) # 设置5秒连接超时
5. 验证NI-VISA配置(若使用NI后端)
打开NI MAX(Measurement & Automation Explorer):
- 手动将
TCPIP0::10.10.0.27::9221::INSTR添加到设备列表,完成后再尝试代码连接。 - 确认NI-VISA版本与Python的32/64位位数匹配,避免位数不兼容导致的资源识别失败。
内容的提问来源于stack exchange,提问作者smajli
相关产品推荐
相关产品推荐

