3080 от 01.03.2025 (актуальная версия)
- Добавлена поддержка расписаний и календаря
- Исправлена ошибка, приводившая к вылету драйверов CMD, MQTT и HTTP при попытке считать простое числовое значение
- Исправлена ошибка при парсинге ответов на ICMP-ping
- Устранена дублирующая загрузка шлюзом данных при перезагрузке сервера
- Добавлен системный календарь, общий для всех сервисов и автоматически распространяемый на шлюзы. Системный календарь позволяет скорректировать праздничные и рабочие дни в соответствии с производственным календарем.
- В драйвере HTTP включена генерация ошибки на занятый порт для входящих запросов
- В драйвере HTTP добавлено поле Таймаут для входящих запросов (входящие запросы должны следовать не реже указанного интервала)
- В драйвере MQTT добавлено поле Таймаут (издатель должен публиковать MQTT-сообщения не реже не реже указанного интервала)
- В драйвере MQTT исправлена ошибка с отпиской от неактуальных переменных, когда драйвер продолжал получать сообщения по топикам, которые уже не использовались переменными
- В драйвере виртуальных переменных добавлен режим "Раздельная переменная" - читаем из одной переменой, пишем в другую
- В драйвере OPC UA исправлена ошибка, приводившая к разрыву связи с сервером OPC UA от SimpleScada при попытке подписаться более чем на 1 переменную
- В Modbus-драйверах исправлено поведение при запросе на запись. Было: после успешной записи в регистр значение переменной устанавливалось в записываемое значение до подтверждающего чтения. Стало: при формировании запросов на запись автоматически добавляется в очередь запрос на чтение. Данный алгоритм позволит самым быстрым образом получать актуальное, а не предполагаемое значение переменной путем подтверждающего чтения.
- В Modbus-драйверах оптимизировано формирование очереди запросов для случаев с большими задержками ответов. Исправлена ситуация, когда одни регистры опрашивались чаще других, при одинаковом периоде опроса.
- В Modbus-драйверах исправлена ошибка, приводившая к отсутствию переподключения к узлу в случае, когда таймаут превышал период опроса.
- Исправлена ошибка отображения лога шлюза
- Порт по умолчанию в Modbus-карте изменен на 5002 (т.к. 502 может конфликтовать с портом, на котором запущен modbus-слейв от производителя устройства)
- В библиотеке HTTP исправлена проблема с отправкой запросов, содержащих non-ASCII символы (добавлена функция urlencode)
3077 от 28.12.2024
- Добавлен драйвер BACnet/IP
- Изменен формат значений тревожных переменных
unack*8 + act*4 + cls_hi*2 + cls_lo*1
3074 от 08.12.2024
- В выражениях драйверов drv_virt и drv_alarm добавлены функции времени (timestamp(),hour(),minute(),second(),year(),month(),mday(),wday(),yday(),zone(),uptime())
- У аварийных переменных добавлена возможность опроса по периоду или по cron-расписанию
- В drv_mbrtu добавлена проверка параметров порта (все узлы, которые подключаются на один RTU-порт, должны иметь одинаковые настройки порта, такие как скорость, четность и стоповые биты)
- В выражения добавлены константы PI и E
- Исправлен сброс на 0 метрик в modbus-драйверах при выполнении сборки
- В драйвере веб-камер добавлена возможность использования базовой авторизации через URL вида http://login:password@server.com
- Добавлен драйвер SNMP (drv_snmp). Драйвер позволяет читать данные с сетевых устройств по протоколу SNMP версии v2c.
3070 от 18.11.2024
- Исправлена ошибка в сервисе map_mbtcp, приводившая к кратковременной выдаче нулей по запрашиваемым регистрам во время сборки
- Оптимизированы драйверы Modbus в сценариях работы с большим количеством отдельных регистров
3069 от 12.11.2024
- Доработан доступ через шлюз к серверу (сервис connect, параметры server_forward_port, server_forward_ssl_enabled, forward_allowed_ip)
3068 от 11.11.2024
- Исправлена ошибка в drv_opcua, выражавшаяся в отключении всех OPC-UA-серверов при недоступности хотя бы одного
- Добавлена возможность доступа к серверу через туннельный порт шлюза (параметр tunnel_port и tunnel_allowed_ip сервиса connect)
3066 от 25.10.2024
- Сводные аварии принимают максимальный статус наблюдаемых аварий
3065 от 24.10.2024
- Исправлена ошибка выравнивания памяти при работе с сетевым буфером по методу курсора на 32-bit
3064 от 23.10.2024
- Принудительная синхронизация групповых переменных
3063 от 21.10.2024
- Для уменьшения нагрузки на процессор при больших объемах сетевого трафика оптимизирован механизм сетевой буферизации
3062 от 16.10.2024
- Исправлена ошибка в drv_mqtt, в некоторых случаях приводившая к постоянному реконнекту при работе с несколькими узлами на одном брокере
3061 от 16.10.2024
- Корректная обработка неразрывных пробелов в выражениях на бэкэнде
3060 от 02.10.2024
- Предотвращена запись в групповые переменные, если управляющая переменная в ошибке (доработка)
3059 от 26.09.2024
- В драйвере OPC UA добавлено округление при записи целых чисел (для нивелирования погрешности чисел с плавающей точкой
3058 от 23.09.2024
- В драйвере MQTT доступны настройки QoS и Retain
3057 от 20.09.2024
- Предотвращена запись в групповые переменные, если управляющая переменная в ошибке
3056 от 20.09.2024
- Добавлен драйвер Modbus-RTU-Over-TCP
3055 от 17.09.2024
- Добавлена возможность указания папки установки в команде установки дистрибутива, например: wget -O - http://dl.pult.online/ru/gateway_linux_x64 | bash -s /pult_gateway
3054 от 12.09.2024
- В конфиге map_mbtcp добавлен параметр modbus_allowed_ip
- В drv_mbtcp и drv_mbrtu исправлено некорректное поведение при расчете метрик, когда за период опроса метрики не удалось выполнить ни одного запроса (например, из-за ожидания очереди на медленных линиях)
3052 от 22.08.2024
- Исправлена ошибка с отправкой некорректного пакета при записи значения в регистр функцией 16 в драйверах Modbus TCP и Modbus RTU
3051 от 16.08.2024
3050 от 04.08.2024
- В выражениях добавлена функция status() - возвращает позицию первого аргумента справа, не равного нулю.
- В drv_virt и drv_alarm добавился параметр 'Недостоверно' (drv_expr_unrel), определяющий метод расчета выражений с недостоверными значениями.
3049 от 19.06.2024
- Добавлена поддержка удаленного просмотра логов шлюза в интерфейсе сервера
3048 от 10.06.2024
- Добавлена возможность получения значений из произвольного элемента массива при парсинге JSON-данных в драйверах drv_cmd, drv_http и drv_mqtt
- Параметр list в драйверах drv_cmd, drv_http и drv_mqtt теперь допускает использование в ключе символов подстановки ? и *.
- Добавлен драйвер для работы с веб-камерами (пока только протокол MJPEG)
- drv_cam оптимизирован на получение видеоданных только при наличии подписки на переменную
- В drv_cam добавлен параметр интервал
- В drv_cam добавлен обработчик ошибок
- В драйвере MQTT исправлена ошибка, приводившая к невозможности записи значений в топик
- Устранены препятствия для установки сервера и шлюза на одно устройство (установка в разные папки, supervisor переведен на unix-сокет)
- В драйверах drv_mqtt, drv_cmd и drv_http добавлена возможность подстановки метки времени при записи значения (%time%)
- В драйверах drv_mqtt, drv_cmd и drv_http добавлена возможность округления записываемого значения (поле wrrnd 0-24)
- Исправлена ошибка с обновлением групповых переменных (управляемые переменные не обновлялись при отсутствии подписки на управляющую переменную)
- Исправлена проблема с регистрозависимыми HTTP-заголовками
- Исправлена ошибка с использованием команды записи в drv_mbtcp и drv_mbrtu (команда 16 применялась только к форматам с двойным регистром, теперь - ко всем запросам)
3040 от 25.01.2024
- Исправлена ошибка в drv_virt, приводившая к игнорированию переменной-счетчиком статических выражений
- Исправлена ошибка в drv_mbtcp и drv_mbrtu, которая могла приводить к записи в регистр некорректно округленного целочисленного значения
- Исправлена ошибка в drv_mbtcp и drv_mbrtu, которая могла приводить к кратковременной установке METRIC_UP в 1 и METRIC_DOWN в 0 при отсутствии ответов узла
3039 от 18.01.2024
- В drv_alarm добавлен режим ROC (Rate of Change)
- Исправлена ошибка, возникавшая при смене пароля через веб-интерфейс
- Исправлена ошибка в map_mbtcp, приводившая к вылетам сервиса при некорректных modbus-запросах
- Исправлена ошибка в отображении даты и времени
3036 от 04.12.2023
- Исправлена ошибка в drv_mbtcp и drv_mbrtu, которая могла приводить к сбросу установленной битовой переменной при записи второй битовой переменной в один и тот же Holding Register
- В скриптах исправлен ошибка в объекте Time, которая приводила к игнорированию настроек времени по серверу
- В скриптах добавлено свойство uptime в объект Time: Time.uptime - время в секундах с запуска приложения
- В drv_cmd добавлена функция записи значений переменных. При записи значения выполняется команда, заданная в параметре write, в которую подставляется значение переменной. С помощью драйвера командной строки теперь можно реализовать полноценную работу с GPIO устройства (чтение и запись значений в регистры GPIO).
- В drv_http добавлена функция записи значений переменных. При записи значения выполняется запрос на url, заданный в параметре write_url, в который подставляется значение переменной. Также подстановка значения выполняется в заголовки (write_headers) и тело запроса (write_post) если данные параметры определены.
3032 от 20.11.2023
- Исправлено отсутствие drv_http в некоторых дистрибутивах
3031 от 19.11.2023
- В сервисах drv_virt и drv_alarm исправлена ошибка, которая в случае некорректного завершения работы устройства могла приводить к повреждению файла хранилища значений
- Хранение значений переменных в драйверах, где это предусмотрено (drv_virt, drv_alarm) теперь выполняется через журнал предварительной записи (WAL) и приведено в соответствие с требованиями ACID
- В сервисе drv_virt у переменной добавлено свойство counter (0|1). Свойство counter применимо к переменным с выражениями, если counter=1 переменная прибавляет к своему текущему значению значение выражения
- Исправлена ошибка, приводившая к удалению скриптов после сборки (v3029,v3030)
3030 от 09.11.2023
- В сервисе map_mbtcp исправлена ошибка, приводившая к игнорированию записи в битовые переменные через HR-регистр
3029 от 09.11.2023
- Добавлен drv_http - драйвер позволяет получать числовые значения из исходящих и входящих http-запросов (JSON, текст, HTTP-заголовки, HTTP Status Code)
- Исправлена ошибка сохранения поля payload у переменных на ARM
- Исправлена ошибка, приводившая в некоторых случаях к вылету drv_virt при работе с переменными типа ping
- Исправлена некорректная индикация процесса перезагрузки
- Исправлена ошибка, приводившая в некоторых случаях к некорректному вычислению CRC на ARM
- Исправлена ошибка в сервисе map_mbtcp на 32-битных архитектурах (запись значений переменных в чужие modbus-регистры)
- В drv_virt добавлена возможность записи в переменные, которые представлены простыми выражениями (выражения состоящие из имени переменной, напр: $var1)
- В drv_virt и drv_alarm в выражениях добавлены функции:
- hi16(a) - верхний байт 16-битного числа
- lo16(a) - нижний байт 16-битного числа
- hi32(a) - верхнее 16-битное слово 32-битного числа
- lo32(a) - нижнее 16-битное слово 32-битного числа
- float(a,b,c,d) - генерация числа в формате Float IEEE-754 из 4 байт
- double(a,b,c,d,e,f,g,h) - генерация числа в формате Float IEEE-754 из 8 байт
- В скриптах добавлена функция reboot() - вызов перезагрузки устройства
- В скриптах добавлена возможность указания нескольких переменных в качестве триггера
- В сервисе connect добавлен параметр server_reboot_after_timeout - интервал отсутствия связи с сервером, после которого выполняется перезагрузка устройства
- В дистрибутиве для Teleofis RTU1068 добавлено отключение консольного вывода в com-порт
- В drv_mbtcp и drv_mbrtu:
- исправлена некорректная работа очереди записывающих запросов, приводившая в случаях нестабильной связи с узлом к утечке памяти, а также к нарушению порядка выполнения запросов
- исправлена некорректная обработка закрытых соединений, в результате которой в переменные могли попадать некорректные значения
- вывод лога сделан более информативным (уровни log_mb и log_app)
- добавлен параметр переменных ignore_errors
- добавлена произвольная группировка регистров по GroupID
- добавлены метрики для оценки общей работы драйвера:
- total_requests - общее количество запросов за период опроса
- total_errors - общее количество ошибок за период опроса
- total_vars - общее количество обработанных переменных за период опроса
- total_registers - общее количество обработанных регистров за период опроса
- total_quality - общее качество за период опроса (0 - все ошибки, 1 - без ошибок)
- total_art - общее среднее время ответа за период опроса
- total_rps - общее количество запросов в секунду за период опроса
- total_eps - общее количество ошибок в секунду за период опроса
- total_varps - общее количество обрабатываемых переменных в секунду за период опроса
- total_regps - общее количество обрабатываемых регистров в секунду за период опроса
- total_queue - общее количество запросов, ожидающих в очереди за период опроса (0 - очередь пуста, все запросы выполняются вовремя)
3022 от 07.10.2023
- Исправлена ошибка запуска drv_gpsd на некоторых платформах
3021 от 06.10.2023
- Дистрибутив оптимизирован по размеру (уменьшен в 1.5 раза) и теперь занимает менее 50МБ в распакованном виде
- Добавлен дистрибутив для устройств Teleofis LT40/LT50/LT51
3020 от 03.10.2023
- Добавлены математические функции в выражениях drv_virt и drv_alarm:
- bit(X,Y) - возвращает 1 если в X установлен бит Y
- bool(X) - возвращает 0 если X==0, иначе 1
- round(X) - округляет X до целого
- round2(X,Y) - округляет X до Y знаков после запятой
- Добавлен драйвер GPSd (drv_gpsd, получение GPS-координат и других сопутствующих данных (скорость, курс и тп.) на устройствах с GPS-приемником через системный сервис GPSd)
3019 от 13.09.2023
- Исправлена ошибка, приводившая к получению битых пакетов в драйвере Modbus RTU (drv_mbrtu) на некоторых устройствах
- Исправлена некорректная расшифровка ошибок в web-интерфейсе
3017 от 08.09.2023
- Добавлена функция каскадного подключения шлюзов (см. шаблон remote_gateway.json)
- Исправлена ошибка в сервисе ядра, которая приводила к потере данных при обмене с сервисом скриптов
3016 от 06.09.2023
- Добавлена функция буферизации данных при разрыве связи с сервером
- Исправлена ошибка в драйвере аварий, которая приводила к потере связи с сервисом ядра
3013 от 23.08.2023
Исправлены незначительные ошибки
3012 от 22.08.2023
- Добавлен мастер установки, позволяющий задать параметры подключения к серверу без входа в web-интерфейс.
- Добавлен туннель-клиент для удаленного доступа к шлюзу через туннель-консоль
3011 от 21.08.2023
- Переименованы параметры:
- retries_count -> retry_count
- retries_interval -> retry_interval
3010 от 15.08.2023
- Изменен формат параметров переменной threstime, reset_time и retries_interval с секунд на миллисекунды
- Параметр переменной reset_time переименован в reset_interval
3009 от 14.08.2023
- Добавлена возможность выполнения повторов записи значения переменной до успеха (параметры переменной retries_count и retries_interval)
- Добавлена возможность выполнения групповой записи значений по изменению значения управляющей переменной (параметры переменной group_vars, group_inv и group_ignore)
- group_vars - имена прямых управляемых переменных со знаком $, через запятую
- group_inv - имена инвертируемых управляемых переменных со знаком $, через запятую
- group_ignore - игнорируемое значение (при переходе на которое не происходит изменение управляемых переменных)
- Например:
{
"name":"control_var",
"group_vars":"$var1_on,$var2_on,$var3_on",
"group_inv":"$var1_off,$var2_off,$var3_off",
"reset_time":1,
"reset_value":-1,
"group_ignore":-1,
"driver":{"name":"drv_virt"}
},
- Исправлена ошибка, приводившая к замедлению работы редактора скриптов
3008 от 09.08.2023
- Для задач с управлением по фронту сигнала, добавлена возможность автоматического сброса переменной (параметры переменной reset_time и reset_value); если reset_time задан, переменная будет автоматически сбрасываться на reset_value через reset_time (сек)
- Добавлена возможность использовать в выражениях для drv_virt и drv_alarm значение и время изменения переменной: $var__value (всегда последнее значение переменной, в отличие от $var не зависит от наличия ошибки) и $var__time (время изменения)
- Исправлена ошибка пинга для определения статуса соединения в drv_mqtt, что могло приводить к постоянным переподключениям к брокеру
- Исправлена ошибка опроса в drv_mbtpc при разрыве связи узлом
- Исправлена ошибка некорректной группировки > 255 регистров в drv_mbtpc и drv_mbrtu
3007 от 24.07.2023
- Добавлен сервис "connect" для подключения к серверу
- В драйвере виртуальных переменных добавлен параметр "количество попыток" (retries) для пинга
3005 от 16.06.2023
- Добавлен драйвер Modbus RTU (drv_mbrtu)
3004 от 18.05.2023
- Исправлена ошибка парсера выражений в драйвере виртуальных переменных (drv_virt)
- Исправлена ошибка парсера выражений в драйвере аварийных переменных (drv_alarm)
3003 от 12.05.2023
- Добавлен драйвер OPC UA (drv_opcua)
3002 от 08.05.2023
- Добавлена возможность проверки сертификата брокера в MQTT-драйвере (поле checkcert в свойствах MQTT-узла)
- Добавлена поддержка SSL в веб-интерфейсе шлюза (параметр ssl_enabled в настройках сервиса gateway_setup)
3001 от 06.04.2023
- Стартовая альфа-версия шлюза (компоненты будут обновляться и добавляться)
- Дистрибутив предназначен для расширения возможностей текущей версии системы (V2)
- Комплектация:
- драйвер Modbus-TCP, drv_mbtcp
- драйвер MQTT, drv_mqtt (только чтение)
- драйвер команд командной строки, drv_cmd (только чтение)
- драйвер аварийных переменных, drv_alarm
- драйвер виртуальных переменных, drv_virt
- modbus-карта, map_mbtcp
- канал уведомлений через Telegram, chnl_telegram
- скрипты, scripts
- просмотрщик логов, log_viewer
- сборщик, builder
- ядро, core