Фильтр по тематике

DNP3 по-русски

В статье кратко описываются структура, функциональные особенности и преимущества протокола DNP3. Рассмотрена реализация протокола применительно к распределённой системе ввода-вывода FASTWEL I/O.

3732 0

Введение 

В программируемых контроллерах CPM712 и CPM713 серии FASTWEL I/O реализована поддержка сетевого протокола DNP3 с функциями подчинённого узла (Outstation) уровня совместимости не ниже Level 2 и рядом дополнений Level 3 (рис. 1).

Данная функциональность позволяет системным интеграторам, работающим в таких отраслях, как электроэнергетика, добыча и транспортировка нефти и газа, а также водоочистка и водоподготовка, безболезненно комплексировать существующее DNP3-совместимое оборудование с узлами и подсетями, реализованными на базе контроллеров FASTWEL I/O. Прямая выгода от подобного симбиоза несомненна, поскольку в любой распределённой АСУ ТП уровня предприятия есть участки как с нормальными условиями эксплуатации, так и с экстремальными. Реализация проекта на оборудовании одного типа будет либо затратной, либо ненадёжной. 
Учитывая высокие эксплуатационные характеристики FASTWEL I/O (индустриальный температурный диапазон, высокая стойкость к механическим нагрузкам), системные интеграторы могут оптимизировать проекты по ряду параметров, оставаясь в рамках единого протокола обмена данными.
Протокол DNP3 базируется на существующих стандартах передачи данных и обеспечивает надёжность и гибкость сетевого взаимодействия благодаря следующим функциональным возможностям:
  1. Адресация более 65 000 сетевых узлов. 
  2. Поддержка передачи сообщений по инициативе любого сетевого узла и широковещательных сообщений. 
  3. Поддержка подтверждений успешности обмена между узлами сети, как на канальном, так и на прикладном уровнях. 
  4. Возможность передачи данных в разных форматах, а также с признаками качества и метками времени. 
  5. Возможность классификации и приоритизации данных на уровне сетевого взаимодействия и отнесения данных к разным группам для повышения эффективности использования канала связи с ограниченной пропускной способностью. 
  6. Возможность инициативной передачи данных при изменении их значений и/или состояния. 
  7. Поддержка различных видов команд телеуправления на уровне протокола, а также возможность одновременного запуска и выполнения нескольких команд в режиме select-before-operate (выбор перед выполнением). 
  8. Поддержка синхронизации вре­мени. 
  9. Расширенные функции диагностики. 
  10. Возможность функционирования поверх имеющихся сетевых протоколов или использования имеющихся физических уровней протоколов.
Основные преимущества протокола DNP3 приведены в табл. 1.

История DNP3

В начале 1990-х годов, когда набор протоколов для систем телемеханики IEC 60870-5 был ещё в стадии разработки и не был стандартизирован, существовала необходимость создать стандарт, обеспечивающий возможность взаимодействия между оборудованием различных производителей АСУ в электроэнергетике. 
Канадская компания GE Harris (ранее известная как Westronic Inc.) в 1993 году использовала частично завершённые спецификации протокола IEC 60870-5 в качестве основы для разработки открытого протокола, который удовлетворял бы требованиям энергетиков. 
Протокол был предназначен для обеспечения надёжной связи в неблагоприятных условиях, которым подвергаются электроэнергетические системы автоматизации. Он должен был обеспечить надёжную связь при искажениях в канале, вызываемых электромагнитными помехами, старением компонентов (срок службы может достигать десятилетий), а также другими помехами при передаче данных.
В ноябре 1993 года ответственность за определение будущих спецификаций DNP3 и права на них были переданы пользовательской группе DNP3. Технический комитет группы DNP3 оценивает предлагаемые модификации или добавления к протоколу и затем корректирует описание протокола. Оригинальная документация протокола доступна для общего пользования. Набор документов содержит описания протокола, а также детали, которые необходимы для различных подуровней, содержит инструкции для реализации надёжного взаимодействия и соответствующие тестовые процедуры.
Спецификация протокола DNP3 содержится в документе IEEE SA 1815-2012 и доступна на сайте [1]. За пользование документацией взимается членский взнос, но, с другой стороны, она доступна по всему миру без ограничений. Это означает, что оборудование различных производителей с высокой вероятностью будет совместимым в рамках поддерживаемых стандартных коммуникационных профилей.

Пример протокола DNP3

Рассмотрим вкратце структуру протокола DNP3 не вдаваясь в детали полного описания [1]. Протокол описывает правила, по которым устройства общаются между собой. DNP3 – это протокол для передачи данных из точки А в точку В с использованием последовательного канала связи или поверх IP. Он применяется в основном компаниями, работающими в сфере электроэнергетики, нефтегазовой промышленности, водоочистки и водоподготовки, но его функциональность хорошо подходит и для других областей.
Обычно энергетическая компания имеет общий центр управления, который осуществляет мониторинг  и управление всем оборудованием на каждой подстанции. 
В центре управления сервер хранит все входящие данные и отображает
информацию на экране монитора в удобной и понятной для человека
форме. Подстанции имеют много устройств, нуждающихся в контроле: выключатели (включены или отключены), датчики тока (значение тока), преобразователи напряжения (значение потенциала). Рабочий персонал в случае неисправности должен часто переключать участки электрической сети. Компьютеры, расположенные на подстанции, собирают данные для передачи на главную станцию в центр управления. Имеется возможность включить или отключить питание на выключателях или регуляторах напряжения с компьютеров подстанций.
В DNP3 используется термин Out­station (подчинённый узел) для обозначения удалённых вычислительных устройств. Термин Master (мастер)
используется для вычислительных уст­ройств в центре управления. DNP3 описывает правила передачи данных и команд управления между мастерами и подчинёнными устройствами. 
При общении удалённые компьютеры собирают следующие данные для передачи мастеру:
  • бинарные входные данные, которые легко отображают устройства с двумя состояниями, например, выключатель включён или отключён, состояние давления в трубопроводе нормальное или избыточное;
  • аналоговые входные данные, которые передают значения напряжения, тока, мощности, уровень воды в резервуаре, температуру;
  • данные входа счётчика, который выдаёт значение энергии в киловатт-часах или объём жидкости;
  • файлы, которые содержат конфигурационные данные.
Станция мастера выдаёт команды управления, такие как:
  • включить или отключить выключатель, запустить или остановить двигатель, открыть или закрыть клапан;
  • на аналоговом выходе установить постоянное значение или необходимый уровень напряжения.
Другие данные, которые компьютеры передают друг другу, – это синхронизация времени и даты, исторические или статистические данные, формы сигнала и т.п.

Данные мастера и подчинённого узла

На рис. 2  показано взаимоотношение мастера и подчинённого узла (мастер представлен слева, подчинённый узел – справа), он даёт представление о данных и вовлечённых программных процессах.

Серия квадратных блоков наверху подчинённого узла отображает данные, сохранённые в его базе данных, и устройства ввода-вывода. Различные типы данных схематически организованы в массивы. Массив бинарных входных значений представляет состояния устройств с булевой логикой. Значения в массиве аналоговых данных представляют входную величину, которую подчинённый узел измерил или вычислил. Массив счётчиков представляет счётные значения, например, такие как киловатт-часы, которые увеличиваются до тех пор, пока не достигнут максимума, а затем сбросятся в ноль и снова начнут расти. Управляющие выходы организованы в массив, представляющий собой логические
или физические команды на включение/выключение, увеличение/понижение, замыкание/размыкание. В конце массив аналоговых выходов, который представляет собой физические или логические аналоговые значения, наподобие тех, что используются для уставок (Setpoints).
Мастер DNP3 имеет подобную базу данных (бинарный, аналоговый и счётчик). Мастер использует значения в своей базе данных для определённых целей: отображение состояния системы, управление с обратной связью, уведомление о тревогах и др. Задача мастера – сохранять свою базу данных актуальной. Это достигается путём отправки запросов к подчинённому узлу с просьбой вернуть значения их базы данных. Это называется Polling (опрос). Подчинённый узел отзывается на запрос мастера, передавая содержимое его базы данных (массива данных). Стрелки, нарисованные внизу на рис. 2, показывают направление запросов (по направлению к подчинённому узлу) и направление ответов (по направлению к мастеру). Также подчинённый узел может передавать ответ без предварительного получения запроса.

DNP3 в контроллерах FASTWEL I/O

Далее будет рассмотрена структура протокола применительно к распределённой системе ввода-вывода FASTWEL I/O.
Для унифицированного представления функциональных возможностей протокола DNP3, поддерживаемых тем или иным устройством, в спецификации протокола DNP3 введено понятие подмножества реализации (DNP3 Subset Implementation), описывающего совокупность функций и параметров протокола, реализованных в устройстве, а также набор поддерживаемых типов объектов данных DNP3 [2]. 
Каждое подмножество реализации определяет так называемый уровень (Level), позволяющий в краткой форме обозначить совместимость устройства с тем или иным подмножеством реализации. В спецификации DNP3 определено четыре уровня совместимости, отличающихся по функциональной полноте, количеству поддерживаемых типов объектов данных и команд и обозначаемых Level 1, Level 2, Level 3 и Level 4, или L1, L2, L3, L4. Например, обозначение DNP3-L2 Outstation указывает на поддержку устройством подмножества реализации Level 2, определённого для станций типа Outstation (подчинённый узел).
Контроллеры узла сети (CPM712 и CPM713) содержат реализацию протокола DNP3-L2 Outstation, который может функционировать через любой из встроенных последовательных портов интерфейса RS-232C/RS-485, а также через интерфейсные модули NIM741 и NIM742. Контроллеры FASTWEL I/O могут использоваться в топологиях «звезда» и «шина», показанных на рис. 3.

Одновременное применение нескольких станций-мастеров в любой из указанных топологий возможно, однако может приводить к непредсказуемым результатам, если в подчинённых узлах используются инициативные сообщения для передачи информации о событиях в адрес мастеров одновременно с использованием механизма опроса подчинённых узлов мастерами. Это связано с тем, что из-за коллизий узлы сети могут не иметь доступа к линии передачи данных в течение заранее не известных и достаточно длительных интервалов времени.

Уровни протокола DNP3

Протокол DNP3 состоит из следующих уровней упрощённой модели сетевого взаимодействия Enhanced Perfor­mance Architecture (EPA):
  1. Прикладной уровень (Application Layer) определяет набор типов данных и операций, посредством которых осуществляется взаимодействие между приложениями и алгоритмами на разных узлах сети DNP3, а также формат передаваемых и принимаемых пакетов данных, при помощи которых выполняется взаимодействие с нижестоящим уровнем. Пакеты прикладного уровня в спецификации DNP3 называются фрагментами.  
  2. Функция транспорта (Transport Function) является подуровнем прикладного уровня и предназначена для разбиения данных на фрагменты при передаче и для сборки фрагментов при приёме данных, подлежащих передаче канальному уровню, которые в спецификации DNP3 и далее по тексту называются сегментами. 
  3. Канальный уровень (Data Link Layer) является интерфейсом взаимодействия между функцией транспорта и физическим уровнем либо между функцией транспорта и сервисом транспорта других сетевых протоколов. Основными функциями данного уровня являются адресация узлов DNP3 и обнаружение ошибок, для чего к сегментам добавляется заголовок канального уровня, а в поток данных вставляются 16-разрядные поля циклической контрольной суммы. Пакеты канального уровня, называемые далее кадрами, имеют формат FT3, определённый в спецификации IEC 60870-5-1:1990 (ГОСТ Р МЭК 870-5-1-95). 
Минимальной единицей передачи информации на всех уровнях протокола DNP3 служит октет – последовательность из восьми информационных битовых полей. Для простоты изложения октет в настоящем документе будет называться байтом. 
Упрощённая модель взаимодействия ведущего и подчинённого узлов DNP3 показана на рис. 4.

Принцип сетевого взаимодействия узлов DNP3 

Приложение на ведущем узле сети (мастере), показанном слева на рис. 4, обращается с запросом к прикладному уровню мастера на получение данных от подчинённого узла. Запрос содержит код функции и описание объектов данных, которые требуется получить от подчинённого узла. Прикладной уровень передаёт запрос функции транспорта для разбиения фрагментов запроса на сегменты, которые затем передаются на канальный уровень. 
Канальный уровень добавляет к сегментам информацию об адресации и для обнаружения ошибок передачи, после чего пакеты передаются в линию передачи данных используемого физического уровня. Канальный уровень подчинённого узла, показанного справа на рис. 4, получает байты сообщения из линии передачи данных, распознаёт пакеты FT3 канального уровня DNP3 и выявляет ошибки передачи. Если ошибок передачи не обнаружено, пакеты преобразуются в сегменты и передаются функции транспорта, которая собирает из них фрагменты исходящего запроса от мастера. 
Прикладной уровень подчинённого узла интерпретирует код функции и описание запрашиваемых объектов данных в полученных запросах, после чего при наличии в базе данных подчинённого узла запрошенных объектов формирует один или несколько ответов, которые передаются мастеру через функцию транспорта, канальный и физический уровни. 
Помимо получения объектов данных мастер имеет возможность запуска команд управления на подчинённых узлах. Прохождение команд управления в целом идентично описанному прохождению запросов данных. 
В некоторых случаях мастер сети не имеет возможности выполнять запросы данных подчинённых узлов по описанному сценарию, или такая возможность существенно ограничена пропускной способностью и/или доступностью используемых каналов связи. Для решения данной проблемы в протоколе DNP3 предусмотрен механизм инициативных сообщений (Unsolicited Responses). 
Инициативными называются сообщения, передаваемые подчинённым узлом в случайные моменты времени без запроса мастера, когда приложением подчинённого узла обнаружено некоторое значимое или существенное событие. 
Данный механизм сетевого взаимодействия может иметь преимущества перед традиционным последовательным опросом подчинённых узлов со стороны мастера в случае, если имеется большое количество подчинённых узлов и один мастер. В таком случае время доставки информации об изменении состояния на одном из подчинённых узлов может оказаться значительно меньше, чем при использовании последовательного опроса. 
С другой стороны, использование данного механизма может повлечь за собой значительные сложности, поскольку в используемом сетевом оборудовании должна учитываться возможность возникновения коллизий, а программная реализация мастера DNP3 должна быть рассчитана на поступление инициативных сообщений от любых подчинённых узлов в любой момент времени. Наконец, производительность системы может стать непредсказуемой в моменты, когда одновременно происходит множество событий или когда подчинённым узлам требуется передать большое количество данных из-за длительного перерыва связи с мастером сети.

Заключение

К настоящему времени DNP3 является протоколом, который хорошо вписывается в мир сбора данных. Он обеспечивает надёжную передачу данных, имеет богатый набор функций, и поддерживает работу в глобальной сети связи. 
Стандартизированный подход пользовательской группы, трёхуровневая модель OSI, плюс общедоступность делают DNP3 достойным внимания разработчиков систем АСУ ТП. • 

Литература

1. A DNP3 Protocol Primer [Электронный ресурс] // Сайт DNP.org. – Режим доступа : https://www.dnp.org/AboutUs/DNP3%20Primer%20Rev%20A.pdf.
2. Система ввода-вывода FASTWEL I/O. Протокол DNP3. Руководство по конфигурированию и программированию [Электронный ресурс] // Файловый ресурс компании ПРОСОФТ. – Режим доступа : ftp://ftp.prosoft.ru/pub/Hardware/FASTWEL/FASTWEL_IO/Version2/Doc/FIO_DNP3_Manual.pdf

Автор – сотрудник
фирмы ПРОСОФТ
Телефон: (495) 234-0636
E-mail: info@prosoft.ru

3732 0
Комментарии
Рекомендуем