Модуль Парсер данных ASCII. Отправка запросов. для программ-логгеров
Последняя версия: 5.0.1 build 313. March 20, 2025.
Этот плагин добавляет возможности парсинга текстовых данных ASCII и отправки запросов для сбора данных. Он принимает данные из источника, извлекает переменные. При необходимости плагин может отправлять команды на устройство и опрашивать его. Используйте плагин для сбора измерений, регистрации событий или управления приборами. В модуле реализованы расширенные парсеры для фиксированного формата, данных с разделителями или извлечение данных, используя регулярные выражения. При необходимости поддерживается обработка бинарных и hex-фрагментов.
Ключевые возможности
- Отправка ASCII-запросов устройству, включая hex-байты в формате #XX (например, "#02INIT#03"). Задание времени отправки: один раз при старте, по расписанию (опрашивать через интервал) или в указанное время (например, "08:00:00").
- Ожидание ответа устройства с настраиваемыми таймаутами.
- Разделение входного потока на пакеты по маркерам начала/конца или по таймауту.
- Извлечение переменных по фиксированной позиции, по порядку или через регулярные выражения. Можно задать значения по умолчанию или создавать пустые переменные.
- Замена или удаление нежелательных символов до анализа (например, удаление непечатных или управляющих символов).
- Фильтрация пакетов - игнорирование или обработка только нужных сообщений по текстовому совпадению.
- Добавление метки времени и идентификатора источника к каждому разобранному пакету.
Типовые примеры
Пример 1 - запись фиксированной ширины:
223 741 09127 15:53:30 00:05:28 O **********************************
- Установите тип парсинга "Фиксированная позиция".
- Определите переменные: абонент (символы 1-3), вызываемый номер (колонки 11-13), время (колонки 26-33) и длительность (колонки 34-41).
- Укажите типы данных для времени и чисел, чтобы корректно экспортировать значения.
Пример 2 - данные с разделителем:
TEMP,25.4,2025-01-02 08:00:00
- Используйте запятую как разделитель.
- Разбейте поля на переменные: тип, значение, метка времени.
- При необходимости преобразуйте формат метки времени.
Пример 3 - данные от сканера штрих-кодов
Настройка: Сканер штрих-кодов передает отсканированные коды через COM порт. Вы можете использовать Advanced Serial Data Logger (ASDL) для сбора, отображения и экспорта данных.
Пример входящих данных (каждое сканирование приходит в новой строке):
BC1234567890Рекомендуемая конфигурация:
- Разделение пакетов: используйте символы конца строки в качестве разделителей пакета данных (например, #0D#0A) или включите разделение по таймауту, если разделители не заданы.
- Тип парсинга: "Фиксированная позиция" - парсер должен извлекать штрих-код, начиная с колонки 1 и интерпретировать его как строку.
- Фильтрация: добавьте правило игнорирования пустых сканов или обработки только кодов, соответствующих шаблону вида ^BC\d{10}$.
- Запросы: если сканер поддерживает опрос, создайте строку запроса, которую ASDL будет отправлять каждые 5 секунд, чтобы инициировать чтение. Настройте таймаут ожидания ответа перед следующей отправкой.
Пример сочетания опроса и парсинга:
- ASDL отправляет строку опроса "#02READ#03" каждые 5 секунд.
- Сканер возвращает: BC1234567890#0D#0A
- Парсер разбивает пакет по #0D#0A, перечисляет поля, проверяет шаблон штрих-кода, при необходимости добавляет DATE_TIME_STAMP и передает данные в последующие фильтры и модули экспорта.
Практические советы
- Если признаки пакета данных содержат непечатные символы, задавайте их в конфигурации как #XX (например, #0D#0A).
- Чтобы задать признак начала пакета, когда начало меняются (например, метка времени), используйте небольшое регулярное выражение, например \d{4}\-\d{2}\-\d{2} для совпадения с "2025-01-02".
- Используйте функцию замены символов, чтобы удалить специальные байты до парсинга.
- Контролируйте длину пакета, если устройство всегда отсылает пакеты фиксированной длины, чтобы игнорировать поврежденные пакеты.
- Если нужно, то создавайте правила игнорирования пакетов, чтобы предотвратить экспорт ненужных данных.
Другие похожие модули:
Все модули | ASCII данные (парсер и запросы) | MODBUS RTU, MODBUS TCP, MODBUS ASCII | Обработка данных от весов | DNP3 протокол | GE Fanuc Automation PLC (через протоколы CCM, SNP, SNP-X) | Siemens SIMATIK PLC (S7-200, S7-300, S7-400, S5) | EtherNet/IP | M-Bus | Bacnet/IP | IEC 62056-21 | DLMS/COSEM | DL-T645-2007 | Kamstrup [KMP протокол] | Модуль запроса и обработки данных для модулей ADAM, ICP-CON и NuDAM | RFC3164 (syslog протокол) | HTTP data parser | Файловые запросы | Парсер XML | CSV или разделенные табуляцией данные | RFID Reader Protocol Parser (LLRP, ISO 18000-6B, ISO 18000-6C) | Парсер JSON