Параметры в виде выражений
Параметр датчика можно указать в виде составного выражения. Благодаря таким параметрам можно создавать самые разные датчики, отвечающие любым потребностям и поставленным задачам. В выражении можно использовать:
- параметры из последнего сообщения (adc1, in1 и т. п.);
- параметры из предыдущего сообщения (перед ними необходимо ставить знак #, например, #adc1);
- побитовый контроль параметра (param199:3 и т. п.);
- имена датчиков (их необходимо указывать в квадратных скобках, например, [Уровень топлива]);
- константные параметры (const10, const-4.54 и т. п.);
- знаки математических операций, приведенные ниже.
Знак | Операция |
---|---|
+ | сложение |
− | вычитание |
∗ | умножение |
/ | деление |
^ | возведение в степень (например, ^const2 — возвести в квадрат, ^const0.5 — извлечь квадратный корень) |
( ) | скобки приоритета (например, в выражении const1.5*(param1−#param1) скобки указывают на то, что вычитание должно выполнятся перед умножением) |
| | |
: | преобразование параметра |
Параметры из предыдущего сообщения недоступны:
- для датчика Частный режим и его валидатора,
- для датчиков в уведомлениях,
- при трассировке графиков,
- ретрансляции датчиков.
Если один из параметров, входящих в выражение, невалиден, невалидным является и его значение целиком.
blockquote class=“article-content__information info”>Значения датчиков рассчитываются в следующем порядке:
- вычисление выражения в поле Параметр,
- преобразование значения по таблице расчета (если настроена),
- валидация (если настроена).
Параметр датчика скорости по координатам
Параметр датчика скорости по координатам может иметь следующий вид:
((lat-#lat)^const2+(lon-#lon)^const2)^const0.5/(time-#time)*const200000
В нем скорость вычисляется по формуле расстояние, деленное на время. Для вычисления расстояния применяется теорема Пифагора: разница широты в соседних сообщениях, возведенная в квадрат, прибавляется к разнице долготы, возведенной в квадрат, и из этой суммы извлекается квадратный корень. Полученный результат — это расстояние в градусах. Оно делится на разницу времени в соседних сообщениях. Таким образом, получается скорость, выраженная в градусах в секунду. Для перевода в километры в час следует применить коэффициент перевода градусов в километры для необходимой широты. В приведенном параметре используется коэффициент для Москвы, который равен 200 000.
Коэффициент перевода градусов в километры вычисляется по формуле
111321*cos(55.75583)/1000*3600=225513.52
где 111321 — длина дуги параллели в 1° по долготе на экваторе, м; 55.75583 — широта Москвы в десятичном формате.
При необходимости рассчитать коэффициент для другого места подставьте в формулу его широту в десятичном формате, не меняя остальные значения.
Если для объекта настроен датчик зажигания, то параметр датчика скорости можно указать так:
((lat-#lat)^const2+(lon-#lon)^const2)^const0.5/(time-#time)*const200000*[Имя датчика зажигания]
Такой датчик можно использовать только в отчетах (не в онлайн-уведомлениях), так как для него требуются параметры из предыдущего сообщения.
Параметр датчика относительных моточасов
Для получения данных о реальных моточасах необходимо создать два датчика:
- датчик коэффициента моточасов (определяет интенсивность работы оборудования в зависимости от оборотов двигателя);
- датчик относительных моточасов.
Чтобы создать датчик коэффициента моточасов, выполните следующие шаги:
-
Нажмите на Создать.
-
Укажите имя датчика.
-
В качестве типа выберите Произвольный датчик.
-
Укажите параметр датчика в виде выражения (param1+#param1)/const2, где param1 — параметр, присылающий значение оборотов двигателя. Параметр датчика коэффициента представляет собой среднее арифметическое оборотов двигателя за интервал между двумя соседними сообщениями.
-
В таблице расчета включите пары XY и настройте их следующим образом:
X Y Пояснение 500
0.33
Одна минута работы при 500 об/мин соответствуют 20 секундам моточасов, значит, коэффициент равен 0.33.
1000
0.67
Одна минута работы при 1000 об/мин соответствуют 40 секундам моточасов, значит, коэффициент равен 0.67.
1500
1
Одна минута работы при 1500 об/мин соответствую 60 секундам моточасов, значит, коэффициент равен 1.
2000
1.5
Одна минута работы при 2000 об/мин соответствуют 90 секундам моточасов, значит, коэффициент равен 1,5.
-
Нажмите на кнопку Генерировать.
-
Нажмите ОК.
Далее создайте датчик типа Относительные моточасы и укажите для него следующий параметр:
(time-#time)*[Имя датчика коэффициента]/const3600
Параметр представляет собой разницу во времени между соседними сообщениями, умноженную на коэффициент интенсивности работы и разделенную на 3600. Деление на 3600 необходимо, чтобы перевести секунды в часы.
Такие датчики можно использовать в отчетах и счетчиках, но не в онлайн-уведомлениях, так как для них нужны параметры из предыдущего сообщения.
Проверка наличия значения
Проверка наличия значения используется для исключения потери данных при замене оборудования. Для применения этой операции в поле Параметр необходимо указать используемые параметры через вертикальную черту (|). Система учитывает первое валидное значение из указанных параметров.
Пример. В течение одного месяца на объекте было установлено оборудование, присылающее данные в параметре param1, а в течение второго месяца использовалось другое оборудование, присылающее те же данные в параметре param2. Чтобы исключить потерю данных, при выполнении отчета за два месяца в свойствах датчика в поле Параметр необходимо указать param1|param2. В таком случае система берет значение из параметра param1, а если оно невалидно, — из param2.
Вместо параметра можно также использовать значения других датчиков в формате [Имя датчика1]|[Имя датчика2].
Проверка наличия значения не работает с параметрами цифровых входов, а также с датчиками, созданными на их основе. Например, функция не работает, если в поле Параметр указано in1|in2.