Как я могу общаться между delta plc с поддержкой Ethernet и python pymodbustcp

Пожалуйста , помогите мне Мой первый тест проводился с ПЛК Delta DVP-12SE11R, и соединение было с протоколом Modbus TCP/IP. У меня есть код Python, написанный с использованием модуля pymodbustcp. Я протестировал этот код с помощью симулятора ведомого устройства Modbus, и он работает правильно. Чтение и запись необходимых регистров на тренажере. Мой вопрос в том, когда я подключаю оборудование plc к ПК и предоставляю ip-адрес plc и номер порта в код Python, и он начинает читать и записывать регистры, которые я указал в коде, или мне не хватает чего-то, что требуется для связи?

Вот что я использую:

from pyModbusTCP.client import ModbusClient
c=ModbusClient(host='localhost',port=9999,auto_open=True)

regs=c.read_holding_registers(403705,1)
print("reading register values")


if regs:
    print(regs)
else:
    print("error")

print("write value to register")
a=int(input())
c.write_single_register(403705,a)

Я проверял с помощью симулятора tcp ссылки на python, и он безупречно работает с симулятором.

1 ответ

Я не эксперт, но в вашем коде вам нужно изменить «localhost» на IP-адрес ПЛК, потому что «localhost» = 127.0.0.1 на вашем компьютере, а не на вашем ПЛК.

У меня есть другая идея: если вы уже изменили IP-адрес ПЛК в своем коде, ПЛК находится в той же сети? , если вы работаете в другой сети, вам нужно работать в той же сети

наконец, порт: 9999 правильный? обычно для modbusTCP порт по умолчанию равен 502, вы можете изменить порт по своему усмотрению, но вам нужно проверить порт :D

привет

Другие вопросы по тегам