我正在尝试与支持 SCPI 的 BraggMETER 询问器进行通信。
操作系统:Windows 10
连接硬件:j5create JUH470 USB 3.0 Multi-Adapter Gigabit Ethernet / 3-Port USB 3.0 HUB
我的部分困惑:我应该作为 USB 设备还是作为 TCPIP 设备访问?
当我通过 Telnet 连接时,一切顺利。IP 地址和端口分别为 10.0.0.10 和 3500。
> telnet
> open 10.0.0.10 3500
:IDEN?
:ACK:HBM FiberSensing:FS22SI v3.0:08:046 840 200 898:20190116
:STAT?
:ACK:1
在 Python 中,我使用的是 pyvisa 库。
import easy_scpi as scpi
import pyvisa
DeviceAddress = '10.0.0.10'
DevicePort = '3500'
VISADevice = f'TCPIP0::{DeviceAddress}::{DevicePort}::SOCKET'
# Doesn't work either --> VISADevice = 'ASRL10::INSTR'
rm = pyvisa.ResourceManager()
print(rm.list_resources())
inst = rm.open_resource(VISADevice)
print(inst.query("*IDEN?"))
inst.close()
错误总是在rm.open_resource
。我尝试了许多连接字符串。他们给出了不同的错误。以下是其中三个:
pyvisa.errors.VisaIOError: VI_ERROR_INTF_NUM_NCONFIG (-1073807195): The interface type is valid but the specified interface number is not configured.
pyvisa.errors.VisaIOError: VI_ERROR_TMO (-1073807339): Timeout expired before operation completed.
pyvisa.errors.VisaIOError: VI_ERROR_RSRC_NFOUND (-1073807343): Insufficient location information or the requested device or resource is not present in the system.
更新 1
我下载了 National Instruments NI-Max 并使用了他们的 NI I/O trace。此连接字符串“有效”:
TCPIP::10.0.0.10::3500::SOCKET
但是,我仍然收到超时错误。尝试确保发送换行符终止字符并将超时时间提高到 5 秒(这确实生效,因为它延迟了超时错误的记录)。没有骰子。仍然给出超时错误。
更新 2
虽然设置不同,但其他人报告了使用 NI GPIB-to-USB 卡 (GPIB-USB-HS) 的问题。常见的线程是USB适配器...