DNP3 (IEEE 1815): протокол за телемеханика в електроенергийни мрежи

DNP3 (Distributed Network Protocol) е широко разпространен протокол за телемеханика, особено в Северна Америка. Стандартизиран като IEEE 1815, той предлага event-базиран модел, unsolicited responses и вградена автентикация (SAv5).

Какво е DNP3

DNP3 (Distributed Network Protocol, version 3) е протокол за телемеханика, създаден от Westronic (днес GE) в началото на 90-те години. Той е де факто стандарт за SCADA комуникация в Северна Америка и е широко разпространен в Латинска Америка, Австралия и Азия. От 2010 г. е стандартизиран като IEEE 1815. DNP3 покрива електроенергетика, водоснабдяване, газоснабдяване и петролопроводи.

Архитектура

DNP3 следва трислоен EPA модел (Enhanced Performance Architecture), подобен на IEC 101:

СлойФункция
Канален (Data Link Layer)Кадриране с CRC на всеки 16-байтов блок, адресиране на master/outstation, потвърждение
Транспортен (Pseudo-Transport)Сегментиране и реасемблиране на съобщения, по-дълги от един кадър
Приложен (Application Layer)Обекти, вариации, функционални кодове (Read, Write, Select, Operate, Direct Operate, Freeze)

Физически интерфейс

DNP3 не дефинира собствен физически слой. В практиката се ползват:

  • RS-232 / RS-485 — сериен достъп, често с радиомодем.
  • TCP/IP — DNP3 over TCP (порт 20000 по подразбиране). Най-разпространен в нови инсталации.
  • UDP/IP — за приложения, където загубата на единичен пакет е допустима.
  • Оптика, радио, сателит — DNP3 работи върху всяка среда, която предоставя байтов поток.

Master и Outstation

DNP3 дефинира две роли:

  • Master — SCADA центърът или събирателят. Той инициира заявки, получава данни и изпраща команди.
  • Outstation — RTU или IED на терен. Събира данни от полеви устройства и отговаря на master-а.

За разлика от IEC 101, където slave-ът в небалансиран режим не може да инициира, outstation-ът в DNP3 може да изпраща unsolicited responses — спонтанни данни без предварително запитване.

Обекти и вариации

Данните в DNP3 се организират по обектни групи (Group) и вариации (Variation):

ГрупаОписаниеТипични вариации
Group 1Binary Input (статус)V1: packed, V2: with flags
Group 2Binary Input EventV1: without time, V2: with absolute time, V3: with relative time
Group 10Binary Output (команда)V1: packed, V2: with flags
Group 12CROB (Control Relay Output Block)V1: control code + count + on/off time
Group 30Analog Input (текуща стойност)V1: 32-bit int, V3: 32-bit int no flag, V5: float
Group 32Analog Input EventV1: 32-bit no time, V3: with time, V5: float no time, V7: float with time
Group 20CounterV1: 32-bit with flag, V5: 32-bit no flag
Group 40Analog Output StatusV1: 32-bit int, V3: float
Group 50Time and DateV1: absolute time (ms since 1970-01-01)

Master-ът задава коя вариация иска в заявката. Outstation-ът може да отговори с различна вариация, ако поисканата не се поддържа.

Класове данни

DNP3 дефинира четири класа:

  • Class 0 — статични данни: текущите стойности на всички точки (аналог на General Interrogation в IEC 104).
  • Class 1 — събития с висок приоритет.
  • Class 2 — събития със среден приоритет.
  • Class 3 — събития с нисък приоритет.

При стартиране master-ът поисква Class 0 (пълен снимък), а след това периодично поисква Class 1/2/3 (само промените). Outstation-ът буферира събитията с времеви печат и ги предава при следващото запитване или като unsolicited response.

Unsolicited Responses

Ключово предимство на DNP3 пред IEC 101: outstation-ът може да изпраща данни по собствена инициатива. Когато настъпи събитие (промяна на вход, превишение на мъртва зона), outstation-ът изпраща unsolicited response към master-а. Master-ът потвърждава с Application Confirm. Ако потвърждение не пристигне, outstation-ът препредава.

Този механизъм е особено полезен при бавни канали: вместо master-ът да пита периодично, outstation-ът съобщава само при промяна.

Команди (CROB)

DNP3 поддържа два режима на управление:

  • Select-Before-Operate (SBO) — master-ът изпраща Select, outstation-ът потвърждава, master-ът изпраща Operate. Двуфазен контрол за критични команди.
  • Direct Operate — единична команда без предварителен Select. По-бърз, но без допълнителна проверка.

CROB (Group 12, Variation 1) съдържа контролен код (Latch On, Latch Off, Pulse On, Pulse Off), брой импулси, време на включено и изключено състояние.

Канален слой

Каналният кадър на DNP3 има фиксирана начална секвенция (0x0564), дължина, контролен байт, адрес на получател (2 байта) и адрес на подател (2 байта). Данните се разбиват на 16-байтови блокове, всеки с 2-байтов CRC. Това осигурява висока надеждност при зашумени серийни канали.

DNP3 спрямо IEC 104

ХарактеристикаDNP3IEC 104
ПроизходСеверна Америка (GE/Harris)Европа (IEC)
СтандартIEEE 1815IEC 60870-5-104
ТранспортСериен, TCP (20000), UDPTCP (2404)
Модел на даннитеGroup/Variation (event-based)Type ID / IOA (event-based)
Спонтанно предаванеUnsolicited responsesСпонтанни ASDU
Буфериране на събитияВградено в outstation (Class 1/2/3)Зависи от RTU реализацията
СигурностSecure Authentication v5 (SAv5)IEC 62351 (TLS)
Географски фокусАмерика, Австралия, АзияЕвропа, Африка, Близък Изток

Secure Authentication (SAv5)

IEEE 1815-2012 добавя Secure Authentication version 5 — механизъм за автентикация на критични съобщения (команди, конфигурация). SAv5 ползва HMAC-SHA-256 с предварително споделени ключове или сертификати. Всяка критична заявка преминава през challenge-response последователност, без да криптира данните. За пълна конфиденциалност DNP3 се ползва с TLS (DNP3 over TLS).

Типични приложения

  • Електроразпределение — реклоузъри, секционни прекъсвачи, регулатори на напрежение по фидерите.
  • Електропреносна мрежа — RTU в подстанции, свързани със SCADA центъра.
  • Водоснабдяване и канализация — помпени станции, резервоари, нивомери.
  • Нефт и газ — компресорни станции, тръбопроводен мониторинг.

Въвеждане в експлоатация

  1. Определяне на физическата среда: сериен (RS-232/485) или TCP/IP.
  2. Настройка на адреси: master address и outstation address (0–65519).
  3. Дефиниране на точковата таблица: Group, Variation, индекс, мъртва зона (deadband), Class assignment.
  4. Конфигуриране на unsolicited responses: разрешаване, интервал, максимален брой събития.
  5. Тест с DNP3 протоколен анализатор (Triangle MicroWorks Protocol Test Harness, Wireshark DNP3 dissector).
  6. Проверка на integrity poll (Class 0), event poll (Class 1/2/3) и команди (SBO).
  7. Активиране на SAv5, ако е необходимо.

Типични проблеми

  • Несъвпадение на Group/Variation между master и outstation — точката не се разпознава.
  • Препълване на event буфера при бавен канал — загуба на събития.
  • Грешна deadband настройка — твърде чести или твърде редки аналогови събития.
  • Unsolicited responses не се потвърждават — outstation-ът ги препредава и натоварва канала.
  • CRC грешки при зашумен сериен канал — да се провери окабеляването и скоростта.

Кога се избира DNP3

Когато проектът е в Северна или Южна Америка, Австралия или Азия, където DNP3 е индустриален стандарт; при интеграция с оборудване, което поддържа само DNP3; или когато са необходими unsolicited responses и вградена автентикация (SAv5) без допълнителен TLS слой. В Европа IEC 104 е предпочитан, а DNP3 се среща при внос на оборудване от американски производители.