Как я могу общаться между 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
привет