Клиент Modbus TCP не подключается - PullRequest
0 голосов
/ 27 мая 2018

Справочная информация:

Я пытаюсь прочитать данные с моего счетчика энергии.Я подключил модем gprs к порту счетчика (через rs485).Этот модем отправляет данные по протоколу tcp-ip на указанный сервер и порт.На сервере (экземпляр aws ec2) я вижу соединение с устройства.

Вопрос:

Когда я пытаюсь подключиться к этому устройству с помощью PyModbus, я не могу открыть соединение.

from pymodbus.client.sync import ModbusTcpClient as Modbusclient
client= Modbusclient(host=<internal ip of the connection>, port=5025)
if client.connect():
    print("Connected")
else:
    print("Not Connected")

Ответ всегда "Не подключен".

Я гарантировал, что а) порт открыт.б) IP-адрес занесен в белый список на сервере

Почему я не могу подключиться?Что мне здесь не хватает?

1 Ответ

0 голосов
/ 05 июня 2018

В моем конкретном случае модем gprs действовал как шлюз serial-over-tcp. Поэтому мне пришлось создать последовательный порт и затем подключиться к нему.Я закончил тем, что сделал:

  1. Создание пары последовательных портов (например, p1 и p2) в Linux с помощью команды socat
  2. Создание простого слушателя tcp (используя библиотеку сокетов в python)
  3. Переслать все данные из порта tcp в p1
  4. Импорт ModbusSerialClient из pymodbus.client.sync
  5. подключиться к P2 с помощью последовательного клиента Modbus.
...