![](/img/trans.png)
[英]Cannot connect to the Apache CouchDb using Python - InvalidURL Nonnumeric port Exception
[英]Cannot connect to a specific Ethernet port using Python and PyVisa
我试图通过Python中的pyVisa通过以太网连接连接到温度室。 设备只允许通过端口2049连接。我通过PuTTY或HyperTerminal连接到它没有问题,但是当我在Python中尝试此命令时
import visa
chamber = visa.instrument("TCPIP::10.2.17.130::2049")
我收到此错误:
VI_ERROR_RSRC_NFOUND:系统中不存在位置信息不足或请求的设备或资源
我知道设备在那里是因为我可以在PuTTY中通过它进行讨论,但我似乎无法使Python代码工作。 任何提示? pyvisa默认使用SSH吗?
访问VISA资源的最简单方法(恕我直言)仍然是使用VISA设备检测 ,该检测将通过:
visa.ResourceManager().list_resources()
,如果你正在使用pyVisa
viFindRsrc()
和viFindNext()
如果您使用visa32.dll
库。 现在默认情况下,使用任一方法都不会检测到LAN连接。 这有两个选择:
list_resources()
和viFindRsrc()
/ viFindNext()
实际上,它并不总是INSTR ,具体取决于资源类(请参阅http://zone.ni.com/reference/en-XX/help/371361J-01/lvinstio/visa_resource_name_generic/ )。
确保将字节字符串发送到仪器(特别是如果使用Python 3+ ),否则会出现以下错误:
VI_ERROR_RSRC_NFOUND:系统中不存在位置信息不足或请求的设备或资源
也可以通过0xBFFF0011
或返回值-1073807343
来识别。
你确定临时室支持LAN仪器协议吗?
如果不确定,请尝试使用原始套接字,即
chamber = visa.instrument("TCPIP::10.2.17.130::2049::SOCKET")
(pyvisa默认不使用SSH)
尝试这个:
import socket
HOST = "10.2.17.130" # The remote host
PORT = 2049 # The same port as used by the server
s = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.