Wiki source code of Примеры заведения датчиков
Last modified by Андрей Калиновский on 2025/08/15 08:02
Hide last authors
author | version | line-number | content |
---|---|---|---|
![]() |
55.1 | 1 | ((( |
![]() |
53.2 | 2 | {{html}} |
![]() |
55.1 | 3 | <iframe width="720" height="405" src="https://rutube.ru/play/embed/647bb2b120bea2a7da88656d1fd84fd6/" frameBorder="0" allow="clipboard-write; autoplay" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe> |
![]() |
53.2 | 4 | {{/html}} |
![]() |
23.1 | 5 | |
![]() |
24.1 | 6 | **Содержание страницы:** |
![]() |
51.1 | 7 | |
![]() |
24.1 | 8 | |
![]() |
23.1 | 9 | {{toc/}} |
10 | |||
![]() |
51.1 | 11 | |
12 | ))) | ||
13 | |||
![]() |
24.1 | 14 | = (% style="color:#000000; font-size:16px" %)**Простые датчики**(%%) = |
![]() |
23.1 | 15 | |
![]() |
96.1 | 16 | == (% style="color:#000000; font-size:16px" %)**Зажигание** простой(%%) == |
![]() |
15.1 | 17 | |
![]() |
96.1 | 18 | [[image:image-20250814131034-1.png]] |
![]() |
15.1 | 19 | |
20 | |||
![]() |
96.1 | 21 | == (% style="color:#000000; font-size:16px" %)**Зажигание** простой (датчик сработает при напряжении более > 6000 мВ)(%%) == |
![]() |
15.1 | 22 | |
![]() |
101.1 | 23 | [[image:image-20250814161515-1.png]] |
![]() |
15.1 | 24 | |
![]() |
96.1 | 25 | == (% style="color:#000000; font-size:16px" %)**Топливораздача** (%%) == |
![]() |
15.1 | 26 | |
![]() |
103.1 | 27 | [[image:image-20250814161621-2.png]] |
![]() |
15.1 | 28 | |
29 | В зависимости от алгоритма подсчета импульсов терминалом выбирается тип тарировки «Накопитель» или «Разница от пред.». | ||
30 | |||
31 | Аналогичным образом создаются датчики проточных расходомеров топлива - в этом случае тип датчика следует выбрать «Расход топлива». | ||
32 | |||
![]() |
96.1 | 33 | == (% style="color:#000000; font-size:16px" %)**Уровень зерна** простой (%%) == |
![]() |
15.1 | 34 | |
![]() |
101.1 | 35 | [[image:image-20250814161827-3.png]] |
![]() |
15.1 | 36 | |
37 | |||
![]() |
96.1 | 38 | == (% style="color:#000000; font-size:16px" %)**Уровень топлива** простой (%%) == |
![]() |
15.1 | 39 | |
![]() |
96.1 | 40 | [[image:image-20250814132429-5.png]] |
41 | |||
![]() |
45.1 | 42 | Значения **меньше, чем указано в первой строке и больше или равные указанному в последней строке считаются невалидными и игнорируются.** Рекомендуется в последней строке таблицы добавлять входное значение выше максимально возможного. Например 1024 или 4096 для датчиков которые максимально передают уровень топлива в диапазонах 0-1023 или 0-4095. Выходное значение можно рассчитать линейно. |
![]() |
15.1 | 43 | |
![]() |
96.1 | 44 | == (% style="color:#000000; font-size:16px" %)**Температура прицепа **(%%) == |
![]() |
15.1 | 45 | |
![]() |
96.1 | 46 | [[image:image-20250814132658-6.png]] |
![]() |
15.1 | 47 | |
![]() |
29.1 | 48 | |
![]() |
96.1 | 49 | |
![]() |
34.2 | 50 | == (% style="color:#000000; font-size:16px" %)**Датчик пробега**(%%) == |
![]() |
29.1 | 51 | |
![]() |
33.1 | 52 | Для того, чтобы создать корректно работающий датчик пробега необходимо выбрать тип датчика **Датчик пробега**, указать тип тарировки **Таблица **и задать тарировку типа **0:0; 9999999:9999999**. Такая тарировка позволит корректно реагировать на те периоды, когда данные с датчика пробега не поступают в систему. |
![]() |
29.1 | 53 | |
![]() |
33.1 | 54 | Датчик настроенный как на примере ниже позволит вам использовать его при расчете значения **Текущий пробег**, из вкладки нормы, а также рассчитывать начальный и конечный пробег. |
![]() |
29.1 | 55 | |
![]() |
96.1 | 56 | [[image:image-20250814132905-7.png]] |
![]() |
32.1 | 57 | |
![]() |
36.1 | 58 | |
![]() |
96.1 | 59 | |
![]() |
52.1 | 60 | (% style="color:#000000; font-size:16px" %)**Датчик моточасов**(%%) |
![]() |
49.1 | 61 | |
62 | |||
63 | Данный тип датчика используется для замещения рассчитанного значения количества моточасов. | ||
64 | |||
65 | Во вкладке "Нормы" при настройке объекта есть строка "Расчет моточасов". Там вы можете выбрать значение из выпадающего списка. | ||
66 | |||
67 | [[image:https://redmine.glonasssoft.ru/attachments/download/18929/screenshot_1_1696932373.png]] | ||
68 | |||
69 | В списке три варианта: по датчику зажигания, по датчику моточасов и по датчику относительных моточасов: | ||
70 | |||
71 | по датчику зажигания: | ||
72 | |||
73 | * Текущие моточасы - расчет по времени работы датчика зажигания | ||
74 | * Моточасы в отчете - расчет по времени работы датчика зажигания | ||
75 | |||
76 | по датчику моточасов: | ||
77 | |||
78 | * Текущие моточасы - т.к. расчет происходит с некоторой периодичностью, то текущие моточасы в нормах рассчитываются как: (значение датчика на конец периода - значение на начало) + текущее значение моточасов. Если при расчете (значение датчика на конец периода - значение на начало) значение получается ниже нуля, то значение будет равно 0. | ||
79 | * Моточасы в отчете - рассчитываются моточасы за период по датчику. Моточасы на холостом ходу определяются как периоды, когда значение датчика моточасов изменялось в периоды события Стоянка. | ||
80 | |||
81 | по датчику относительных моточасов: | ||
82 | |||
83 | * Текущие моточасы - сумма полученных значений с датчика типа "Относительные моточасы". | ||
84 | * Моточасы в отчете - моточасы с учетом коэффициента, зависящего от величины оборотов двигателя. | ||
85 | |||
86 | Датчик с типом Относительные моточасы автоматически не заменяет значения в отчете. В отчете значения моточасов рассчитывать в зависимости от выбранного метода расчета. | ||
87 | |||
88 | Например - если выбран метод расчета по датчику зажигания, а у объекта есть датчики с типом Датчик моточасов и Датчик относительных моточасов, то в отчетах моточасы продолжат рассчитываться по датчику зажигания. | ||
89 | |||
90 | Метод расчета по умолчанию - по датчику зажигания. | ||
91 | В случае, если отсутствует выбранный датчик, то моточасы будут рассчитаны по времени движения. | ||
92 | \\(% style="color:#000000; font-size:16px" %)**Весовой датчик** | ||
93 | |||
![]() |
40.1 | 94 | Для получения данных по отвесам необходимо создать датчик с типом **Весовой терминал**. |
![]() |
15.1 | 95 | |
![]() |
96.1 | 96 | [[image:image-20250814134116-8.png||height="672" width="686"]] |
![]() |
39.1 | 97 | |
98 | |||
![]() |
41.1 | 99 | Рекомендуем также указать тарировку** -1:-1, 99999:99999,** это позволит предупредить случаи появления сообщений без данных, что поможет избежать дублирования отвесов. |
![]() |
39.1 | 100 | |
![]() |
42.1 | 101 | Для того, чтобы получать данные по взвешиваниям необходимо помимо датчика веса иметь rfid-считыватель. По rfid-метке два отвеса могут быть объединены в одно взвешивание, что позволит найти разницу в весе между ними. Для этого объект весовой, помимо датчика с типом **Весовой терминал**, должен иметь датчик с типом **RFID-водителя** и активной опцией** Постоянный сигнал RFID объекта рядом**. |
![]() |
39.1 | 102 | |
103 | |||
![]() |
48.1 | 104 | == (% style="color:#000000; font-size:16px" %)**Датчик бортового напряжения**(%%) == |
![]() |
39.1 | 105 | |
![]() |
47.1 | 106 | Для создания датчика бортового напряжения с целью отображения данных на графике необходимо указать тип датчика **"Произвольный"** и во вкладке "**Доп. настройки" **выбрать на каких графиках отображать данные (на графике объекта/ полезной нагрузки) и** **указать тип отрисовки **"Линия"**: |
107 | |||
108 | |||
![]() |
96.1 | 109 | |
![]() |
42.1 | 110 | = (% style="color:#000000; font-size:16px" %)**Виртуальные**(%%) = |
![]() |
39.1 | 111 | |
![]() |
15.1 | 112 | [[**Датчик зажигания **по бортовому напряжению>>doc:Панель управления.Раздел "Объекты".Настройка зажигания по напряжению.WebHome]] |
![]() |
101.1 | 113 | [[image:image-20250814162013-4.png]] |
![]() |
15.1 | 114 | |
![]() |
103.1 | 115 | == (% style="color:#000000; font-size:16px" %)**Подавление сигнала GNSS** полученное от терминала УМКа3хх(%%) == |
![]() |
26.1 | 116 | |
![]() |
106.1 | 117 | Для терминалов УМКа3хх поле STATUS отображается в десятичном виде в зависимости от протокола в параметре param1 или status, подавление сигнала GNSS - девятый бит. |
118 | Создаем виртуальный датчик с типом Подавление сигнала GNSS с выражением: | ||
119 | **getbit(param1,9**) если терминал настроен на протокол Wialon Combine | ||
120 | **getbit(status,9)** если терминал настроен на протокол Wialon IPS | ||
121 | или универсальное выражение для обоих протоколов - **getbit(coalesce(param1,status),9)** | ||
122 | Тип тарировки выбираем Вкл/выкл. | ||
123 | При желании задаем индикацию состояний датчика как на скриншоте ниже. | ||
![]() |
103.1 | 124 | |
![]() |
106.1 | 125 | [[image:image-20250815080152-1.png]] |
![]() |
15.1 | 126 | |
![]() |
56.1 | 127 | {{html}} |
128 | <iframe width="720" height="405" src="https://rutube.ru/play/embed/27c07e59e69806e2cc8b793e16ffaed2/" frameBorder="0" allow="clipboard-write; autoplay" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe> | ||
129 | {{/html}} | ||
![]() |
15.1 | 130 | |
![]() |
96.1 | 131 | |
![]() |
26.1 | 132 | == (% style="color:#000000; font-size:16px" %)**Уровень топлива **с агрегирующей функцией суммирования или определения среднего значения.(%%) == |
![]() |
17.1 | 133 | |
![]() |
15.1 | 134 | |
![]() |
96.1 | 135 | [[image:image-20250814135510-11.png]] |
![]() |
15.1 | 136 | |
137 | |||
![]() |
18.1 | 138 | Агрегирующая функция «Сумма» применяется **при установке в каждый бак по одному датчику уровня топлива**. |
![]() |
15.1 | 139 | |
![]() |
18.1 | 140 | Агрегирующая функция «Среднее» применяется **при установке в один бак нескольких датчиков уровня топлива**. |
![]() |
15.1 | 141 | |
![]() |
56.1 | 142 | {{html}} |
143 | <iframe width="720" height="405" src="https://rutube.ru/play/embed/a8c1fa58924abb6cb4cf20a16e35ac81/" frameBorder="0" allow="clipboard-write; autoplay" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe> | ||
144 | {{/html}} | ||
![]() |
15.1 | 145 | |
![]() |
96.1 | 146 | |
![]() |
15.1 | 147 | **Уровень топлива **с валидацией по зажиганию |
148 | |||
![]() |
54.1 | 149 | При использовании штатных датчиков топлива с инвертированной тарировочной таблицей возникает эффект когда при отключении зажигания напряжение с датчика падает в 0, что детектируется как полный бак. Для фильтрации можно использовать валидацию по датчику зажигания или по скорости. |
![]() |
15.1 | 150 | |
![]() |
54.1 | 151 | Вложение базового датчика в виртуальный происходит через псевдоним который вам надо задать в базовом датчике. |
![]() |
15.1 | 152 | |
153 | Для этого создаем физические датчики зажигания и уровня топлива с указанием псевдонимов ign и fuel | ||
154 | |||
155 | |||
![]() |
96.1 | 156 | [[image:image-20250814144244-12.png]] |
![]() |
15.1 | 157 | |
![]() |
96.1 | 158 | |
159 | [[image:image-20250814144623-13.png]] | ||
160 | |||
![]() |
54.1 | 161 | Формулы используют ранее заданные псевдонимы датчиков. Для этого создаем виртуальный датчик уровня топлива с выражением **//if(ign, fuel, 0)//** - если включено зажигание то передаем топливо как есть, в противном случае передаем вместо него 0 (в случае с валидацией по скорости следует создать виртуальный датчик уровня топлива с выражением **//if(speed>10, fuel, 0)//** - если скорость более 10км/ч,то передаем топливо как есть, в противном случае передаем вместо него 0. В данной формуле **//speed //**- это параметр возвращающий скорость, список всех параметров приведен в статье [["Справочник функций и параметров виртуального датчика">>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%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5%20%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B8/%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%20%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B9%20%D0%B8%20%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D0%BE%D0%B2%20%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%B4%D0%B0%D1%82%D1%87%D0%B8%D0%BA%D0%B0/]]). Заполняем тарировочную таблицу 2-мя сточками - 0 - 0 и максимальный_объем_бака - максимальный_объем_бака, что будет отсекать 0 полученный из условия формулы. В результате система будет считать невалидным уровень топлива полученный при отключенном датчике зажигания. |
![]() |
15.1 | 162 | |
163 | |||
![]() |
96.1 | 164 | [[image:image-20250814144851-14.png||height="483" width="731"]] |
165 | |||
![]() |
26.1 | 166 | == (% style="color:#000000; font-size:16px" %)**Уровень топлива **по датчику с изменившимся номером входа.(%%) == |
![]() |
15.1 | 167 | |
168 | Для этого создаем физические датчики с типом «Произвольный», тарировочными таблицами, старым и новым номерами входов и указанием псевдонимов fuel_old и fuel_new. | ||
169 | |||
![]() |
16.1 | 170 | [[image:image-20220519165301-13.png]] |
171 | Затем создаем виртуальный датчик уровня топлива с выражением **//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) топливо отображается с нового ДУТ, а до этого времени включительно со старого ДУТ. | ||
![]() |
15.1 | 172 | |
![]() |
96.1 | 173 | [[image:image-20250814145129-15.png]] |
![]() |
20.1 | 174 | |
![]() |
27.1 | 175 | //Пример заведения аналогового датчика в статье [["Настройка аналогового ДУТ" >>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/]]// |
![]() |
60.1 | 176 | |
177 | |||
![]() |
65.1 | 178 | == Применение коэффициента к физическому датчику == |
![]() |
60.1 | 179 | |
180 | Если фактический уровень топлива отличается от отображаемого в системе, и нет возможности выполнить перетарировку бака транспортного средства, пользователь может применить коэффициент ко всему графику тарировки. | ||
181 | |||
182 | Для этого необходимо изменить тип физического датчика на Произвольный и присвоить ему псевдоним, например, Fuel. | ||
![]() |
96.1 | 183 | [[image:image-20250814145240-16.png]] |
![]() |
60.1 | 184 | Затем следует создать виртуальный датчик с типом Уровень топлива и функцией Выражение. |
![]() |
96.1 | 185 | В строке Формула нужно указать псевдоним физического датчика уровня топлива и ввести коэффициент, который будет применяться к значению. [[image:image-20250814145340-17.png]] |
![]() |
70.1 | 186 | |
187 | |||
![]() |
73.1 | 188 | == Объединение двух бензобаков == |
![]() |
70.1 | 189 | |
![]() |
96.1 | 190 | Если нужно отобразить на графике общий объём топлива в двух бензобаках, а так же отобразить на графике общий уровень топлива, то необходимо создать псевдонимы для этих баков, например, Fuel1 и Fuel0, выбрать тип датчика произвольный. |
![]() |
70.1 | 191 | |
![]() |
96.1 | 192 | [[image:image-20250814145423-18.png]] |
![]() |
70.1 | 193 | |
![]() |
76.1 | 194 | Во вкладке Доп.настройки выбрать тип Аналоговый/импульсный и поставить галочку где отображать показатель. |
![]() |
70.1 | 195 | |
![]() |
76.1 | 196 | [[image:image-20250403151127-4.png]] |
197 | |||
198 | Создать виртуальный датчик уровня топлива с функцией выражения. Формула для расчёта: Fuel1+Fuel2 | ||
199 | |||
![]() |
96.1 | 200 | [[image:image-20250814145519-19.png]] |
![]() |
70.1 | 201 | |
![]() |
73.1 | 202 | В шаблонах "Заправка(уровень топлива)" и "Слив (Уровень топлива)" нужно выставить условия для корректировки перемещения топлива в баках в единицах, например 10 ед. |
![]() |
70.1 | 203 | |
204 | [[image:2025-03-28_14-16-38.png||height="343" width="462"]] [[image:2025-03-28_14-16-32.png||height="343" width="470"]] | ||
205 | |||
![]() |
73.1 | 206 | Результатом будет отображаться график на котором будут линии обоих баков и общий уровень топлива. |
![]() |
70.1 | 207 | |
![]() |
73.1 | 208 | [[image:image-20250403150157-2.png||height="250" width="926"]] |