Стартовая страница › Форумы › Понять, как работает ПО › RapidGate и принимающий Сервер
- В этой теме 4 ответа, 2 участника, последнее обновление 2 года, 5 месяцев назад сделано manjey73.
-
АвторСообщения
-
14.10.2021 в 11:51 #21056manjey73Участник
В общем выключился передающий Сервер (дома свет выключали надолго) и тут я надумал поменять значение на принимающем Сервере.
1. В Web нет никакой идентификации при отправке команды, что нет связи с передающим сервером
2. По уму надо бы на принимающем сервере по аналогии делать в Администраторе Шлюзы.
Например как линии в Коммуникаторе сделать аналогично Gate-ы в разделе Сервера
Хоть в ручном режиме, хоть в автоматическом, лучше в автоматическом при первом подключении, чтобы там появлялась запись в дереве типа
RapidGate ->
Gate IP 1
Gate IP 2
Настройки для шлюзов типа контролировать связь или нет, какой-то набор служебных переменных типа GOOD/BAD качества связи, Время последней связи и возможно что-то еще.
Данные переменные должны иметь возможность привязываться на мнемосхемы.При передаче команды в удаленный Сервер Web должен реагировать исходя из этих служебных переменных, что нет связи, ваша команда не может быть исполнена и так далее.
А то в тихаря что-то оправляешь, а там нет связи и привет….
14.10.2021 в 15:27 #21060MikhailМодератор1. Отправка команд ТУ широковещательная на все подключенные клиенты. Поэтому по архитектуре определять, доставлена команда или нет можно только по результату её выполнения.
Кстати на конечном сервере можно в формулу канала управления добавить какой-нибудь счётчик принятых команд.2. Здесь поможет контроль Heart Beat. Идея такая: значение канала на принимающем сервере постоянно меняется. Например, 0, 1, 0, 1… На главном сервере записывается с помощью формул и дорасчётных каналов время последнего изменения. Если разность с текущим временем больше заданной, то поднимать флаг пропадания связи.
Gate — это подключенный клиент с произвольным именем пользователя. Сделать связку подключенных клиентов и каналов без Heart Beat проблематично.
14.10.2021 в 16:02 #21065manjey73УчастникСтоп, команда ТУ прежде всего исходит ОТ клиента в Сервер, Сервер должен знать, что получаемое устройство не на связи, тот же Gate отвалился и выдать соответствующее сообщение клиенту.
у Gate как правило есть IP адрес, с которого происходит отправка на порт 10000, и даже если пойти дальше, если роутеры делают подмену и так далее, то как минимум у Gate должен быть ID, либо присвоенный автоматом, или лучше если его придумать и прописать самим в самом Gate когда мы его запускаем.
Опять же, в Администраторе главного Сервера тоже неплохо бы видеть списки каналов и их соответствия. А то иначе приходится лезть на передающий Сервер и смотреть и сверять что есть что…
На счет меняющихся 0 и 1 может быть проблема, а если Gate настроен на очень редкую передачу данных?
Хотя вроде ранее говорили об этом, должны быть служебные каналы для таких вещей. А то если Gate передает основные каналы раз в 30 минут и пропадет связь, мы об этом можем узнать только в течении этих самых 30 минут, то есть ДО 30 минут практически включительно, что не есть хорошо.15.10.2021 в 17:29 #21070MikhailМодераторGate — это не устройство, а клиент, подключенный к Серверу, такой же как Коммуникатор и Вебстанция.
Возможно, в шлюзе были бы полезны группы каналов, которые имеют групповые настройки периода передачи, чтобы «пульс» передавался достаточно часто.
15.10.2021 в 21:25 #21073manjey73Участник«пульс» должен передаваться всегда, например с указанием периода в настройках, например каждую минуту, или каждые 30 секунд, или 5 минут
Должен быть служебный канал, который будет реагировать на пропадание «пульса» и который можно привязать к мнемосхеме. Скажем не зависящий от БД самой Scada
Так же должен быть канал, в котором передается timeshtamp ну и настройка, через какое количество «пульса» изменить аварийный канал. -
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.