Контроллер путает (перемешивает) Modbus TCP соединения

08 Jun Контроллер путает (перемешивает) Modbus TCP соединения

Anonymous asked June 8, 2022

Добрый день. Используем много WebHMI на объектах, версии разные 4.0 и 4.1. К контроллеру подключено по несколько устройств по Modbus TCP. Через продолжительное время возникают обрывы связи с устройствами, и WebHMI начинает путать приборы, я точно подаю сигнал на устройство 1, а на экране высвечивается у 2го. Помогает переинициализация (перезагрузка) WebHMI. Как я смог разобраться при инициализации проекта каждому соединению присваивается “номер соккета”, при обрывах TCP соединения меняются местами, а проект это не отслеживает и продолжает опрашивать по “номеру”, не контролируя IP адрес.  Как это можно побороть?

3 answers

Добрый день, нужно более точное описание проблемы:
конфигурация сети 

  • это modbus tcp устройства? или Modbus RTU, опрашиваемые через шлюз Ethernet – serial.
  • Сколько всего устройств (и шлюзов).  
  • проблема проявляется на одном или на всех WebHMI в подобной конфигурации. 
  • Топология сети (схема, чертеж)

как проявляется проблема 

  • данные с “чужого” устройства появляются на устройстве которое переставало читаться, или попадают на другое устройство, связь с которым не пропадала, при этом есть другие устройства, которые в данный момент не читаются.
  • периодичность возникновения проблемы, если ли повторяемость, закономерность,  макс. и мин. время за которое проблема точно проявляется
  • данные “путаются” только между 2 – мя устройствами? или больше

Для отладки проблемы, нам нужно ее воспроизвести на своем стенде. 

#1
  • На разных стациях есть разные шлюзы Modbus TCP – Modbus RTU; и чисто Modbus TCP контроллеры (логеры, инвертора).
  • устройств 4 – 16
  • проблема проявляется на всех WebHMI.
  • топология WebHMI – коммутатор – устройства. Более сложная один объект: WebHMI – сеть интернет (VPN туннель) – устройство, и локальные устройства через коммутатор. 

Проявляется проблема именно отображение данные с “другого устройства”, путаются местами устройства. В случае шлюзов Modbus TCP – Modbus RTU данные не отображаются если ID подчиненного устройства на “чужем” шлюзе нет. Перегрузка проекта WEBHMI (в меню выключить – включить любое соединение) помогает, все стает на свои места. Шлюзы и устройства при этом не трогаем.
По закономерности – чем больше обрывов связи тем быстрее эта ошибка возникает. Из опыта на одном объекте может повториться несколько раз в день, может месяц работать без проблем. На другом объекте где много однотипного оборудования “на глаз” определить что устройства поменялись местами трудно, так как данные похожие, до возникновения нештатной ситуации – увидели ошибку на одном устройстве, а ошибка на самом деле возникла на другом.
Путаются именно TCP соединения, не ID устройства.

#2

будем воспроизводить ошибку и отлаживать на стенде. 
Насчет того, как быстро “заметить” ошибку  – можно сделать “ловушку” на lua, которая будет сравнивать, что с устройства N читается ЗначениеN, пример его собственный адрес в сети, и при несовпадении отправит  Telegram – сообщение. 

#3

Пожалуйста войдите или зарегистрируйтесь чтобы добавить ответ