Произвольный логический датчик показывает состояние «включено/выключено», которое вычисляется по произвольному выражению из данных телеметрии. Инженер настраивает его, когда состояние механизма определяется формулой, и задает пороги и собственные названия включенного и выключенного состояний.
Форма произвольного логического датчика: флажки сверху, ниже имя, выражение параметра и пороги значений.
Датчик добавляется в карточке объекта мониторинга (вкладка Объекты → «Дополнительное оборудование» → «Добавить новое оборудование»): после выбора типа открывается показанная выше форма.
Произвольный логический датчик позволяет построить собственный бинарный датчик «включено/выключено» без изменения кода платформы: пользователь задает формулу (выражение) над сырыми данными телеметрии, а платформа приводит результат к состоянию по порогу. Дополнительно задаются собственные названия включенного и выключенного состояний.
Датчик порождает события включения с обработкой разрывов связи и фильтром минимального времени сработки. В текущем состоянии объекта отображается заданная пользователем подпись состояния, а не логическое значение. Датчик работает и на стационарном объекте — события не зависят от скорости и зажигания (раздел «Датчики на стационарном объекте»).
¶ Где видны данные произвольного логического датчика
Отчет Трассировка датчиков — у каждого произвольного датчика своя колонка с названием состояния из настроек датчика.
Состояние произвольного логического датчика считается в таком порядке:
сначала, если задано выражение валидации и оно вернуло «ложь», значение считается неопределенным;
затем основное выражение вычисляется анализатором выражений платформы — если результат пустой, значения нет; если результат не число, состояние «выключено»;
иначе «включено» = целая часть результата не ниже порога перехода состояния.
При включенной инверсии итог инвертируется. Фильтр минимального времени сработки: остаются только пары включения и выключения длительностью не меньше порога.
Пороги допустимых значений у произвольного логического датчика задают, какие состояния считаются допустимыми для уведомления «Неприемлемые показания произвольных датчиков» (см. Уведомления о работе техники):
Уведомление срабатывает, когда датчик находится в недопустимом состоянии не меньше значения поля «Минимальная длительность» в условии уведомления; на один такой эпизод приходит одно уведомление. Полем «Маска датчиков» уведомление ограничивают датчиками с подходящим именем. Чтобы уведомление приходило только на включение, задайте «Нижний порог допустимых значений устройства» = 0, а только на выключение — «Верхний порог допустимых значений устройства» = 1. Длительность недопустимого состояния считается по времени сообщений датчика, поэтому для датчика, который передает данные редко, «Минимальную длительность» задавайте с учетом интервала между сообщениями датчика.
Форма произвольного логического датчика в карточке объекта содержит поля:
Последнее валидное значение — флажок; при невычислимом текущем значении в треке и в карточке объекта берется последнее корректное значение. У нового датчика флажок включен.
Игнорирование показаний дополнительного оборудования — флажок зарезервирован и пока недоступен.
Инверсия итогового значения — флажок; инвертирует трактовку сигнала.
Отсутствие значения как ноль — флажок; если во входной телеметрии нет значения, платформа подставляет 0 и дальше применяет порог и инверсию. Ошибка выражения валидации нулем не подменяется — значения нет даже при включенном флажке. При создании датчика флажок выключен.
tracker_id, а также interval_meters и interval_seconds — расстояние и время от предыдущей точки;
поля самой телеметрии; префикс «#» берет значение из предыдущей телеметрии.
В выражениях десятичный разделитель — точка: целая и дробная части числа разделяются точкой (value*0.001), а запятая разделяет только параметры функций (round(value,2)). Полный синтаксис — Синтаксис выражений.
Особенности формы и расчета при разрыве связи и нулевых значениях:
Источник данных задает произвольное выражение: оно заменяет переключатель «Датчик»/«Атрибут» и выбор канала.
При включенном флажке «Последнее валидное значение» и невычислимом текущем значении в треке и в карточке объекта подставляется предыдущее валидное значение.
При разрыве связи открытое событие закрывается по последней рабочей телеметрии и при необходимости открывается заново после разрыва.
С включенным флажком «Отсутствие значения как ноль» и порогом перехода состояния 0 подставленный ноль дает состояние «включено». Чтобы пропуск значения означал «выключено», задайте порог больше нуля.