Валидация данных в АСКУЭ «яЭнергетик». Часть 1: Уровень сбора данных

    Банер

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

    Первый и самый важный этап защиты от некачественных данных – это этап их непосредственного сбора с приборов учета. Данные поступают по различным каналам связи: GSM, GPRS, Ethernet, радиоканалы. Каждый из этих каналов подвержен помехам, обрывам и искажениям. Задача системы на уровне сбора – отсеять «мусор» еще до того, как он попадет в базу данных для дальнейших расчетов.

    В яЭнергетик сбором данных занимается модуль, который отвечает за опрос приборов, прием и первичную обработку данных. Именно здесь выстроена многоуровневая система проверок, позволяющая гарантировать, что в ядро системы попадают только валидные данные.

    Рассмотрим ключевые механизмы валидации, работающие на этом этапе.

    1. Проверка размера пакета

    Каждый протокол обмена с прибором учета имеет строго определенную структуру. Система заранее знает ожидаемый размер или допустимый диапазон размеров ответа на каждый конкретный запрос.

    • Как это работает: сервер сбора отправляет запрос к прибору и ожидает ответ определенной длины. Если приходит пакет, размер которого не соответствует ожидаемому, система немедленно фиксирует это.
    • Что происходит при ошибке: пакет считается битым и отбрасывается. В журнал событий записывается ошибка с указанием ожидаемого и фактического размера.

    Блок Схема

    Рисунок 1 – Схема проверки размерности

    Примечание: Мы не всегда знаем точный размер ответа. Но для ряда протоколов мы знаем диапазон допустимых размеров (т.е. минимальную и максимальную допустимую длину для корректного пакета).

    2. Проверка терминаторы (маркеров начала и конца пакета)

    В большинстве протоколов связи каждый пакет имеет четкие маркеры, обозначающие его начало и конец. Это могут быть специальные байты-заголовки (например, флаг 0x7E в HDLC-кадрировании, используемом в протоколе DLMS, который лежит в основе СПОДЭС) или стартовые/завершающие символы в текстовых протоколах.

    ·         Как это работает: сервер сбора сканирует входящий поток байтов в поисках маркера начала пакета. Обнаружив его, система начинает сбор данных до тех пор, пока не встретит маркер конца пакета.

    ·         Что происходит при ошибке: если маркер начала или конца отсутствует, система понимает, что пакет битый. Такой пакет не обрабатывается.

    Байт

    1 2 3,4 5,6 7 … N-2 N-1 N
    Значение END OPT AddrD AddrS PAL CRC8 END

    3. Проверка контрольной суммы (CRC)

    Это классический и один из самых надежных способов проверки целостности данных. Контрольная сумма – это число, вычисляемое по специальному алгоритму (CRC-16, CRC-32 и т.д.) на основе всех байтов пакета. Прибор учета вычисляет CRC и добавляет его в отведенное для него поле пакета перед отправкой.

    • Как это работает: сервер сбора, получив пакет, вычисляет контрольную сумму по тому же алгоритму и сравнивает ее со значением, присланным прибором.
    • Что происходит при ошибке: если суммы не совпадают, это однозначно указывает на искажение данных в процессе передачи (помехи, плохой сигнал, сбой оборудования). Пакет отбраковывается.

    4. Проверка константных значений в пакете

    В каждом пакете есть поля, значения которых заранее известны системе и не должны меняться от опроса к опросу. Самый яркий пример адрес прибора учета.

    • Как это работает: сервер сбора знает, какой адрес закреплен за каждым прибором в системе. При получении пакета система извлекает адрес отправителя и сверяет его с эталонным значением.
    • Что происходит при ошибке: если адрес в пакете не соответствует ожидаемому, данные не принимаются. Это защищает от ситуации, когда показания одного счетчика по ошибке записываются в базу другого.

    5. Проверка размерности конкретных полей в пакете

    В некоторых протоколах связи поля данных имеют строго определенную размерность – например, количество байт, отведенных под показания, или допустимый диапазон значений.

    • Как это работает: сервер сбора знает, сколько байт должно занимать каждое поле (показания, время, статусные флаги) и проверяет это соответствие.
    • Что происходит при ошибке: если поле имеет неверную длину или значение выходит за допустимые пределы (например, отрицательное показание), пакет считается некорректным и отбрасывается.

    6. Логирование всех поступающих данных

    Все, что приходит на сервер, сохраняется в «сыром» виде в специальном лог-файле. Это означает, что система хранит полный архив всех принятых пакетов.

    • Как это работает: Каждый байт, поступивший от прибора учета, записывается на диск в неизменном виде.
    • Зачем это нужно:
      • Расследование инцидентов: если возникла спорная ситуация, инженер всегда может открыть лог и посмотреть, что именно пришло от прибора в тот или иной момент.
      • Отладка: при настройке новых типов приборов или протоколов логи помогают разработчикам и инженерам видеть, что реально приходит «на проводе».
      • Аудит: это обеспечивает полную прозрачность и возможность проверить работу системы задним числом.

    7. Мониторинг инфраструктуры через Zabbix

    Валидация данных – это не только проверка самих пакетов, но и контроль состояния всей инфраструктуры сбора.

    • Как это работает: система мониторинга Zabbix отслеживает:
      • Трафик на каналах связи (объем переданных/принятых данных).
      • Состояние оборудования (модемы, УСПД, серверы сбора) – онлайн/офлайн.
      • Загрузку процессора и память на серверах сервер сбора.
      • Количество ошибок опроса в единицу времени.
    • Зачем это нужно: проблемы с качеством данных часто связаны не с самими приборами, а с состоянием инфраструктуры. Zabbix позволяет оперативно обнаружить, что, например, упал канал связи или «завис» модем, и принять меры до того, как это приведет к массовым потерям данных.

    Изображение (10) (1)

    В следующих частях: валидация на уровне бэкенд, алгоритмы восстановления пропусков, контроль аномалий и итоговая сверка.

    Вопросы и ответы

    Хотите получать вовремя новости о выходе статей в нашем блоге? Подписывайтесь на телеграм-канал yaenergetikru

    Статья является объектом авторского права ООО "Технологии энергоучета". Запрещается любое использование текста и материалов данной статьи без указания источника: яЭнергетик.рф или yaenergetik.ru

    Последнее обновление: 15.09.2026 13:19

    АСКУЭ яЭнергетик

    Учет электроэнергии онлайн
    Быстрая настройка удалённого опроса
    7 дней бесплатного пользования
    Узнать подробнее
    Статья Валидация данных в АСКУЭ «яЭнергетик». Часть 1: Уровень сбора данных