bg

Модуль Фильтр Expressions для программ-логгеров

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

Модуль Expressions - это движок формул и выражений для наших логгеров данных (например, Advanced Serial Data Logger или Advanced TCP/IP Data Logger). Он вычисляет формулы, применяет логические правила и преобразует разобранные значения в режиме реального времени перед экспортом. Вы можете комбинировать арифметические, строковые, дата/время и булевы операции в одном месте и использовать результаты как обычные переменные парсера во всех модулях экспорта.

Плагин поддерживает разные типы данных: строка, дата, время, целые числа, вещественные числа и логические значения. Доступны арифметические операторы +, -, *, / и степень ^, а также математические функции ABS, ATAN, COS, EXP, LN, ROUND, SIN, SQRT, SQR и TRUNC. Строковые функции COPY, REPLACE, POS помогают нормализовать или переформатировать сообщения устройств. Логические операторы и функции, такие как AND, OR, XOR, позволяют строить логику принятия решений в конфигурации логгера без внешних скриптов или кода.

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

Основная идея и синтаксис выражений

Базовая конфигурации проста. Каждая строка в фильтре Expressions - это одно присваивание в формате:

VARIABLE_NAME = EXPRESSION

Здесь VARIABLE_NAME - имя новой или существующей переменной, а EXPRESSION - любое допустимое выражение, которое может использовать операторы, функции, константы и другие переменные парсера. Можно ссылаться на все существующие переменные, которые предоставляет модуль-парсер, включая числовые значения, строки и временные метки. Также можно ввести новые вычисляемые переменные и использовать их в последующих выражениях или в любом модуле экспорта так же, как переменные парсера.

Например, в системе MODBUS-мониторинга температуры парсер может извлечь сырое значение из регистра 40001 в переменную TEMP_RAW. Затем можно вычислить скорректированную температуру и создать новую переменную:

TEMP_C = ROUND(TEMP_RAW * 0.1 - 2.5, 1)

Если входное значение TEMP_RAW равно 275, плагин вычислит: TEMP_C = ROUND(275 * 0.1 - 2.5, 1) = ROUND(27.5 - 2.5, 1) = ROUND(25.0, 1) = 25.0. Новая переменная TEMP_C затем доступна в модуле экспорта, например в CSV, базы данных или через OPC.

Практические примеры вычислений

Модуль Expressions полезен в типовых сценариях логирования, когда нужно преобразовать сырые значения, вычислить производные метрики или выполнить условную проверку. Ниже приведены пара примеров использования математических функций, строковых функций и булевой логики в реальных проектах.

Пример 1: отношение сигнал к шуму из исходных значений

SIGNAL_LEVEL  = 23.5
NOISE_LEVEL   = 3.2

SNR           = ROUND(SIGNAL_LEVEL / NOISE_LEVEL, 2)
GOOD_SIGNAL   = (SNR > 5) AND (SNR < 20)

Если входные данные содержат SIGNAL_LEVEL и NOISE_LEVEL, плагин вычисляет отношение сигнал к шуму и устанавливает новую логическую переменную GOOD_SIGNAL. Вы можете экспортировать SNR и GOOD_SIGNAL в CSV или поля базы данных и использовать их для срабатывания оповещений или подсветки строк в отчетах.

Пример 2: формирование объединенной строки

DEVICE_ID        = "PLC_01"
ALARM_TEXT       = "Overheat"
ALARM_CODE       = "A123"

FULL_ALARM_TEXT  = DEVICE_ID + ": " + ALARM_TEXT + " (" + ALARM_CODE + ")"

Также можно перерабатывать строковые значения. Со строковыми функциями COPY и REPLACE вы можете извлечь или преобразовать текстовое значение. Например, если устройство отправляет коды статуса в виде "OK,OK,ERR,OK" в переменной STATUS_LIST, то можно извлечь первый элемент:

SHORT_STATUS = COPY(STATUS_LIST, 1, POS(",", STATUS_LIST) - 1)

Ключевые возможности

  • Поддержка арифметических, строковых, дата/время и логических выражений с несколькими уровнями скобок.
  • Богатый набор функций: математические (ABS, SQRT, LN, ROUND), строковые (COPY, REPLACE, POS) и логические (AND, OR, XOR).
  • Возможность создания новых переменных и изменения существующих для использования во всех модулях экспорта.
  • Интеграция с большинством наших логгеров данных.
  • Простой редактор с выпадающими списками функций и переменных.
  • Обработка в реальном времени: вычисление производных значений для каждой записи перед экспортом.

Резюме

Модуль Expressions добавляет гибкий движок вычислений в логгеры данных. Он позволяет вычислять производные данные, изменять, дополнять пакеты данных и применять правила логики прямо в процессе логирования без внешних скриптов. Формулы в конфигурации подготавливают данные к экспорту и устраняют необходимость постобработки в системах аналитики и отчетности.

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