DNP3 (англ. Distributed Network Protocol) — это протокол передачи данных, используемый для связи между компонентами АСУ ТП. Был разработан для удобного взаимодействия между различными типами устройств и систем управления. Может применяться на различных уровнях АСУ ТП.
Существует расширение Secure Authentication для DNP3 для безопасной аутентификации.[1]
Введение
DNP3 базируется на трех уровнях сетевой модели OSI: прикладном (оперирует объектами основных типов данных), канальном (предоставляет несколько способов извлечения данных) и физическом (в большинстве случаев используются интерфейсы RS-232 и RS-485).
Каждое устройство имеет свой уникальный адрес для данной сети, представленный в виде целого числа от 1 до 65520.
Основные термины:
- Outstation — ведомое устройство.
- Master — ведущее устройство.
- Frame (фрэйм) — пакеты, передаваемые и принимаемые на канальном уровне. Максимальный размер пакета 292 байта.
- Static data (постоянные данные) — данные, ассоциированные с каким-либо реальным значением (например, дискретным или аналоговым сигналом)
- Event data (событийные данные) — данные, ассоциированные с каким-либо значимым событием (например, изменения состояния, достижение значением пороговой отметки). Предоставляется возможность присоединения временной метки.
- Variation (вариация) — определяет как интерпретируется значение, характеризуется целым числом.
- Group (группа) — определяет тип значения, характеризуется целым числом (например, постоянное аналоговое значение относится к группе 30, а событийное аналоговое значение к группе 32). Для каждой группы назначен набор вариаций, с помощью которых интерпретируются значения этой группы.
- Object (объект) — данные фрэйма, ассоциированные с каким-то конкретным значением. Формат объекта зависит от группы и вариации.
Список вариаций:
Вариации для постоянных данных
№ |
Значение
|
1 |
32-битное целое с флагами
|
2 |
16-битное целое с флагами
|
3 |
32-битное целое
|
4 |
16-битное целое
|
5 |
32-битное с плавающей точкой с флагами
|
6 |
64-битное с плавающей точкой с флагами
|
Вариации для событийных данных
№ |
Значение
|
1 |
32-битное целое с флагами
|
2 |
16-битное целое с флагами
|
3 |
32-битное целое с флагами и меткой времени
|
4 |
16-битное целое с флагами и меткой времени
|
5 |
32-битное с плавающей точкой с флагами
|
6 |
64-битное с плавающей точкой с флагами
|
7 |
32-битное с плавающей точкой с флагами и меткой времени
|
8 |
64-битное с плавающей точкой с флагами и меткой времени
|
- Флаги подразумевают под собой наличие специального байта со следующими информационными битами: источник данных on-line, источник данных был перезагружен, соединение с источником потеряно, запись значения форсирована, значение вне допустимых границ.
Фрэйм
Заголовок |
Данные
|
10 B |
до 282 B
|
Заголовок фрэйма
Синхронизация |
Длина |
Контроль соединения |
Адрес назначения |
Исходный адрес |
CRC
|
2 B |
1 B |
1 B |
2 B |
2 B |
2 B
|
- Синхронизация — 2 байта синхронизации, позволяющие получателю идентифицировать начало фрэйма.
- Длина — количество байт в оставшейся части пакета без учета октетов CRC.
- Контроль соединения — байт для координирования приема/передачи фрэйма.
- Адрес назначения — адрес устройства, которому назначается передача.
- Исходный адрес — адрес устройства, осуществляющего передачу.
- CRC — CRC для байт заголовка
Раздел данных DNP3 фрэйма содержит (помимо самих данных) по 2 байта CRC для каждых 16 байт передаваемой информации. Максимальное количество байт данных (не включая CRC) для одного фрэйма — 250.
Стандартизация
23 июля 2010 года стандартизирован институтом IEEE, как IEEE Std 1815—2010
Реализации
Примечания
Ссылки