Модуль Скрипты на языке программирования Python для программ-логгеров
Последняя версия: 5.0.1 build 1126. November 28, 2025.
Плагин Python 3 предоставляет компактный и прямой API для расширения наших программ логгеров с помощью пользовательских скриптов. Используйте скрипты на Python для парсинга, фильтрации, экспорта и обработки событий. Один скрипт может выступать как парсер и фильтр, как модуль экспорта данных или обработчик событий. Скрипты выполняются внутри основной программы и имеют доступ к системным библиотекам Python, таймерам и потокам. Скрипты должны выполняться быстро и не должны использовать бесконечные циклы.
Типичные сценарии использования
Используйте плагин для реализации пользовательских парсеров протоколов для устройств, поддержка которых не реализована, преобразования данных перед экспортом или запуска действий по событиям. Примеры включают преобразование двоичных данных от датчиков в стандартные числовые переменные или фильтрацию ошибочных телеметрических значений. Плагин поставляется с примерами скриптов, которые вы можете адаптировать под свою задачу.
Установка и настройка
Установите Python 3 для 32-битных систем (x86). Создавайте скрипты в предпочитаемом редакторе - плагин не включает встроенный редактор. В настройках модуля укажите полный путь к файлу скрипта и к python3x.dll, если он не найден автоматически. После установки модуля просмотрите поставляемые примеры в папке модуля и используйте их как шаблоны.
API плагина и требуемые точки входа
Скрипты должны предоставлять именованные функции, вызываемые хостом. Каждая функция получает определенные параметры и должна соблюдать ограничения по производительности. Избегайте блокирующих операций. Основные функции: FilterData, ParseData, ExportData, EventData и опциональная инициализация через функцию main. Парсеры должны возвращать как минимум три переменные: FULL_DATA_PACKET, DATA_PACKET и DATA_TIME_STAMP (имя переменной парсера для меток времени - DATE_TIME_STAMP).
Примеры интеграции с Advanced Serial Data Logger
Сценарий интеграции: температурный датчик с двоичным пакетом данных. Устройство посылает пакет:
[0x7E, id, temp_msb, temp_lsb, status, crc, 0x7F]
ParseData использует buffer.GetBytes() для накопления поступающих частей пакета, находит разделители кадра 0x7E/0x7F, проверяет CRC и формирует переменные парсера:
- FULL_DATA_PACKET = b'\x7E\x01\x00\xFA\x00\xB2\x7F'
- DATA_PACKET = 'temp=250,status=0'
- DATE_TIME_STAMP = '2025-01-02 08:00:00'
FilterData может преобразовать исходные значения temp_msb/temp_lsb в градусы Цельсия, применить калибровочный сдвиг из параметров модуля и убрать случайные "всплески". ExportData может собрать строку CSV и записать ее в файл.
Ключевые особенности
- Простые скрипты на Python 3 для разных ролей: парсера, фильтра, экспорта данных и обработчика событий.
- Прямой доступ к буферу входящих данных с помощью функций Clear, Shift и GetBytes.
- Вспомогательные функции для отправки байтов и управления параметрами модуля.
- Поддержка парсинга данных от нескольких TCP клиентов одновременно с использованием идентификаторов источников данных.
- Поставляемые примеры ускоряют интеграцию в реальных задачах.
- Легкий загрузчик с опциональной инициализацией main.
Краткий итог
Плагин позволяет создавать мощные и компактные расширения на Python 3 для парсинга, фильтрации, экспорта и обработки событий. Соблюдайте правила реализации API и правила использования буфера, чтобы сделать надежные и высокопроизводительные интеграции.
Как включить модуль
На рисунке ниже вы можете увидеть, как включить данных модуль в настройках программы на странице "Модули".

Рис.1. Выбор модуля.
Как настроить модуль
На рисунке ниже показан пример настроек модуля. Вы можете ознакомиться с файлом справки по ссылке выше, для получения более подробной информации.

Рис.2. Настройка модуля.