Модуль Чтение данных DNP3 для программ-логгеров
Последняя версия: 5.0.1 build 1126. November 28, 2025.
Плагин Чтение данных DNP3 добавляет поддержку DNP3 (Distributed Network Protocol) в Advanced Serial Data Logger, Advanced TCP/IP Data Logger и Data Logger Suite. Он предназначен для инженеров и интеграторов, которым необходимо собирать, декодировать и экспортировать данные с удаленных терминальных устройств, интеллектуальных электронных устройств и другого полевого оборудования в сетях электроэнергии, водоснабжения и промышленной автоматизации. Плагин работает в роли DNP3 мастера и может опрашивать любое совместимое внешнее устройство, соответствующее спецификации DNP3.
Плагин скрывает детали низкоуровневого протокола и предоставляет простой интерфейс конфигурации, в котором вы задаете запросы, адреса, объекты и правила парсинга. Вы можете опрашивать бинарные входы и выходы, аналоговые входы и выходы, счетчики, данные целостности класса 0, события класса 1, класса 2 и класса 3, а также замороженные и изменившиеся значения. Плагин автоматически проверяет CRC каждого полученного пакета перед разбором.
Вы можете настраивать интервалы опроса, таймауты запросов и сопоставления ответов как в небольших тестовых стендах, так и в крупных распределенных SCADA системах. Плагин может отправлять несколько запросов последовательно, автоматически отменять медленные или задерживающиеся запросы и переходить к следующему в очереди. Это делает его пригодным для смешанных сетей, где часть устройств подключена по быстрым TCP каналам, а другие - по медленным радиомодемам или длинным последовательным линиям. Вы можете настраивать отдельные DNP3 запросы, соответствующие профилю каждого устройства и списку поддерживаемых объектов.
Плагин полностью интегрирован в процесс обработки в наших программах-логгерах. После декодирования DNP3 пакета извлеченные значения помещаются во внутреннюю память логгера. Затем вы можете использовать другие плагины для экспорта данных в CSV, базы данных, OPC серверы, вызова пользовательских скриптов.
Настройка запросов данных через DNP3
Чтобы настроить новый DNP3 запрос, создайте элемент запроса в конфигурации плагина. Используйте команду меню "Действия → Добавить новый запрос", чтобы открыть диалог создания запроса. В этом диалоге введите имя запроса, например "Подача 1, аналоговые входа" или "Станция 5. Состояние", и затем кликните OK. Запрос появится в очереди запросов, где вы сможете задать остальные параметры и правила обработки.
Каждый запрос имеет несколько опций, которые определяют, как плагин будет взаимодействовать с ведомым устройством:
- Адрес устройства - адрес назначения ведомого устройства в DNP3 сети. Допустимый диапазон от 1 до 65530. Этот адрес должен совпадать с настроенным адресом ведомого устройства.
- Память (тип объекта) - определяет, какую группу объектов DNP3 и вариацию плагин будет читать.
- Код качества - определяет режим чтения и схему адресации (например, все объекты, диапазон по индексу или диапазон по количеству).
- Таймаут ожидания - интервал, в течение которого логгер ожидает ответа.
- Имена элементов ответа - необязательный список имен, которые плагин присваивает значениям, возвращаемым этим запросом. Например, при чтении блока аналоговых входов вы можете назвать их VALUE1, VALUE2, VALUE3 и так далее.
Если вы не укажете имена элементов ответа, плагин сгенерирует имена по умолчанию на основе типа значения и индекса:
- Аналоговые входы - AI0, AI1, AI2, ... AIn
- Аналоговые выходы - AO0, AO1, AO2, ... AOn
- Счетчики - CNT0, CNT1, CNT2, ... CNTn
- Бинарные входы - DI0, DI1, DI2, ... DIn
- Бинарные выходы - DO0, DO1, DO2, ... DOn
Интеграция с логгером на примере Advanced Serial Data Logger
При использовании с Advanced Serial Data Logger плагин DNP3 общается с устройствами через последовательные интерфейсы, такие как RS 232, RS 422 и RS 485. Логгер управляет конфигурацией физического порта и доступом к нему, а плагин работает на уровне протоколе DNP3. Типовая конфигурация может включать несколько устройств, подключенных в сеть RS 485, где логгер действует как мастер-станция.
Пример декодированных данных DNP3 может выглядеть так:
DATE_TIME_STAMP = 2025-01-02 08:00:00 DEVICE_ADDRESS = 12 AI0 = 12.34 ; Аналоговый вход 0 - feeder current A AI1 = 6.89 ; Аналоговый вход 1 - feeder voltage kV AI2 = 10.25 ; Аналоговый вход 2 - busbar current A AI3 = 6.92 ; Аналоговый вход 3 - busbar voltage kV CNT0 = 154320 ; Счетчик 0 - energy kWh CNT1 = 23140 ; Счетчик 1 - energy kVarh
Далее вы можете настроить плагины экспорта в логгере для сохранения этих значений разными способами. Например, экспортированная строка в формате CSV для того же ответа может быть:
2025-01-02 08:00:00,12,12.34,6.89,10.25,6.92,154320,23140
В сценарии экспорта в базу данных плагин может сопоставить разобранные переменные DATE_TIME_STAMP, AI0, AI1, AI2, AI3, CNT0 и CNT1 с соответствующими столбцами таблицы. Это позволяет выполнять периодические запросы и накапливать данные для отчетов.
Ключевые особенности
- Работает как DNP3 мастер с поддержкой бинарных входов и выходов, аналоговых входов и выходов, счетчиков и классных событий.
- Автоматический расчет и проверка CRC для каждого пакета.
- Настраиваемые интервалы опроса и расписания.
- Гибкий разбор ответов и сопоставление с именованными переменными, такими как AI0, DI0, или своими тегами.
- Поддержка данных Class 0, Class 1, Class 2 и Class 3, включая замороженные и измененные значения.
Вывод
Этот плагин для протокола DNP3 предоставляет практичный и настраиваемый способ считывания данных с широкого спектра DNP3-совместимых устройств. Он помогает инженерам собирать, хранить и пересылать DNP3 данные без разработки собственных обработчиков протокола.
Как включить модуль
На рисунке ниже вы можете увидеть, как включить данных модуль в настройках программы на странице "Модули".

Рис.1. Выбор модуля.
Как настроить модуль
На рисунке ниже показан пример настроек модуля. Вы можете ознакомиться с файлом справки по ссылке выше, для получения более подробной информации.

Рис.2. Настройка модуля.