Обработчики датчиков

Обработчики — это инструменты, которые помогают преобразовывать и обрабатывать сырые данные датчика в понятные значения. Вместо того чтобы каждый раз прописывать сложные формулы для каждого датчика, можно создать один обработчик и использовать его везде, где нужно.
Допустим, у вас есть датчик напряжения бортовой сети автомобиля, который передаёт значения в милливольтах.
В сырых точках найдём значение датчика: Vsource = 14592
Чтобы увидеть привычные показания датчика в вольтах, значение нужно разделить на 1000.
Мы можем создать обработчик, который потом будем использовать в других датчиках, где нужно будет делить значение датчика на 1000.

Как создать обработчик

  • В окне датчиков найдите вкладку «Обработчики»
  • Во вкладке нажмите «Добавить»
3. Укажите название для обработчика. Это название будете использоваться позже в поле «Формула» в окне настройки датчика. Поле должно содержать только латинские буквы, цифры и знаки
4. В поле «Формула» напишите формулу, которая будет использовать этот обработчик. Если в формуле вы указываете поле с данными датчика, которое передаёт датчик, то используйте символы %% вокруг названия поля, например, %fuel_1% или %value%
5. Добавьте описание обработчика, чтобы знать, для чего он используется
6. Нажмите «Сохранить»

Как настроить тарировочную таблицу

В обработчике можно настроить тарировочную таблицу, которая будет учитываться обработчиком. Это таблица помогает перевести технические показания датчика в понятные значения.
Чтобы настроить тарировочную таблицу:
  • Нажмите на иконку 
  • В окне тарировочной таблицы для обработчика нажмите «Добавить»
3. Введите реальное значение и значение, которое показывает датчик
4. Нажмите «Сохранить»
5. Повторите шаги для всех необходимых показаний
6. Нажмите «Сохранить» в окне тарировочной таблицы
 В тарировочной таблице галочками выберите функции «Выбор ближайшего значения» и «Приоритет калибровки».
  • Функция «Выбор ближайшего значения» — метод округления до ближайшей калибровочной точки. Когда прибор получает значение, которое точно не совпадает с записанными точками, ему нужно рассчитать результат. Если включена опция «Выбор ближайшего значения», прибор возьмёт значение из ближайшей точки тарировочной таблицы. Если выключена — будет рассчитывать промежуточное значение с учётом соседних точек.
  • Функция «Приоритет калибровки» определяет порядок обработки данных при калибровке датчика. Приоритет отдаётся тарирововочным данным перед измерительными, то есть система всегда начинает с проверки тарировочной таблицы, используя её как первичный эталон. Система сначала проверяет, есть ли значение в тарировочной таблице. Если точное значение найдено — использует его. Только если точного совпадения нет — применяет стандартный алгоритм расчёта.
— воспользуйтесь этими кнопками, чтобы  загрузить готовую тарировочную таблицу из файла или сохранить её на компьютер.
Чтобы удалить значение в таблице, нажмите  .

Как применить обработчик

1. Откройте датчик, где нужно применить обработчик
2. В поле «Формула» напишите название обработчика. Сначала укажите знак «=», потом название самого обработчика и в скобках и символах %% поле, которое предаёт датчик. Например, =divide(%fuel_1%)
3. Проверьте работу обработчика через кнопку «Тест»
4. Нажмите «Сохранить» в окне настройки датчика, чтобы обработчик применился к этому датчику
 

Рассмотрим примеры применения обработчиков

Пример 1. Как преобразовать данные датчика с помощью обработчика

Создадим обработчик:
  • Напишем название для обработчика — divide
2. В поле «Формула» напишем %value%/1000. 
value — это значение, присылаемое датчиком, которое нужно разделить на 1000.
3.  Добавим описание обработчика — «Деление на 1000»
4.  Сохраняем обработчик
Применим обработчик:
  • Переходим в окно настройки датчика, в котором нужно применить обработчик.
2. В поле «Формула» указываем знак «=» и название обработчика, в скобках и символах %% указываем значение поля датчика бортовой сети: =divide(%Vsource%)
3. Проверяем работу обработчика через кнопку «Тест»
4. Нажимаем «Сохранить» в окне настройки датчика
Проверим отображение показаний датчика после применения обработчика
В сырых точках значение датчика бортовой сети: Vsource = 12626
После обработки формулой в подсказке объекта показывается реальное значение датчика — 12,6 В.
В этом примере мы показали, как выполнить простую операцию с помощью обработчика. Но вы можете использовать и более сложные формулы для него, если это необходимо.
Создав обработчик один раз, вы сможете применять его для множества однотипных датчиков, не беспокоясь о возможных ошибках в формулах.

Пример 2. Как получить сумму и среднее из двух датчиков уровня топлива

Допустим, у нас есть два датчика уровня топлива. И нам нужно увидеть их суммарный уровень и средний уровень топлива.
Оба датчика должны отдавать значения в одинаковых единицах и для каждого датчика должна быть настроена своя тарировочная таблица.
Создаём обработчики для каждого датчика:
Обработчик для датчика 1
  • Напишем название для обработчика —  fuel_nav_1
2. В поле «Формула» напишем  %t_53lls1% —  скопируем имя поля из карточки датчика топлива 1
3.  Сохраним обработчик
Обработчик для датчика 2
  •  Название для обработчика — fuel_nav_2
2. В поле «Формула» напишем  %lls2% —  скопируем имя поля из карточки датчика топлива 2
3.  Сохраним обработчик
Далее создадим суммарный датчик топлива:
  • Укажем название датчика и описание  — Датчик топлива суммарный
2. Выберем тип датчика —  Дискретный
3. В поле укажем поток одного из существующих датчиков (например, t_53lls1) — по нему будут приходить точки и пересчитываться формула
4. В формуле напишем =fuel_nav_1()+fuel_nav_2()
5. Сохраним карточку суммарного датчика топлива
После этого в сырых точках и во всплывающей подсказке объекта (если включили отображение) появится суммарный уровень топлива по двум бакам.
Создадим еще один датчик среднего уровня топлива:
  • Укажем название датчика и описание  — Датчик топлива среднее
    2. Выберем тип датчика —  Дискретный
    4. В поле укажите поток одного из датчиков (например, t_53lls1)
    5. В формуле напишем  =(fuel_nav_1()+fuel_nav_2())/2
    6. Сохраним карточку датчика среднего значение топлива
В сырых точках проверяем значения созданных датчиков.
Обработчики датчиков
1

Значения датчиков

1.
Таким образом, у объекта будут четыре датчика: «Датчик топлива 1», «Датчик топлива 2», «Датчик топлива суммарный» и «Датчик топлива среднее».
 
По этой же логике можно обработать данные по датчикам температуры.