无法使用Python和PyVisa连接到特定的以太网端口

KMB*_*KMB 4 python visa

我试图通过Python中的pyVisa通过以太网连接连接到温度室.设备只允许通过端口2049连接.我通过PuTTYHyperTerminal连接到它没有问题,但是当我在Python中尝试此命令时

import visa
chamber = visa.instrument("TCPIP::10.2.17.130::2049")
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

VI_ERROR_RSRC_NFOUND:系统中不存在位置信息不足或请求的设备或资源

我知道设备在那里是因为我可以在PuTTY中通过它进行讨论,但我似乎无法使Python代码工作.任何提示?pyvisa 默认使用SSH吗?

小智 5

访问VISA资源的最简单方法(恕我直言)仍然是使用VISA设备检测,它将通过:

  • visa.ResourceManager().list_resources(),如果你正在使用 pyVisa
  • 或者viFindRsrc()viFindNext(),如果您使用的visa32.dll库.

现在默认情况下,使用任一方法都不会检测到LAN连接.这有两个选择:

  • 如果你已经安装了NI-MAX(在测量和自动化资源管理器美国国家仪器公司是一个免费下载),请在"设备和接口",右键单击"网络设备",选择"创建新VISA TCP/IP资源.. .并按照说明操作.NI-MAX将自动检测您的仪器并提供其VISA资源名称.请注意,现在此资源将由两者列出list_resources()viFindRsrc()/viFindNext()
  • 如果没有,您将必须为VISA提供正确的资源名称.如果您使用VISA通行证(例如,用于LeCroy示波器的VICP),则应适当更改VISA标头(用VICP替换TCPIP).然后,语法如下:[visa-header] :: [instrument-ip] :: INSTR[visa-header] :: [instrument-ip] :: [instrument-port] :: INSTR

实际上,它并不总是INSTR,具体取决于资源类(请参阅http://zone.ni.com/reference/en-XX/help/371361J-01/lvinstio/visa_resource_name_generic/).

确保将字节字符串发送到仪器(特别是如果使用Python 3+),否则会出现以下错误:

VI_ERROR_RSRC_NFOUND:系统中不存在位置信息不足或请求的设备或资源

也可以通过0xBFFF0011或者返回值来识别-1073807343.


Qia*_*iau 4

您确定恒温箱支持 LAN 仪器协议吗?

如果不确定,请尝试使用原始套接字,即

chamber = visa.instrument("TCPIP::10.2.17.130::2049::SOCKET")
Run Code Online (Sandbox Code Playgroud)

(pyvisa默认不使用SSH)