Distributed Network Protocol 3 ( DNP3 ) — это набор протоколов связи , используемых между компонентами в системах автоматизации процессов . Его основное применение — в коммунальных службах, таких как электро- и водоснабжение. В других отраслях он используется нечасто. Он был разработан для связи между различными типами оборудования для сбора и управления данными . Он играет важную роль в системах SCADA , где он используется главными станциями SCADA (они же центры управления), удаленными терминалами (RTU) и интеллектуальными электронными устройствами (IED). Он в основном используется для связи между главной станцией и RTU или IED. ICCP, протокол связи между центрами управления (часть IEC 60870-6 ), используется для связи между главными станциями. Конкурирующие стандарты включают старый протокол Modbus и новый протокол IEC 61850 .
Пока IEC 60870-5 находился в стадии разработки и не был стандартизирован, возникла необходимость в создании стандарта, который бы обеспечивал взаимодействие между компонентами SCADA различных поставщиков для электросетей. Таким образом, в 1993 году компания GE-Harris Canada (ранее известная как Westronic) использовала частично завершенные спецификации протокола IEC 60870-5 в качестве основы для открытого и немедленно реализуемого протокола, специально отвечающего требованиям Северной Америки. Протокол разработан для обеспечения надежной связи в неблагоприятных условиях, которым подвергаются системы автоматизации электросетей, и специально разработан для преодоления искажений, вызванных электромагнитными помехами (EMI), стареющими компонентами (их ожидаемый срок службы может растянуться на десятилетия) и плохими средствами передачи данных.
Поскольку приложения для интеллектуальных сетей обычно предполагают доступ третьих лиц к тем же физическим сетям и базовой IP-инфраструктуре сети, была проделана большая работа по добавлению функций безопасной аутентификации в протокол DNP3. Протокол DNP3 соответствует IEC 62351-5 . Некоторые поставщики поддерживают шифрование с помощью bump-in-the-wire для последовательных коммуникаций или виртуальных частных сетей для коммуникаций на основе интернет-протокола. Один из самых популярных методов bump-in-the-wire изначально появился как AGA-12 (Американская газовая ассоциация) в 2003 году, а затем стал IEEE Std. 1711-2010. Этот стандарт был впоследствии отозван 27 марта 2014 года.
Протокол DNP3 также упоминается в стандарте IEEE Std. IEEE 1379-2000, который рекомендует набор лучших практик для внедрения современных каналов связи SCADA Master-RTU/IED. Они включают не только шифрование, но и другие практики, которые повышают безопасность от известных методов вторжения.
Рекомендуется использовать DNP3 с TLS (Transport Layer Security) в соответствии с IEC 62351-3.
Протокол DNP3 обладает значительными функциями, которые делают его более надежным, эффективным и совместимым, чем старые протоколы, такие как Modbus, но за счет большей сложности.
С точки зрения модели OSI для сетей DNP3 определяет протокол уровня 2. Он обеспечивает мультиплексирование, фрагментацию данных, проверку ошибок, управление связью, приоритезацию и службы адресации уровня 2 для пользовательских данных. Он также определяет функцию транспорта (несколько похожую на функцию уровня 4 ) и уровень приложения ( уровень 7 ), который определяет функции и общие типы данных, подходящие для обычных приложений SCADA. Кадр DNP3 сильно напоминает, но не идентичен кадру IEC 60870-5 FT3. Он интенсивно использует циклические коды избыточности для обнаружения ошибок.
Улучшенная эффективность полосы пропускания достигается за счет событийно-ориентированной отчетности данных . Удаленный терминальный блок отслеживает точки данных и генерирует события, когда определяет, что данные должны быть сообщены (например, когда они меняют значение). Каждое из этих событий помещается в один из трех буферов, связанных с «классами» 1, 2 и 3. В дополнение к ним, класс 0 определяется как «статическое» или текущее состояние отслеживаемых данных.
Удаленный терминальный блок изначально опрашивается с помощью того, что DNP3 называет «опросом целостности» (комбинированное чтение данных классов 1, 2, 3 и 0). Это заставляет удаленный терминальный блок отправлять все буферизованные события, а также все статические данные точек на главную станцию. После этого главная станция опрашивает данные событий, считывая классы 1, 2 или 3. Чтение классов может выполняться одновременно или каждый класс может считываться с разной скоростью, предоставляя механизм для создания различных приоритетов отчетности для разных классов. После опроса целостности отправляются только существенные изменения данных. Это может привести к значительно более быстрому извлечению данных, чем опрос всего, все время, независимо от того, значительно ли они изменились.
Удаленный терминал также можно настроить на спонтанную передачу данных класса 1, 2 или 3 по мере их появления.
Протокол DNP3 поддерживает синхронизацию времени с RTU. Протокол DNP имеет варианты с временными метками всех точечных объектов данных, так что даже при нечастом опросе RTU все еще возможно получить достаточно данных для реконструкции последовательности событий, которые произошли между опросами.
Протокол DNP3 имеет значительную библиотеку общих точечно-ориентированных объектов. Целью этой обширной библиотеки было устранение необходимости в побитовом отображении данных поверх других объектов, как это часто делается во многих установках Modbus. Например, доступны варианты чисел с плавающей точкой, поэтому нет необходимости отображать число на пару 16-битных регистров. Это улучшает совместимость и устраняет такие проблемы, как порядок байтов .
Удаленный терминальный блок для протокола DNP3 может быть небольшим, простым встроенным устройством или большой, сложной стойкой, заполненной оборудованием. Группа пользователей DNP установила четыре уровня подмножеств протокола для соответствия RTU. Группа пользователей DNP опубликовала процедуры тестирования для уровней 1 и 2, простейших реализаций.
Протокол надежный, эффективный и совместимый с широким спектром оборудования, но со временем стал более сложным и тонким. Все более требовательные промышленные приложения являются частью проблемы. Кроме того, концепции SCADA технически просты, но полевые приложения, которые интегрируют несколько типов оборудования, могут стать сложными для настройки или устранения неполадок из-за различий в реализациях поставщиков.
23 июля 2010 года IEEE принял DNP3 в качестве стандарта IEEE 1815-2010. [ 1 ] Стандарт IEEE 1815 был совместно спонсирован Комитетом по передаче и распределению и Комитетом по подстанциям Общества IEEE по энергетике и электроэнергетике при дополнительном участии Группы пользователей DNP.
В апреле 2012 года IEEE одобрило Std 1815-2012 для публикации. IEEE Std 1815-2010 устарел. Версия стандарта 2012 года включает функции для Secure Authentication Version 5. Предыдущая версия безопасной аутентификации в IEEE 1815-2010 использовала только предварительно предоставленные ключи . Новая версия способна использовать Public Key Infrastructure и облегчает удаленное изменение ключей.