Wiki source code of Настройка аналогового ДУТ
                  Last modified by Андрей Калиновский on 2025/10/03 10:32
              
      Show last authors
| author | version | line-number | content | 
|---|---|---|---|
| 1 | (% class="wikigeneratedid" id="H41D43044144244043E43943A43843443044244743843A43044344043E43243D44F44243E43F43B43843243043443B44F43E43144A43543A44243044143043D43043B43E43343E43244B43C43443044244743843A43E43C" %) | ||
| 2 | ((( | ||
| 3 | Особенность аналоговых датчиков состоит в том, что при отключении и включении зажигания по параметру, с которого снимаются показания, несколько секунд поступают сообщения с ложными данными, пока не будет достигнута нужная величина. Необходимо отсечь период с ложными данными. | ||
| 4 | ))) | ||
| 5 | |||
| 6 | В случае, если данные с аналогового датчика поступают по параметру **in*** или **adc***, где * номер входа, то можно использовать их напрямую. Иначе необходимо предварительно создать датчик с типом **Простой**, типом датчика **Произвольный**, типом входа **Аналоговый**. Указываем номер входа, по которому поступают данные. Также указываем псевдоним, в нашем случае **fuel**. | ||
| 7 | |||
| 8 | |||
| 9 | [[image:image-20250401133211-1.png]] | ||
| 10 | |||
| 11 | При создании датчика уровня топлива необходимо установить его тип** **как **Виртуальный**, тип датчика как **Уровень топлива**, а функцию как **Выражение**, что позволит нам ввести **Формулу.** Тип тарировки указать как **Таблица**. | ||
| 12 | |||
| 13 | [[image:image-20220808104445-1.png]] | ||
| 14 | |||
| 15 | В формуле создаётся функция, которая проверяет наличие двух условий: включенного зажигания и скорости, выше заданной. Функция позволит отсечь период, когда в аналоговом датчике поступали ложные значения. [[Справочник по функциям>>doc:Панель управления.Основные справочники.Справочник функций и параметров виртуального датчика.WebHome]]. | ||
| 16 | |||
| 17 | //if(ign and ((prev(speed)+speed)/2)>14,adc2,0)// | ||
| 18 | |||
| 19 | здесь **ign** - псевдоним датчика зажигания, **//((prev(speed)+speed)/2)>14// - **проверка условия, что средняя скорость объекта в между двумя сообщениями больше 14 км/ч. Средняя скорость между сообщениями вычисляется для уменьшения влияния колебаний скорости, появляющаяся из-за экранирования, во время стоянки. **adc2 -** это параметр, с которого считываются значения датчика уровня топлива, ранее мы создавали произвольный датчик с псевдонимом **fuel**, который можно использовать в данной формуле вместо **adc2**. В данной формуле можно изменять скорость, чем выше, тем сильнее транспорту нужно разогнаться, чтобы данные не были отброшены. | ||
| 20 | |||
| 21 | Так же включаем **Медианную фильтрацию**, которая позволит нам сгладить график и получить меньше скачков топлива. Можно, как на примере, начать со значения 20, и изменять в зависимости от того насколько часто появляются ложные скачи топлива. | ||
| 22 | |||
| 23 | (% class="box infomessage" %) | ||
| 24 | ((( | ||
| 25 | **До включения медианной фильтрации: **[[image:image-20230711134009-5.png||height="299" width="637"]] | ||
| 26 | |||
| 27 | **После включения медианной фильтрации:**[[image:image-20230711134025-6.png||height="285" width="647"]] | ||
| 28 | ))) | ||
| 29 | |||
| 30 | === **Настройка при двух аналоговых ДУТах ** === | ||
| 31 | |||
| 32 | Для настройки двух ДУТов на одном объекте необходимо на датчиках уровня топлива выставить тип "Произвольный" и дать каждому датчику псевдонимы Fuel1 и Fuel2 | ||
| 33 | |||
| 34 | [[image:image-20251003102519-1.png]] | ||
| 35 | |||
| 36 | После этого создать виртуальный датчик уровня топлива. В качестве функции использовать "Выражение". В полер "Формула" поставить | ||
| 37 | **if(ign and ((prev(speed)+speed)/2)>14,fuel1+fuel2,0)** | ||
| 38 | |||
| 39 | [[image:image-20251003102602-2.png]] | ||
| 40 | |||
| 41 | |||
| 42 | |||
| 43 | После настройки датчика **Уровень топлива** необходимо выполнить настройку шаблонов **Заправка** и ** Слив**. Они расположены во вкладке **Шаблоны**. | ||
| 44 | |||
| 45 | В шаблонах **Заправка **и **Слив **настройки одинаковы. Необходимо изменить условие **Значение параметра**, обведено голубым, уменьшить до 1 с. Таким образом датчик будет чувствительнее относиться колебаниям. Если какие-либо заправки не отображаются, установите значение 0 сек или удалите данное условие. | ||
| 46 | |||
| 47 | [[image:image-20220525164243-7.png]] | ||
| 48 | |||
| 49 | На параметр, обведенный красным, кликаем два раза и открывается окно **Условия определения события**. Здесь удаляем событие **Остановка (150м)**. Это изменение позволит отслеживать заправки и сливы случае, когда неактивно событие **Остановка (150м)**. | ||
| 50 | |||
| 51 | [[image:image-20220525164243-8.png]] | ||
| 52 | |||
| 53 | |||
| 54 | (% class="box infomessage" %) | ||
| 55 | ((( | ||
| 56 | **Работа датчика без использования формулы: **[[image:image-20230711135209-7.png]] | ||
| 57 | ))) | ||
| 58 | |||
| 59 | (% class="box infomessage" %) | ||
| 60 | ((( | ||
| 61 | **Работа датчика с использованием форумы:**[[image:image-20230711135459-8.png]] | ||
| 62 | ))) | 


 Copy
 Copy Export
 Export Print Preview
 Print Preview Source
 Source Children
 Children Content
 Content Attachments (25)
 Attachments (25) History
 History Information
 Information Likes
 Likes

