Редактор выражений
Главное окно
Диалоговое окно "Редактор выражений" представляет собой список аргументов и рабочую область для описания вычислений над ними.

- Список аргументов — перечень всех аргументов фигуры.
- Область редактирования выражений над аргументами (добавление аргумента в область осуществляется двойным нажатием левой кнопки мыши).
- Перечень часто используемых функций в выражениях.
- Область, в которой отображается подсказка по использованию выбранной функции.
- Кнопка "Проверить" — проверка правильности написания исходного выражения.
Внимание
- имя аргумента передается в функцию в формате
${arg_name}; - если в функцию передается аргумент, представленный в виде строки, то его необходимо заключить в одинарные кавычки
'some string'; - значения типа
numberне требуется заключать в кавычки.
Функции
| Оператор | Описание | Пример выражения |
|---|---|---|
abs |
Возвращает абсолютное значение | abs(${arg}) |
arccos |
Вычисляет арккосинус значения в радианах | arccos(${arg}) |
arcsin |
Вычисляет арксинус значения в радианах | arcsin(${arg}) |
arctan |
Вычисляет арктангенс значения в радианах | arctan(${arg}) |
arccotan |
Вычисляет арккотангенс значения в радианах | arccotan(${arg}) |
band |
Побитовое И над значениями аргументов x и y |
band(${x}, ${y}) |
bnot |
Побитовое НЕ над значением аргумента x |
bnot(${x}) |
bor |
Побитовое ИЛИ над значениями аргумента x и y |
bor(${x}, ${y}) |
blshift |
Побитовое смещение влево значения аргумента x на n бит |
blshift(${x}, n) |
brshift |
Побитовое смещение вправо значения аргумента x на n бит |
brshift(${x}, n) |
bxor |
Побитовое исключающее ИЛИ над значениями аргументов x и y |
bxor(${x}, ${y}) |
cos |
Вычисляет косинус значения в радианах | cos(${arg}) |
cotan |
Вычисляет котангенс значения в радианах | cos(${arg}) |
ceil |
Округляет вверх до ближайшего целого значения | ceil(2.4) = 3 |
dateTimeToString |
Преобразует время в формате строки ISO8601 | dateTimeToString('2025-12-16T05:40:05Z') |
exp |
Возводит значение аргумента x в натуральную степень e ~ 2.72 |
exp(${x}) |
floor |
Округляет вниз до ближайшего целого значения | floor(2.6) = 2 |
frac |
Извлекает дробную часть значения | frac(${arg}) |
getBit |
Извлекает бит n из значения аргумента arg |
getBit(${arg}, n) |
getUserName |
Возвращает имя текущего пользователя | getUserName() |
getUserGroupName |
Возвращает название текущех группы пользователей | getUserGroupName() |
if |
Условная функция: возвращает одно из двух значений: x — (true), y — (false) |
if(${var} > 100, x, y) |
ln |
Вычисляет натуральный логарифм згачения | ln(${var}) |
max |
Возвращает максимальное из значений аргументов x и y |
max(${x}, ${y}) |
min |
Возвращает минимальное из значений аргументов x и y |
min(${x}, ${y}) |
power |
Возводит значение аргумента arg в степень n |
power(${arg}, n) |
round |
Округляет значение до ближайшего целого | round(2.6) = 3 |
setBit |
Устанавливает бит n в значение state (0 или 1) тега var |
setBit(${var}, n, state) |
sin |
Вычисляет значение синуса в радианах | sin(${arg}) |
sqr |
Возводит значение в квадрат | sqr(${arg}) |
sqrt |
Получает квадратный корень значения | sqrt(${arg}) |
strInCommaText |
Проверяет находится ли текст str в аргументе commaText |
strInCommaText('str', ${commaText}) |
trunc |
Извлекает целую часть значения | trunc(${arg}) |
Масштаб |
Масштабирует значение arg из входного диапазона [a, b] в выходной [x, y] |
(${arg} - a) / (b - a) * (y - x) + x |
| Название | Описание |
|---|---|
isBound |
1 - тег привязан, 0 - тег отвязан от аргумента |
value |
Значение аргумента. Если не указано свойство, используется именно это свойство |
viewValue |
Форматированное значение аргумента согласно настройкам привязанного тега |
quality |
Качество сигнала. 0xC0 (192) — хорошее качество сигнала. Все остальные значения указывают на низкое качество |
alarmStatus |
Значение статуса тревоги. |
loAlarm |
Нижняя предупредительная граница уставок (Lo) |
loLoAlarm |
Нижняя аварийная граница уставок (LoLo) |
hiAlarm |
Верхняя предупредительная граница уставок (Hi) |
hiHiAlarm |
Верхняя аварийная граница уставок (HiHi) |
lowScale |
Нижняя граница шкалы |
highScale |
Верхняя граница шкалы |
units |
Единицы измерения шкалы |
| Перечисление | Название | Описание |
|---|---|---|
0 |
Normal |
Значение находится в пределах уставок |
1 |
LoAlarm |
Нарушение нижней предупредительной границы уставок (Lo) |
2 |
HiAlarm |
Нарушение верхней предупредительной границы уставок (Hi) |
3 |
DiscreteOn |
Отслеживаемое дискретное значение Вкл |
4 |
DiscreteOff |
Отслеживаемое дискретное значение Выкл |
5 |
HiHiAlarm |
Нарушение верхней аварийной границы уставок (HiHi) |
6 |
LoLoAlarm |
Нарушение нижней аварийной границы уставок (LoLo) |
| Оператор | Описание |
|---|---|
| ... | Группировка |
| ^ | Возведение в степень |
| * | Умножение |
| / | Деление |
| + | Сложение |
| - | Вычитание |
| == | Равно |
| != | Не равно |
| > | Больше |
| >= | Больше или равно |
| < | Меньше |
| <= | Меньше или равно |
| not | Логическое отрицание |
| and | Логическое И |
| or | Логическое ИЛИ |
| if | Условное выражение |
Функция
strInCommaTextвозвращает значениеtrue, если проверка успешна, иfalse— в противном случае.
string— строковый тип данных для хранения текстовой информации.
Pi— число Пи (~ 3,14159...)
Статусы тревоги
В случае состояния тревоги Normal — выводится значение аргумента. В противном случае строка Авария.
Шаблонные строки
Строковые литералы, допускающие использование выражений внутри, называются шаблонными строками. С ними можно использовать строковую интерполяцию, что позволяет избежать необходимости конкатенации в выражениях. Такие строки заключены в обратные кавычки `` вместо одинарных. Они могут содержать подстановки, обозначенные знаком решетка и фигурными скобками #{выражение}.
Примеры выражений
Деление значения переменной на 100:
Условное выражение: если переменная привязана (isBound == true), возвращает её единицы измерения, иначе — строку 'A'
Извлекает значение из тега "Переменная" и добавляет к значению единицы измеренния шкалы.
Нормализует значение переменной к диапазону [lowScale, highScale], затем масштабирует результат до диапазона [0, 268]: