Как я могу общаться с устройством через TCP/IP в Python?Python

Программы на Python
Ответить
Anonymous
 Как я могу общаться с устройством через TCP/IP в Python?

Сообщение Anonymous »

У меня есть измеритель LCR Agilent (Keysight) E4980A. Если я установлю пакет библиотек ввода-вывода Keysight, я смогу подключиться к устройству. Это означает, что, по крайней мере, у меня есть подходящий LAN-кабель (перекрестный!).
Если я отправлю команду «отправьте команду *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)
Что такое порт? В руководстве E4980A сказано:

Сокет — это конечная точка сетевого подключения; порт 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»