Wiki source code of Примеры заведения датчиков
Version 15.1 by Андрей Калиновский on 2022/05/19 16:56
Hide last authors
author | version | line-number | content |
---|---|---|---|
![]() |
15.1 | 1 | == **Простые датчики** |
2 | == | ||
3 | |||
4 | **Зажигание** по дискретному входу | ||
5 | |||
6 | [[image:image-20220519165301-1.png]] | ||
7 | |||
8 | |||
9 | |||
10 | **Зажигание** по аналоговому входу (датчик сработает при напряжении более > 6000 мВ) | ||
11 | |||
12 | [[image:image-20220519165301-2.png]] | ||
13 | |||
14 | |||
15 | **Топливораздача** со счетного импульсного входа | ||
16 | |||
17 | [[image:image-20220519165301-3.png]] | ||
18 | |||
19 | В зависимости от алгоритма подсчета импульсов терминалом выбирается тип тарировки «Накопитель» или «Разница от пред.». | ||
20 | |||
21 | Аналогичным образом создаются датчики проточных расходомеров топлива - в этом случае тип датчика следует выбрать «Расход топлива». | ||
22 | |||
23 | |||
24 | |||
25 | **Уровень зерна** полученный по интерфейсу RS485 | ||
26 | |||
27 | [[image:image-20220519165301-4.png]] | ||
28 | |||
29 | |||
30 | |||
31 | **Уровень топлива** полученный по интерфейсу RS485 | ||
32 | |||
33 | [[image:image-20220519165301-5.png]] | ||
34 | |||
35 | Т.к. значения меньше первой и больше или равной последней строке считаются невалидными и игнорируются, рекомендуется в последней строке таблицы добавлять входное значение выше максимально возможного. Например 1024 или 4096 для датчиков которые максимально передают уровень топлива в диапазонах 0-1023 или 0-4095. Выходное значение можно рассчитать линейно. | ||
36 | |||
37 | |||
38 | **Температура прицепа **полученная по по интерфейсу 1-Wire | ||
39 | |||
40 | [[image:image-20220519165301-6.png]] | ||
41 | |||
42 | |||
43 | == **Виртуальные** | ||
44 | == | ||
45 | |||
46 | [[**Датчик зажигания **по бортовому напряжению>>doc:Панель управления.Раздел "Объекты".Настройка зажигания по напряжению.WebHome]] | ||
47 | |||
48 | |||
49 | **Подавление сигнала GNSS** полученное от терминала УМКа3хх | ||
50 | |||
51 | [[image:image-20220519165301-7.png]] | ||
52 | |||
53 | |||
54 | Для терминалов УМКа3хх поле STATUS отображается в десятичном виде на входе *А(100), подавление сигнала GNSS меняет девятый бит. В датчике задаем выражение getbit(adc100,9) | ||
55 | |||
56 | |||
57 | **Уровень топлива **с агрегирующей функцией суммирования или определения среднего значения. | ||
58 | |||
59 | [[image:image-20220519165301-8.png]] | ||
60 | |||
61 | |||
62 | [[image:image-20220519165301-9.png]] | ||
63 | |||
64 | Арегирующая функция «Сумма» применяется **при установке в каждый бак по одному датчику уровня топлива**. | ||
65 | |||
66 | Арегирующая функция «Среднее» применяется **при установке в один бак нескольких датчиков уровня топлива**. | ||
67 | |||
68 | |||
69 | **Уровень топлива **с валидацией по зажиганию | ||
70 | |||
71 | При использовании штатных датчиков топлива с инвертированной тарировочной таблицей возникает эффект когда при отключении зажигания напряжение с датчика падает в 0, что детектируется как полный бак. Для фильтрации можно использовать валидацию по датчику зажигания. | ||
72 | |||
73 | |||
74 | Для этого создаем физические датчики зажигания и уровня топлива с указанием псевдонимов ign и fuel | ||
75 | |||
76 | [[image:image-20220519165301-10.png]] | ||
77 | |||
78 | [[image:image-20220519165301-11.png]] | ||
79 | |||
80 | Затем создаем виртуальный датчик уровня топлива с выражением **//if(ign, fuel, 0)//** - если включено зажигание то передаем топливо как есть, в противном случае передаем вместо него 0. Заполняем тарировочную таблицу 2-мя сточками - 0 - 0 и максимальный_объем_бака - максимальный_объем_бака, что будет отсекать 0 полученный из условия формулы. В результате система будет считать невалидным уровень топлива полученный при отключенном датчике зажигания. | ||
81 | |||
82 | [[image:image-20220519165301-12.png]] | ||
83 | |||
84 | |||
85 | |||
86 | **Уровень топлива **по датчику с изменившимся номером входа. | ||
87 | |||
88 | Для этого создаем физические датчики с типом «Произвольный», тарировочными таблицами, старым и новым номерами входов и указанием псевдонимов fuel_old и fuel_new. | ||
89 | |||
90 | [[image:image-20220519165301-13.png]] Затем создаем виртуальный датчик уровня топлива с выражением **//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) топливо отображается с нового ДУТ, а до этого времени включительно со старого ДУТ. | ||
91 | |||
92 | [[image:image-20220519165301-14.png]] | ||
93 | |||
94 |