bg

Модуль Универсальный парсер для программ-логгеров

Последняя версия: 5.0.1 build 1126. November 28, 2025.

Модуль Universal Parser - это расширение для наших логгеров на основе XML. Он позволяет создавать гибкие парсеры для сложных текстовых протоколов и простых бинарных пакетов, используя только XML файлы конфигурации. Вам не нужно писать код на Python или создавать собственный модуль-прокси. Поведение парсера задается правилами, условиями и описаниями полей в XML файле в простом текстовом редакторе, которые модуль загружает при запуске.

Скачать  | PDF руководство

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

Файл конфигурации использует стандартный синтаксис XML 1.0 с четкой древовидной структурой. Каждый узел описывает часть конфигурации парсера, а его атрибуты задают дополнительные параметры обработки. Логические значения задаются числовыми флагами, где 0 означает false, а 1 означает true. Это делает модуль удобным для работы со многими промышленными нестандартными протоколами.

Практический пример разбора текстовых данных

Рассмотрим устройство, которое передает измерения в виде строки обычного текста через последовательный порт в Advanced Serial Data Logger:

TIMESTAMP          ;TEMP;HUM ;STATUS
2025-01-02 08:00:00;23.5;41.2;OK<CR>

С помощью Universal Parser вы можете создать конфигурацию, которая разделит строку на поля и сопоставит их с переменными. Упрощенный фрагмент XML может выглядеть так:

<Config name="EnvLogger [Text]" logtitle="EnvLogger">
 <Response begin="" end="#0D" >
  <Item type="delimit" pos="1" ordernum="1" delimiter=";" name="DATE_TIME_STAMP" type="datetime" format="YYYY-MM-DD HH:MM:SS" />
  <Item type="delimit" pos="1" ordernum="2" delimiter=";" name="TEMP" type="float" />
  <Item type="delimit" pos="1" ordernum="3" delimiter=";" name="HUM" type="float" />
  <Item type="delimit" pos="1" ordernum="4" delimiter=";" name="STATUS" type="string" />
 </Response>
</Config>

В этом примере узел Response задает границы записи, которая оканчивается символом возврата каретки. Узлы Item определяют, как интерпретировать отдельные сегменты строки. Модуль извлекает метку времени в переменную DATE_TIME_STAMP, преобразует температуру и влажность в числовые значения и сохраняет статус как строку. Затем вы можете использовать эти переменные в логгер для записи данных по строкам в базе данных, Excel, CSV и т.п.

Ключевые особенности

  • Настройка парсера на основе XML без необходимости использовать Python или другие языки программирования, в отличие от модулей "Python plugin" или "Proxy plugin".
  • Поддержка как сложных текстовых протоколов, так и простых бинарных пакетов.
  • Гибкое определение полей и сопоставление с переменными логгера для использования в плагинах экспорта данных.
  • Полная поддержка кодировок Windows ANSI и UTF-8.
  • Четкий, структурированный XML с настраиваемыми узлами и атрибутами для реализации разных алгоритмов разбора данных.

Итог

Модуль Universal Parser предоставляет настраиваемый способ преобразования сырых последовательных или сетевых данных в структурированные записи с помощью конфигурации в формате XML. Он поддерживает текстовые и бинарные форматы данных и позволяет создавать надежные и адаптируемые парсеры без написания кода.

Скачать  | PDF руководство

Другие похожие модули: