Если я отправлю команду «отправьте команду *IDN?», я получу ответ:
Код: Выделить всё
Agilent Technologies,E4980A,MY46203491,A.06.17Однако я хочу обращаться к устройству из собственных приложений Python (Python 3.7, Windows 10 ).
Я начал с этой инструкции и обнаружил, что вам нужны некоторые «незначительные» адаптации (т.е. байты(str,encoding) вместо просто строки и print()) .
Код: Выделить всё
#!/usr/bin/env python
import socket
TCP_IP = '169.254.215.142'
TCP_PORT = 5024
BUFFER_SIZE = 1024
MESSAGE = bytes("*IDN?",'ansi')
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((TCP_IP, TCP_PORT))
s.send(MESSAGE)
data = s.recv(BUFFER_SIZE)
s.close()
print("received data:", data)
Сокет — это конечная точка сетевого подключения; порт 5024 и порт
5025 предусмотрены для разъемов E4980A/AL. Порт 5024
предусмотрен для диалогового управления с помощью telnet (программа пользовательского интерфейса
для протокола TELNET) и порт 5025 для управления из
программы.
Если я использую порт 5025, я получаю тайм-аут.
Если я использую порт 5024 и отправляю команду *IDN? или независимо от того, что я отправляю, я получить ответ:
Код: Выделить всё
received data: b'Welcome to E4980A SCPI parser.\r\n\r\nSCPI> '
Однако есть аналогичный вопрос, использующий pyvisa, но решения нет.
Подробнее здесь: https://stackoverflow.com/questions/728 ... -in-python
Мобильная версия