Приложение 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 | Больше или равно |
Унарные функции
| Формула | Синтаксис | Описание |
|---|
sin | sin(x) | Тригонометрический синус |
cos | cos(x) | Тригонометрический косинус |
tg | tg(x) | Тригонометрический тангенс |
tan | tan(x) | Тригонометрический тангенс |
ctg | ctg(x) | Тригонометрический котангенс |
cot | cot(x) | Тригонометрический котангенс |
ln | ln(x) | Натуральный логарифм (основание e) |
log2 | log2(x) | Двоичный логарифм (основание 2) |
lg | lg(x) | Десятичный логарифм (основание 10) |
log10 | log10(x) | Десятичный логарифм (основание 10) |
exp | exp(x) | Экспонента |
sqrt | sqrt(x) | Квадратный корень |
rad | rad(x) | Перевод градусов в радианы |
deg | deg(x) | Перевод радиан в градусы |
abs | abs(x) | Абсолютное значение |
sgn | sgn(x) | Знак числа (Signum) |
floor | floor(x) | Округление вниз (Floor) |
ceil | ceil(x) | Округление вверх (Ceiling) |
not | not(x) | Отрицание |
Бинарные функции
| Формула | Синтаксис | Описание |
|---|
log | log(a, b) | Логарифм по основанию b |
mod | mod(a, b) | Остаток от деления (mod) |
round | round(x, n) | Округление «до ближайшего» до n знаков |
root | root(rootorder, number) | Корень n-го порядка из числа |
Условные функции
| Формула | Синтаксис | Описание |
|---|
if | if(cond, expr-if-true, expr-if-false) | Если |
iff | iff(cond-1, expr-1; ... ) | Функция «если» (несколько пар «условие — выражение») |
Функции с произвольным числом аргументов
| Формула | Синтаксис | Описание |
|---|
min | min(a1, ..., an) | Минимум |
max | max(a1, ..., an) | Максимум |
mean | mean(a1, ..., an) | Среднее значение |
add | add(a1, ..., an) | Суммирование |
multi | multi(a1, ..., an) | Умножение |
and | and(a1, ..., an) | Логическое И (AND) |
or | or(a1, ..., an) | Логическое ИЛИ (OR) |
xor | xor(a1, ..., an) | Исключающее ИЛИ (XOR) |
coalesce | coalesce(a1, ..., an) | Возвращает первый ненулевой аргумент |
Константы
| Формула | Синтаксис | Описание |
|---|
π | π | Число π (символ Unicode) |
pi | pi | Число π |