Распределённая система

ambi
Сообщения: 21
Зарегистрирован: 22 янв 2014, 14:30
Откуда: Минск

Re: Распределённая система

Сообщение ambi »

and909 писал(а):
15 ноя 2019, 10:34
Недавно тоже реализовывал распределенною систему:
Есть Мастер ПЛК, есть несколько единиц оборудования (сейчас 7 шт, может ещё 2 появятся и это не предел), в каждой установлены DVP-SE со своим алгоритмом.

Слейвы сообщают мастеру информацию по текущему ТП и получают от него задание.
Реализовано через Data Exchange на каждом слейве - ПЛК посылает данные на выделенный для него адрес в Мастере и аналогично забирает из Мастера.
Контроль связи реализован через выделенный бит в посылке, который периодически сбрасывается. Если посылка не пришла - бит остается равен 0, авария.

По такой схеме Мастер освобожден от сетевых операций, Слейвы делают всё сами, это схема, скорее один Слейв - много Мастеров.
Насколько я знаю, в архитектуре "ведущий (мастер, клиент) - ведомый (слэйв, сервер)" обмен ВСЕГДА конфигурируется на стороне активного узла, т.е. того, который инициирует обмен - это мастер. Когда Вы настраиваете обмен в Data Exchange, Вы тем самым как раз и делаете данный узел мастером, а второй стороне нужно лишь отвечать на запросы мастера, т.е. она есть слэйв.
Поэтому верно Ваше последнее предположение - у Вас один Слэйв и много Мастеров.

И Мастер (который по факту все же Слэйв) у Вас не освобожден от сетевых операций.
Он обязан отвечать на запросы 7-ми Мастеров - других ПЛК. При этом частота запросов у Вас настраивается в семи разных местах.
Что он делает, когда одновременно получает запрос от 5-ти разных мастеров - фиг его знает, может 4 из 5-ти игнорит, а может как-то ставит их в очередь.

Он освобожден от организации обмена, диспетчеризации - это да.
Может быть, это экономит ресурсы его процессора, но вряд ли это критично.

Я бы сделал по схеме "1 мастер - 7 слэйвов". Тогда весь обмен настраивается в одном месте, на одном ПЛК, мастере.
Надо лишь определить непересекающееся адресное пространство для данных каждого слэйва.
Пример на скриншоте. Мне думается, так "идеологически" более правильно, и так просто удобнее. :)
2020-11-19_Data Exchange.png
2020-11-19_Data Exchange.png (18.88 КБ) 919 просмотров
Хотя, если у Вас расширяемая система с добавлением узлов, возможно, Ваша схема более удачна.
По-моему, каждый ПЛК имеет свое ограничение на кол-во соединений в таблице Data Exchange.

Ответить