#python #sockets #udp #modbus #plc
Вопрос:
У меня есть ПЛК и ноутбук, подключенные к сети. IP — адрес ПЛК-10.101.133.13, а ноутбука-10.101.133.14
Я хотел выполнить простую программу сокета с использованием python, и код выглядит следующим образом:
import socket ipaddr = "10.101.132.13"; port=3500; s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.bind((ipaddr,port))
Я получаю сообщение об ошибке [WinError 10049] Запрошенный адрес недействителен в контексте, указывающем на инструкцию s.bind ().
Пожалуйста, помогите мне избавиться от этого. Уже существует программа, связанная с MODBUS, работающая на ПЛК. Я хочу подключиться к ПЛК с помощью программирования сокетов python.
Ответ №1:
Привязка может быть выполнена только к локальному адресу. Похоже, вы пытаетесь привязаться к адресу другой системы, то есть ПЛК. Вы, вероятно, хотели connect
вместо этого обратиться к удаленной системе.
Комментарии:
1. Я не понимаю, что на самом деле подразумевается под локальным устройством или удаленным устройством. Я новичок в этих концепциях. Пожалуйста, пролейте немного света на то, что такое локальное устройство и чем оно отличается от точки зрения подключения и т.д. Кстати, как мне подключиться к ПЛК в таких случаях. Какие настройки в ПЛК я должен изменить/модифицировать, чтобы он мог взаимодействовать с ноутбуком?
2. @RajeshV: локальным устройством является ноутбук, то есть тот, который пытается подключиться к ПЛК. Вам нужно исправить свою программу, а не что-либо менять в ПЛК. Возможно, было бы полезно понять основные концепции сетевого программирования, особенно то, что делают bind и connect.