Wiki source code of Примеры заведения датчиков
Version 20.1 by Андрей Калиновский on 2022/10/18 10:49
Hide last authors
author | version | line-number | content |
---|---|---|---|
![]() |
16.1 | 1 | == **Простые датчики** == |
![]() |
15.1 | 2 | |
![]() |
16.1 | 3 | == == |
4 | |||
![]() |
15.1 | 5 | **Зажигание** по дискретному входу |
6 | |||
7 | [[image:image-20220519165301-1.png]] | ||
8 | |||
9 | |||
10 | |||
11 | **Зажигание** по аналоговому входу (датчик сработает при напряжении более > 6000 мВ) | ||
12 | |||
13 | [[image:image-20220519165301-2.png]] | ||
14 | |||
15 | |||
16 | **Топливораздача** со счетного импульсного входа | ||
17 | |||
18 | [[image:image-20220519165301-3.png]] | ||
19 | |||
20 | В зависимости от алгоритма подсчета импульсов терминалом выбирается тип тарировки «Накопитель» или «Разница от пред.». | ||
21 | |||
22 | Аналогичным образом создаются датчики проточных расходомеров топлива - в этом случае тип датчика следует выбрать «Расход топлива». | ||
23 | |||
24 | |||
25 | |||
26 | **Уровень зерна** полученный по интерфейсу RS485 | ||
27 | |||
28 | [[image:image-20220519165301-4.png]] | ||
29 | |||
30 | |||
31 | |||
32 | **Уровень топлива** полученный по интерфейсу RS485 | ||
33 | |||
34 | [[image:image-20220519165301-5.png]] | ||
35 | |||
36 | Т.к. значения меньше первой и больше или равной последней строке считаются невалидными и игнорируются, рекомендуется в последней строке таблицы добавлять входное значение выше максимально возможного. Например 1024 или 4096 для датчиков которые максимально передают уровень топлива в диапазонах 0-1023 или 0-4095. Выходное значение можно рассчитать линейно. | ||
37 | |||
38 | |||
39 | **Температура прицепа **полученная по по интерфейсу 1-Wire | ||
40 | |||
41 | [[image:image-20220519165301-6.png]] | ||
42 | |||
43 | |||
![]() |
16.1 | 44 | == **Виртуальные** == |
![]() |
15.1 | 45 | |
![]() |
19.1 | 46 | {{video url="https://www.youtube.com/watch?v=T3alpKIQ4cE" width="50%"/}} |
![]() |
16.1 | 47 | |
![]() |
15.1 | 48 | [[**Датчик зажигания **по бортовому напряжению>>doc:Панель управления.Раздел "Объекты".Настройка зажигания по напряжению.WebHome]] |
49 | |||
50 | |||
51 | **Подавление сигнала GNSS** полученное от терминала УМКа3хх | ||
52 | |||
53 | [[image:image-20220519165301-7.png]] | ||
54 | |||
55 | |||
56 | Для терминалов УМКа3хх поле STATUS отображается в десятичном виде на входе *А(100), подавление сигнала GNSS меняет девятый бит. В датчике задаем выражение getbit(adc100,9) | ||
![]() |
18.1 | 57 | |
![]() |
15.1 | 58 | |
![]() |
17.1 | 59 | {{video url="https://youtu.be/8i1A0xIBBpc" width="50%"/}} |
![]() |
15.1 | 60 | |
![]() |
17.1 | 61 | |
![]() |
19.1 | 62 | |
![]() |
15.1 | 63 | **Уровень топлива **с агрегирующей функцией суммирования или определения среднего значения. |
64 | |||
65 | [[image:image-20220519165301-8.png]] | ||
66 | |||
67 | |||
68 | [[image:image-20220519165301-9.png]] | ||
69 | |||
![]() |
18.1 | 70 | Агрегирующая функция «Сумма» применяется **при установке в каждый бак по одному датчику уровня топлива**. |
![]() |
15.1 | 71 | |
![]() |
18.1 | 72 | Агрегирующая функция «Среднее» применяется **при установке в один бак нескольких датчиков уровня топлива**. |
![]() |
15.1 | 73 | |
![]() |
18.1 | 74 | {{video url="https://youtu.be/hLFIcktZ9EM" width="50%"/}} |
![]() |
15.1 | 75 | |
76 | **Уровень топлива **с валидацией по зажиганию | ||
77 | |||
78 | При использовании штатных датчиков топлива с инвертированной тарировочной таблицей возникает эффект когда при отключении зажигания напряжение с датчика падает в 0, что детектируется как полный бак. Для фильтрации можно использовать валидацию по датчику зажигания. | ||
79 | |||
80 | |||
81 | Для этого создаем физические датчики зажигания и уровня топлива с указанием псевдонимов ign и fuel | ||
82 | |||
83 | [[image:image-20220519165301-10.png]] | ||
84 | |||
85 | [[image:image-20220519165301-11.png]] | ||
86 | |||
87 | Затем создаем виртуальный датчик уровня топлива с выражением **//if(ign, fuel, 0)//** - если включено зажигание то передаем топливо как есть, в противном случае передаем вместо него 0. Заполняем тарировочную таблицу 2-мя сточками - 0 - 0 и максимальный_объем_бака - максимальный_объем_бака, что будет отсекать 0 полученный из условия формулы. В результате система будет считать невалидным уровень топлива полученный при отключенном датчике зажигания. | ||
88 | |||
89 | [[image:image-20220519165301-12.png]] | ||
90 | |||
91 | |||
92 | |||
93 | **Уровень топлива **по датчику с изменившимся номером входа. | ||
94 | |||
95 | Для этого создаем физические датчики с типом «Произвольный», тарировочными таблицами, старым и новым номерами входов и указанием псевдонимов fuel_old и fuel_new. | ||
96 | |||
![]() |
16.1 | 97 | [[image:image-20220519165301-13.png]] |
98 | Затем создаем виртуальный датчик уровня топлива с выражением **//if(time > cdate('2021-12-22 00:00:00', 'yyyy-MM-dd HH:mm:ss'), fuel_new, fuel_old)//** - после 2021-12-22 00:00:00 (время по UTC) топливо отображается с нового ДУТ, а до этого времени включительно со старого ДУТ. | ||
99 | |||
![]() |
15.1 | 100 | |
101 | [[image:image-20220519165301-14.png]] | ||
![]() |
20.1 | 102 | |
103 | //Пример настройки аналогового датчика в статье [["Настройка аналогового ДУТ" >>https://wiki.glonasssoft.ru/bin/view/%D0%9F%D0%B0%D0%BD%D0%B5%D0%BB%D1%8C%20%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F/%D0%A0%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%20%22%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D1%8B%22/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0%20%D0%B0%D0%BD%D0%B0%D0%BB%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE%20%D0%94%D0%A3%D0%A2/]]// |