Модуль Фильтр 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, позволяют строить логику принятия решений в конфигурации логгера без внешних скриптов или кода.
Основная идея и синтаксис выражений
Базовая конфигурации проста. Каждая строка в фильтре 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 добавляет гибкий движок вычислений в логгеры данных. Он позволяет вычислять производные данные, изменять, дополнять пакеты данных и применять правила логики прямо в процессе логирования без внешних скриптов. Формулы в конфигурации подготавливают данные к экспорту и устраняют необходимость постобработки в системах аналитики и отчетности.
Другие похожие модули:
Все модули | Мертвая зона | Выражения (Expressions) | Объединение данных (агрегация) | Фильтр цифровых сигналов | Скрипты | Генератор событий и фильтр | Перенаправление данных | Перенаправление данных на TCP сервер | Отсутствие данных, пропадание связи | Протоколирование сигналов тревоги | Кодирование данных | Данные из списка | Обработка отказа (Failover) | Суммарная статистика