Перейти к основному содержимому

Приложение 1. Бинарные, логические и математические выражения

Система ГАЛАКТИКА поддерживает вычисляемые датчики — датчики, значение которых рассчитывается по формуле из значений других датчиков и сырых параметров устройства. Формула задаётся в поле Формула на вкладке Калибровка датчика (см. Панель управления → Объекты мониторинга).

В формулах доступны арифметические, побитовые и логические операции, операции сравнения, а также набор математических функций и констант. Ниже приведён перечень поддерживаемого синтаксиса.

Обозначения

В колонке Синтаксис используются условные обозначения аргументов:

  • a, b, x, y — числовые аргументы или вложенные выражения;
  • p, q — логические выражения;
  • n, k — целые числа;
  • a1, ..., an — произвольное количество аргументов.

Многие операторы имеют как ASCII-запись, так и эквивалентный символ Unicode — в перечне такие варианты помечены как «символ Unicode».

Числа и символы парсера

Числовые литералы поддерживаются в разных форматах: целые (1, -2), десятичные (0.2, -0.3), с ведущим нулём (001, -002.1), в научной нотации (1.2e-10, 2.3E10), без ведущего нуля (.2, -.212), дроби (1_2, 2_1_3, -14_3), а также в других системах счисления (b1.111 — двоичная, o.0127 — восьмеричная, h.af1 — шестнадцатеричная).

ФормулаСинтаксисОписание
(( ... )Левая скобка
)( ... )Правая скобка
,(a1, ... )Запятая — разделитель параметров функции
;(a1; ... )Точка с запятой — разделитель параметров функции
(пробел)(whitespace)Пробел

Арифметические операторы

ФормулаСинтаксисОписание
+a + bСложение
-a - bВычитание
*a * bУмножение
×a × bУмножение (символ Unicode)
a ∙ bУмножение (символ Unicode)
/a / bДеление
÷a ÷ bДеление (символ Unicode)
^a^bВозведение в степень
!n!Факториал
#a # bОстаток от деления (mod)
%n%Процент
√xКвадратный корень (символ Unicode)

Побитовые операторы

ФормулаСинтаксисОписание
@~@~aПобитовая унарная инверсия
@&a @& bПобитовая операция И
@^a @^ bПобитовая операция XOR
@|a @| bПобитовая операция ИЛИ
@<<a @<< bСдвиг влево с сохранением знака
@>>a @>> bСдвиг вправо с сохранением знака

Логические (булевы) операторы

ФормулаСинтаксисОписание
&p & qЛогическое И
&&p && qЛогическое И
p ∧ qЛогическое И (символ Unicode)
|p | qЛогическое ИЛИ
||p || qЛогическое ИЛИ
p ∨ qЛогическое ИЛИ (символ Unicode)
p ⊻ qИсключающее ИЛИ (XOR) (символ Unicode)
(+)p (+) qИсключающее ИЛИ (XOR)
~~pОтрицание
¬¬pОтрицание (символ Unicode)

Бинарные отношения (сравнения)

ФормулаСинтаксисОписание
=a = bРавенство
==a == bРавенство
a ≠ bНеравенство (символ Unicode)
<>a <> bНеравенство
~=a ~= bНеравенство
!=a != bНеравенство
<a < bМеньше
>a > bБольше
a ≤ bМеньше или равно (символ Unicode)
<=a <= bМеньше или равно
a ≥ bБольше или равно (символ Unicode)
>=a >= bБольше или равно

Унарные функции

ФормулаСинтаксисОписание
sinsin(x)Тригонометрический синус
coscos(x)Тригонометрический косинус
tgtg(x)Тригонометрический тангенс
tantan(x)Тригонометрический тангенс
ctgctg(x)Тригонометрический котангенс
cotcot(x)Тригонометрический котангенс
lnln(x)Натуральный логарифм (основание e)
log2log2(x)Двоичный логарифм (основание 2)
lglg(x)Десятичный логарифм (основание 10)
log10log10(x)Десятичный логарифм (основание 10)
expexp(x)Экспонента
sqrtsqrt(x)Квадратный корень
radrad(x)Перевод градусов в радианы
degdeg(x)Перевод радиан в градусы
absabs(x)Абсолютное значение
sgnsgn(x)Знак числа (Signum)
floorfloor(x)Округление вниз (Floor)
ceilceil(x)Округление вверх (Ceiling)
notnot(x)Отрицание

Бинарные функции

ФормулаСинтаксисОписание
loglog(a, b)Логарифм по основанию b
modmod(a, b)Остаток от деления (mod)
roundround(x, n)Округление «до ближайшего» до n знаков
rootroot(rootorder, number)Корень n-го порядка из числа

Условные функции

ФормулаСинтаксисОписание
ifif(cond, expr-if-true, expr-if-false)Если
iffiff(cond-1, expr-1; ... )Функция «если» (несколько пар «условие — выражение»)

Функции с произвольным числом аргументов

ФормулаСинтаксисОписание
minmin(a1, ..., an)Минимум
maxmax(a1, ..., an)Максимум
meanmean(a1, ..., an)Среднее значение
addadd(a1, ..., an)Суммирование
multimulti(a1, ..., an)Умножение
andand(a1, ..., an)Логическое И (AND)
oror(a1, ..., an)Логическое ИЛИ (OR)
xorxor(a1, ..., an)Исключающее ИЛИ (XOR)
coalescecoalesce(a1, ..., an)Возвращает первый ненулевой аргумент

Константы

ФормулаСинтаксисОписание
ππЧисло π (символ Unicode)
pipiЧисло π