В данном техническом решении мы предлагаем Вашему вниманию прикладную систему резервирования на базе программируемых логических контроллеров (ПЛК) Phoenix Contact.
Проблема создания избыточных (резервируемых) систем в области АСУТП диктуется спросом тогда, кода это необходимо на практике.
Что такое резервирование?
В соответствии с ГОСТ 27.002-89:
Резервированием называется - применение дополнительных средств и/или возможностей с целью сохранения работоспособного состояния объекта при отказе одного или нескольких его элементов.
Резервирование - это эффективный метод повышения надёжности объекта путём введения избыточности.
Любая система АСУ ТП, как минимум, состоит из ПЛК датчиков и исполнительных механизмов.
Понятие "единая точка отказа" - это то узкое место, когда из-за одного узла (CPU, канал ввода или канал передачи данных), система выходит из строя и теряет контроль над контролируемым процессом.
Из вышесказанного следует, что для повышения надежности системы применяется метод избыточности (резервирования).
Концепция составного ПЛК с резервированием
Следуя цели по достижению избыточности, компания Phonix Contact предлагает следующую систему для решения задачи "программируемый логический контроллер с резервированием":

Как хорошо видно из структурной схемы, ПЛК с резервированием состоит из трех основных частей:
- Уровень CPU
- Уровень передачи данных на базе Profinet и кольца MRP
- Уровень I/O
На каждом уровне выполняется условие избыточности. Рассмотрим более подробно каждый уровень системы.
Уровень ЦПУ (CPU Level)
На уровне CPU - Central Processing Unit (ЦПУ - центральное процессорное устройство) в системе задействовано два высокопроизводительных свободно программируемых контроллера производства Феникс Контакт (Германия) RFC 460R .
Контроллер имеет мощный (для ПЛК!) процессор Intel® Celeron® 927 UE 1,5 ГГц и позволяет в среде выполнения МЭК-61131-3 обрабатывать до 16 Мб памяти данных. Память программ может достигать 8 Мб (очень огромная программа для крупнейшего завода). К контроллеру может быть подключено до 250 станций ввода/вывода (3 уровень) по шине PROFINET (2-й уровень). В сумме – свыше 4000 аналоговых или 100 000 дискретных сигналов [1].
Основной и резервный контроллеры (Primary PLC & Backup PLC) синхронизируются между собой посредством оптоволоконной линии связи через порты SYNC interface SFP (fiber optics). На примере большого морского судна в целях безопасности системы автоматизации, расположение этих контроллеров будет в носовой и кормовой частях судна. Вообще, можно удалить друг от друга контроллеры на расстояние до 70 км, используя single/multi - mode fiber SFP модуль (применение для метрополитена или автоматики авто тоннелей). В рамках расположения внутри одного шкафа управления для соединения ПЛК между собой, подойдет оптоволоконный патч-корд - 2989158 FL MM PATCH 1,0 LC-LC.
В качестве резервного (!) канала связи для синхронизации контроллеров используется сеть Profinet, подключаемая к порту LAN 2, в нашем случае это 2-й уровень передачи данных. RFC460R снабжен большим цветным ЖК экраном. Во время парной работы на экранах контроллеров будет отображено: является он основным или вспомогательным (резервным) контролером, а также статус каналов синхронизации. Помимо этого на экране контроллера отображается статус системы ввода/вывода и каждого модуля, а также другая важная диагностическая информация.
Оставшиеся порты LAN 1.1 и LAN 1.2 работают в режиме коммутатора, и могут быть использованы для доступа к контроллерам с верхнего уровня (SCADA). IP адрес LAN1 должен иметь отличную от LAN2 подсеть.
Для программирования ПЛК (PLC) в системе МЭК 61131-3 доступно 5 языков программирования:
Проанализировав алгоритмическую блок схему, или утвержденную матрицу причинно-следственных связей (Cause effect matrix), или изучив согласованное описание технологического процесса и реакции на возможные будущие аварийные ситуации, инженер-программист создает (пишет) программу, используя вышеуказанные языки программирования. Самый мощный из всех это - ST. Все программы для ПЛК Феникс Контакт создаются в среде PC Worx (есть бесплатная урезанная в памяти версия и платная версия Pro). Также в настоящее время для новых контроллеров PLCnext Technology (RFC460R пока не поддерживается) разработана новая бесплатная среда программирования - PLCnext Engineer. В этой программе Вы можете программировать ПЛК, используя не только традиционные языки IEC 61131-3, но и известные высокоуровневые языки (C#, C/C++, MATLAB Simulink и т.д.).
Процесс загрузки разработанной программы в оба контроллера происходит следующим образом. Достаточно лишь инженеру загрузить программу в рабочий (основной) контроллер, как тут же, автоматически, по сетям синхронизации, программа "сама зальется" в резервный контроллер. Резервный контроллер при каждом цикле программы (50 мс например) работает в режиме прослушки "своего соседа" и всей системы в целом, и готов перехватить управление на себя в случае выхода из строя основного контроллера.
Уровень передачи данных (Profinet, MRP-ring)
Стандартно идея резервирования промышленного Ethernet противоречит "природе" Ethernet, которая не предполагает создания замкнутых контуров в сети, тем самым запрещая резервные каналы передачи сетевого трафика . Для использования сетей Ethernet в промышленной автоматизации в целях резервирования каналов передачи применяются специальные протоколы - STP, RSTP / MSTP, PRP, HSR, MRP [3].
В нашем решении применяется протокол резервирования шины Profinet - MRP. Media Redundancy Protocol (MRP - не путать аббревиатуру с Material Requirements Planning) - это протокол передачи данных с кольцевой топологией.

MRP был специально разработан для промышленных применений, его стандарт описывается в IEC 62439-2. По данным WIKIPEDIA, протокол является прямым развитием протокола HiPER-Ring, разработанного Hirschmann в 1998 году. Ныне Hirschmann принадлежит Belden [4]. На рисунке мы видим кольцевую топологию с участием MRP-manager и MRP-client.
Принцип работы MRP-протокола следующий.
....
Уровень ввода / вывода (Input / Output - I/O Level)
Мы уже рассмотрели уровни CPU и передачи данных. На всех этих уровнях выполняется условие избыточности. Приближаемся к уровню ввода / вывода.
Взаимодействие системы АСУ ТП с внешним миром происходит посредством аналоговых и дискретных (цифровых), входных и выходных сигналов. Каждый тип сигнала включен в свой собственный модуль. В зависимости от типа сигнала, модуль обладает собственным цветовым обозначением (для визуальной идентификации) и имеет определенное количество сигналов на борту.
Состав системы
Модули подключаются к друг другу на DIN-рейке, образуя единый ряд. Таких модулей в ряду может быть установлено очень много. В самом начале этого ряда на 0-й позиции установлена непрограммируемая станция (BUS-coupler) Profinet - AXL F BK PN. Таким образом образуется единица - станция PROFINET I/O. Для решения задачи резервирования мы используем как минимум две таких станции, идентичные по составу и расположению модулей ввода-вывода. Назовем их BK1 и BK2 для удобства в дальнейшей работе.
Дискретный вход (Digital Input)
Примерами источников дискретных сигналов могут служить такие аппараты и узлы: концевой выключатель положения двери, дифференциальный манометр перепада давления в воздуховоде, положение заслонки, неисправность рабочего блока питания и т.д.
Такие сигналы мы подключаем к каждому модулю AXL F DI32/1 2H на обеих станциях BK1 и BK2 через диоды разветвления сигнала.

Программно в контроллере рассматриваемый входной дискретный сигнал от BK1 и BK2 обрабатываются на языке ST следующим образом:
If bk1_digital_input_1 = true or bk2_digital_input_1 = true
then digital_input_1:=true;
else digital_input_1:=false;
end_if;
В результате, в контроллере всегда будет доступно текущее состояние "digital_input_1". Для сигнала "digital_input_1" имеется гарантированный аппаратный резерв. Если в проекте присутствуют для конкретного рассматриваемого сигнала отдельные резервные или дублирующие контакты, то их можно уже без диодов подключить каждый непосредственно к bk1 и bk2. Переходим к рассмотрению концепции резервирования для дискретных выходных сигналов.
Дискретный выход (Digital Output)
ПЛК с помощью дискретных выходных сигналов может включать / выключать частотные преобразователи нагнетающих вентиляторов, управлять межкомнатными заслонками магистральных воздуховодов, сигнализировать об аварии и т.д.
Как и в ситуации с сигналами цифровых входов, работа с цифровыми выходами выстраивается по аналогии. Чтобы получить резервный сигнал "Digital_output_1", нужно его "снять" с модулей AXL F DO16 /1 1H станций BK1 и BK2 и объединить в один общий выход.

Фрагмент программы на языке ST для обработки выходных дискретных сигналов с резервированием будет следующим:
bk1_digital_output_1:=digital_output_1;
bk2_digital_output_1:=digital_output_1;
В результате благодаря избыточности, выходные реле K1 и K2 получают команду управления от контроллера через BK1 или BK2. Что и требовалось.
Идем далее. Рассмотрим, каким образом резервируются аналоговые выходные сигналы 0-10В.
Аналоговый выход 0-10 В (Analog Output 0-10V)
Резервирование выходных аналоговых сигналов типа 0-10В осуществляется по принципу выходных дискретных. Т.е. полезные сигналы с каждого модуля AXL F AO8 1F объединяются через диоды в один общий. Потенциалы "-" сигналов 0-10В также объединяются между собой через клемму-перемычку 2791388 UKK 5-PV.
ПЛК на практике может управлять с помощью 0-10В такими процессами как: манипулирование частотой вращения вентилятора, управление электронагревателем, поддержание заданной температуры с помощью 3-х ходового клапана дозирования и т.д.

Таким образом регулируемый объект всегда будет под контролем от станций BK1 или BK2. Для программирования ПЛК приведем вот такой код на языке ST, который будет генерировать сигнал 5 В одновременно на обоих модулях:
out_0_10V:=15000;
bk1_analog_output_1:=out_0_10V;
bk2_analog_output_1:=out_0_10V;
Осталось рассмотреть еще один тип сигнала - вход 4-20 мА от различных измерительных датчиков.
Аналоговый вход 4-20 мА (Analog Intput 4-20 мА)
Унифицированный сигнал токовой петли 4-20 мА это один и самых распространенных в АСУ ТП. Благодаря высокой помехозащищенности, большой дальности расстояний, наложению протокола HART сигнал 4-20 мА очень популярен в промышленной автоматизации.
Для создания избыточного сигнала, получаемого по 4-20 мА, необходимо к каждому модулю AXL F AI4 I 1H подключить индивидуальный датчик, местом установки которых является одна общая точка.

Итак, из одной точки измерения мы получаем в контроллере через BK1 и BK2 две переменные, в которых находится измеренное значение физической величины (давление, температура, расход и пр.). В штатном режиме система опирается на показания от первого датчика (BK1). В случае кокой-либо внештатной ситуации на станции BK1, система моментально переключается на работу от второго резервного датчика 4-20 мА, подключенного к BK2. Условиями переключения с одного на резервный датчики, являются:
- Полная потеря связи Profinet со станцией BK1 или BK2
- Проблема в модуле AXL F AI4 I 1H
- Неисправность датчика или линии связи 4-20 мА (обрыв / КЗ)
Резервирование питания 24V DC (Power Supply Redundancy)

Состав системы питания
|
PS1, PS2
|
Primary-switched QUINT POWER power supply with free choice of output characteristic curve, SFB (selective fuse breaking) technology, and NFC interface, input: 1-phase, output: 24 V DC/10 A / Источник питания QUINT POWER с регулированием в первичной цепи, с регулируемыми выходными характеристиками, технологией SFB (Selective Fuse Breaking) и интерфейсом NFC, вход: 1-фазный, выход: 24 В DC / 10 A
|
PHOENIX QUINT4-PS/1AC/24DC/10
|
2904601
|
|
RPS1, RPS2
|
Active QUINT single redundancy module for DIN rail mounting, input: 12 - 24 V DC, output: 12 - 24 V DC/1 x 40 A / Активный одиночный модуль резервирования QUINT для монтажа на несущей рейке, вход: 12 - 24 В пост. тока, выход: 12 - 24 В пост. тока / 1 x 40 A
|
PHOENQUINT4-S-ORING/12-24DC/1X40
|
2907752
|
Для работы ПЛК требуется стабилизированное напряжение постоянного тока 24 Вольт. Для обеспечения гарантированного питания применятся все тот же принцип избыточности. Выходы двух блоков питания PHOENIX CONTACT QUINT4-PS/1AC/24DC/10 подключаются к двум активным модулям резервирования - QUINT4-S-ORING/12-24DC/1X40. Выходы модулей PSR1 и PSR2 объединяются в одну общую цепь. Помимо применения вышеуказанных источников питания (однофазных - трехфазных), возможна комбинация с UPS 24 V.
Для обнаружения неисправности питания, соответствующий сигнал заводится в контроллер, чтобы передавать возникновение этого события в систему диспетчеризации.
Резерв для верхнего уровня
В самом начале обзора на структурной схеме концепции ПЛК с резервированием мы показали возможность мониторинга и управления системой с верхнего уровня по протоколу Modbus / TCP. В качестве Modbus мастера могут выступать SCADA или центральный программируемый контроллер. Как уже говорили выше, в наших контроллерах для этих целей могут быть задействован порты LAN 1.1 для подключения к сети Ethernet верхнего уровня. Основной и резервный контроллеры (Primary PLC & Backup PLC) на запросы должны отвечать синхронными данными.
Заключение
На рынке представлено достаточно много брендов и фирм, выпускающих программируемые логические контроллеры с резервированием. Перечислим некоторые.
Литература
- Статья опубликована в журнале «ИСУП», № 4(52)_2014 Д. С. Зозуля, менеджер по продукции Control and Industry Solutions, ООО «Феникс Контакт РУС», г. Москва
- ru. wikipedia. org /wiki /IEC_61131-3
- Журнал "СТА" 1/2012 Иван Лопухов, сотрудник фирмы Прософт, prosoft. ru
- en. wikipedia. org /wiki /Media_Redundancy_Protocol