АБАК ПЛК
Руководство по настройке и программированию
×

Настройка резервирования

 
Для организации резервирования необходимо выполнить настройку в двух средах: сконфигурировать пару контроллеров в Конфигураторе АБАК ПЛК и создать соответствующую структуру проекта в DevStudio.
Настройка в Конфигураторе АБАК ПЛК
На обоих контроллерах (основном и резервном) должна быть выполнена базовая конфигурация, включая настройку параметров домена (domain) и сетевых агентов (net). Ключевым требованием является назначение глобального IP-адреса (Global IP) сетевым интерфейсам Ethernet, по которому будет выполняться подключение к активному серверу со стороны внешних систем. Для резервного контроллера параметры резервирования задаются аналогично описанному в соответствующем разделе.
В данном примере используется следующая конфигурация:
Основной контроллер:
  • ID: 1
  • ETH0: 1.1.1.1/30 (255.255.255.252)
  • ETH1: 192.168.52.47/24 (255.255.255.0), Global IP: 192.168.52.100
Резервный контроллер:
  • ID: 2
  • ETH0: 1.1.1.2/30 (255.255.255.252)
  • ETH1: 192.168.52.127/24 (255.255.255.0), Global IP: 192.168.52.100
 
Важно! Функционал резервирования поддерживается и для остальных сетевых портов (ETH2, ETH3), однако в рассматриваемом примере они не задействованы.
 
В среде разработки DevStudio в дереве проекта (элемент Domain) необходимо добавить резервный контроллер. Он добавляется как тот же узел Alpha.Domain. Для него следует указать корректное имя, серийный номер (в примере – 58689) и сетевой адрес.
 
Свойства узла
 
Внутри данного узла необходимо, аналогично основному, добавить адаптеры Ethernet и последовательные порты для подключения к шине CAN. Выставить их корректные настройки, указать подключения к сетям Ethernet и последовательным шинам:
- Сеть RSU_NET: IP-адреса портов ETH1 (192.168.52.47 и 192.168.52.127);
- Сеть RED_NET: IP-адреса портов ETH0 (1.1.1.1 и 1.1.1.2).
Добавьте элемент «Резервный Alpha.Server» из панели элементов. Настройте его свойства в соответствии с параметрами домена и сетевых агентов. Укажите порты для связи, задайте общие временные параметры, настройте параметры переключения ролей и укажите резервируемый сервер.
 
Свойства резервного сервера
Важно! Необходимо настроить только ID и IP резервируемых ПЛК. Изменять временные параметры (тайминги) не требуется.
 
Резервный сервер (Alfa.Server) является полной копией основного, поэтому изменение отдельных модулей и их параметров непосредственно на резервном сервере невозможно. Любые настройки модулей и приложений (Application), выполненные на основном сервере, автоматически распространяются на резервный.
Далее необходимо добавить модуль RedundancyModule в элемент Alpha.Server контроллера из панели элементов и настроить параметры журналирования.
 
RedundancyModule – Модуль резервирования
 
Закончив все настройки, можно приступить к развертыванию конфигурации. «Мастер развертывания» отобразит основной и резервный ПЛК. Далее необходимо применить решение на данные узлы.
 
Основной и резервный ПЛК
 
При применении конфигурации серверы (Alfa.Server) перезапускаются и переходят к выполнению пользовательской логики. Индикатор RUN на активном контроллере горит постоянно. На резервном контроллере индикатор RUN мигает. В приложении OPCExplorer подключение к контроллерам возможно как по индивидуальным IP-адресам, так и с использованием глобального IP-адреса.
 
Подключение к контроллерам в OPCExplorer
 
В инспекторе сигналов можно отследить текущие сигналы модуля резервирования по следующей ветке дерева обозревателя: Service → Redundancy.
 
Инспектор сигналов
 
Сигнал Service.Redundancy.State.Description отображает текущее состояние сервера в строковом формате String.
Сигнал Service.Redundancy.Switch позволяет подать команду на смену ролей (сигнал резервного перехода). После установления значения TRUE происходит резервный переход, статусы State серверов изменятся.
При разрыве связи по интерфейсу резервирования ETH0, сигналы из данного модуля отобразят соответствующую информацию.
 
Информация о разрыве связи
 
Репликация переменных позволяет выполнить безударное обновление резервированной пары контроллеров:
  • Внести правки в конфигурацию, скомпилировать и построить решение;
  • Применить конфигурацию к пассивному контроллеру. После перезагрузки он вернется в режим пассивного, и данные начнут реплицироваться с активного;
  • Инициировать резервный переход;
  • Пользовательское приложение продолжит работу без сбоев (репликация данных велась постоянно). Бывший пассивный контроллер становится активным, а активный переходит в режим пассивного;
  • Загрузить конфигурацию на новый пассивный контроллер. После перезагрузки он работает с новой конфигурацией, оставаясь пассивным (если заданы соответствующие параметры);
  • Выполнить повторное переключение ролей. Конфигурация успешно и безударно загружена на оба контроллера.
Онлайн помощь создана в Dr.Explain