Автоматическое обнаружение подчиненного идентификатора устройства Modbus в сети
Как определить, является ли устройство, подключенное к сети, устройством Modbus после получения действительного диапазона IP-адресов с помощью механизма широковещания или Как автоматически определить идентификатор ведомого устройства Modbus, подключенного к шлюзу?
2 ответа
В контексте Modbus TCP slaveId не используется для идентификации устройства Modbus. IpAddress используется для идентификации устройства Modbus, если устройство поддерживает Modbus TCP/UDP.
если вы хотите обнаружить устройства Modbus в локальной сети, как вы упомянули, вы можете отправить широковещательное сообщение на весь диапазон IP-адресов. Но нет предопределенного регистрационного адреса для опроса. Каждое устройство Modbus может быть сконфигурировано по разному адресу.
Отправьте запрос TCP-соединения для каждого:502.
И затем для каждого подключенного устройства, например, инструмента Modscan, вы можете написать свою собственную логику для сканирования всех регистров в каждом обнаруженном устройстве Modbus.
Вы можете попробовать использовать nmap:
здесь вы можете найти учебник для использования.
Вы также можете использовать Metasploit-framework (msfconsole):
- Утилита Modbus Client, вы можете читать / писать на модус устройства
- Modbus Version Scanner, для обнаружения службы Modbus
- Modbus находит идентификатор устройства, он работает только по протоколу Modbus TCP/IP, отправляет запрос "0x04" на все идентификаторы Modbus (0-254) и проверяет ответ.