Перейти к содержанию

Редактор выражений

Главное окно

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

  1. Список аргументов — перечень всех аргументов фигуры.
  2. Область редактирования выражений над аргументами (добавление аргумента в область осуществляется двойным нажатием левой кнопки мыши).
  3. Перечень часто используемых функций в выражениях.
  4. Область, в которой отображается подсказка по использованию выбранной функции.
  5. Кнопка "Проверить" — проверка правильности написания исходного выражения.

Внимание

  • имя аргумента передается в функцию в формате ${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 — выводится значение аргумента. В противном случае строка Авария.

if(${Переменная}.alarmStatus == AlarmStatus.Normal, ${Переменная}, 'Авария')  

Шаблонные строки

Строковые литералы, допускающие использование выражений внутри, называются шаблонными строками. С ними можно использовать строковую интерполяцию, что позволяет избежать необходимости конкатенации в выражениях. Такие строки заключены в обратные кавычки `` вместо одинарных. Они могут содержать подстановки, обозначенные знаком решетка и фигурными скобками #{выражение}.

`#{${Переменная} + 1} шт. мешков`

Примеры выражений

Деление значения переменной на 100:

${Переменная} / 100

Условное выражение: если переменная привязана (isBound == true), возвращает её единицы измерения, иначе — строку 'A'

if(${Переменная}.isBound, ${Переменная}.units, 'A'):

Извлекает значение из тега "Переменная" и добавляет к значению единицы измеренния шкалы.

`#{${Переменная}.viewValue} #{${Переменная}.units}`

Нормализует значение переменной к диапазону [lowScale, highScale], затем масштабирует результат до диапазона [0, 268]:

(max(min(${Переменная}, ${Переменная}.highScale), ${Переменная}.lowScale) - ${Переменная}.lowScale) / (${Переменная}.highScale - ${Переменная}.lowScale) * 268