<< Click to Display Table of Contents >> Navigation: Проект > Элементы дерева объектов > Переменные > Дополнительные сведения о переменных > Функции и операции в формуле |
Ниже приведен список функций и их синтаксис, которые Вы можете использовать в формулах для вычисления значения Расчета и События.
ОБОЗНАЧЕНИЕ |
ОПИСАНИЕ |
ПРИМЕРЫ |
|
ФОРМУЛА |
РЕЗУЛЬТАТ |
||
Сравнение |
|
|
|
= |
Равно |
2 = 2 2 = 1 |
"ИСТИНА" "ЛОЖЬ" |
<> |
Не равно |
2 = 2 2 = 1 |
"ЛОЖЬ" "ИСТИНА" |
< |
Меньше |
2 < 1 1 < 2 |
"ЛОЖЬ" "ИСТИНА" |
> |
Больше |
2 > 1 1 > 2 |
"ИСТИНА" "Ложь" |
<= |
Меньше или равно |
2 <= 2 2 <= 3 |
"ИСТИНА" "ИСТИНА" |
>= |
Больше или равно |
3 >= 2 3 >= 3 |
"ИСТИНА" "ИСТИНА" |
|
|
|
|
Арифметика |
|
|
|
+ |
Сложить (при сложении даты/времени с числом, число должно быть выражено в секундах) |
1 + 2 |
3 |
- |
Вычесть |
3 - 1 |
2 |
* |
Умножить |
2 * 3 |
6 |
/ |
Разделить |
8 / 5 |
1.6 |
( ) |
Скобки |
2 * ( 1 + 3 ) |
8 |
mod |
Остаток от деления целых чисел |
13 mod 5 |
3 |
div |
Целая часть от деления целых чисел |
13 div 5 |
2 |
|
|
|
|
Логические |
|
|
|
И |
Логическое И |
0 И 1 1 И 1 |
"ЛОЖЬ" "ИСТИНА" |
ИЛИ |
Логическое ИЛИ |
0 И 1 1 И 1 |
"ИСТИНА" "ИСТИНА" |
НЕ |
Логическое НЕ |
НЕ 0 НЕ 1 |
"ИСТИНА" "ЛОЖЬ" |
|
|
|
|
Побитовые |
|
|
|
& |
Побитовое И |
3 & 5 |
1 |
| |
Побитовое ИЛИ |
3 & 5 |
7 |
^ |
Побитовое ИСКЛЮЧАЮЩЕЕ ИЛИ |
3 ^ 5 |
6 |
~ |
Побитовое НЕ |
~0 |
-1 |
|
|
|
|
Функции |
xxx() - функции с одним аргументом ххх(,) - функции с двумя аргументами |
|
|
синус sin() |
Синус (аргумент - в радианах) |
sin(1) |
0.841 |
косинус cos() |
Косинус |
cos(1) |
0.540 |
тангенс tan() |
Тангенс |
tan(1) |
1.557 |
арксинус asin() |
Арксинус |
asin(1) |
1.571 |
арккосинус acos() |
Арккосинус |
acos(1) |
0.000 |
арктангенс atan() |
Арктангенс |
atan(1) |
0.785 |
кв. корень sqrt() |
Квадратный корень |
sqrt(16) |
4 |
степень pow(,) |
Возводит первое число в степень второго числа |
pow(2,3) |
8 |
логарифм log(,) |
Логарифм первого числа по основанию второго числа |
log(8,2) |
3 |
нат. логарифм ln() |
Натуральный логарифм |
ln(2.718) |
1.000 |
экспонента exp() |
Экспонента (e в степени x) |
exp(1) |
2.718 |
модуль abs() |
Абсолютное значение |
abs(-2) abs(2) |
2 2 |
минимум min(,) |
Минимум из двух величин |
min(2,3) |
2 |
максимум max(,) |
Максимум из двух величин |
max(2,3) |
3 |
ceil |
Округление вверх |
ceil( 12.33 ) |
13 |
floor |
Округление вниз |
floor( 12.33 ) |
12 |
лог. выбор Если(,,) |
Выполняет функцию Если |
Если(Переменная_1=1,10, 20 ) |
Если Переменная_1=1, то Результат расчета будет равен 10, иначе 20 |
|
|
|
|
Функции времени |
|
|
|
тек. время |
Текущее время |
Time () |
11:01:25 |
тек. дата |
Текущая дата |
Date () |
20.06.2002 |
тек. дата_время |
Текущие дата и время |
DateTime () |
20.06.2002 11:01:25 |
ЧМС во время Int2Time (,,) |
Из трех чисел собирает время |
Int2Time (10, 23, 46) |
10:23:46 |
ДМГ в дату Int2Date (,,) |
Из трех чисел собирает дату |
Int2Date (10, 3, 1978) |
10.03.1978 |
ДМГ ЧМС в дату_время Int2DateTime(,,,,,) |
Из шести чисел собирает дату и время |
Int2DateTime (10, 3, 1978, 10, 23, 46) |
10.03.1978 10:23:46 |
сложить даты_время AddDateTime ( , ) |
Складывает две даты_время |
AddDateTime (Int2Date (10, 3, 1978), Int2Time (10, 23, 46)) |
10.03.1978 10:23:46 |
Прибавить месяцы AddMonths( , ) |
Прибавляет (вычитает) к указанной дате заданное количество месяцев. |
AddMonths(Int2Date (10, 3, 1978), 2) |
10.05.1978 |
Секунды во время Sec2Time |
Из числа собирает время |
Sec2Time() |
00:00:02 |
Метка времени переменной TimeStamp( ) |
Параметром функции должна быть переменная. Результат - метка времени переменной-параметра (тип - "дата-время"). Результат функции можно использовать, например, в операциях сравнения с другими переменными того же типа. |
TimeStamp(Вход_1) TimeStamp(Вход_1) > DateTime() |
10.03.1978 10:23:46 "ЛОЖЬ" |
нач. тек. часа |
Начало текущего часа |
CurHour() |
10:00:00 |
нач. тек. смены |
Начало текущей смены |
CurShift() |
10.03.1978 16:00:00 |
нач. тек. суток |
Начало текущих суток |
CurDay() |
10.03.1978 |
нач. тек. недели |
Начало текущей недели |
CurWeek() |
08.03.1978 |
нач. тек. месяца |
Начало текущего месяца |
CurMonth |
01.03.1978 |
нач. тек. года |
Начало текущего года |
CurYear() |
01.01.1978 |
|
|
|
|
|
|
|
|
интеграл (текущие сутки) |
Интеграл по архиву за текущие сутки. Переменные времени задаются в формате времени. Синтаксис: ArchIntegral (Переменная, ВремяНачало, ВремяКонец, Период приведения) |
ArchIntegral (Переменная1, Переменная2, Int2Time (12, 0, 0), 3600) |
Расчет |
среднее интегральное (текущие сутки) |
Среднее интегральное значение по архиву за текущие сутки. Переменные времени задаются в формате времени. Синтаксис: ArchAverage (Переменная, ВремяНачало, ВремяКонец) |
ArchAverage (Переменная1 , Int2Time (10, 00, 0) , Int2Time (10, 50, 0)) |
Расчет |
среднее значение (текущие сутки) |
Среднее интегральное значение по архиву за текущие сутки. Переменные времени задаются в формате времени. Синтаксис: ArchAverage (Переменная, ВремяНачало, ВремяКонец) |
ArchAverageValue (Переменная1 , Int2Time (10, 00, 0) , Int2Time (10, 50, 0)) |
|
счетчик импульсов (текущие сутки) |
Счетчик дискретных импульсов в архиве за текущие сутки. Переменные времени задаются в формате времени. Синтаксис: ArchDiscreteCounter (Дискретная переменная, ВремяНачало, ВремяКонец ) |
ArchDiscreteCounter (Переменная1, Int2Time (6, 0, 0), Int2Time (6, 35, 0) ) |
Расчет |
счетчик пробега (текущие сутки) |
Подсчет суммарного времени, когда переменная была в состоянии Вкл за текущие сутки. Переменные времени задаются в формате времени. Синтаксис: ArchDiscreteCounterTime (Дискретная_Переменная , ВремяНачало , ВремяКонец ) |
ArchDiscreteCounterTime (Переменная1, Int2Time (6, 0, 0) , Int2Time (6, 35, 0) ) |
Расчет |
мгновенное значение (текущие сутки) |
Мгновенное значение по архиву за текущие сутки. Переменные времени задаются в формате времени. Синтаксис: ArchMomentValue (Переменная, ИскоемоеВремя, Тип поиска) Тип поиска может иметь значения: 0 - ближайшее по времени сверху, 1 - ближайшее снизу, 2 - ближайшее. |
ArchMomentValue (Переменная1, Int2Time (10, 50, 0), 1) |
Расчет |
сумма (текущие сутки) |
Подсчет суммы значений за текущие сутки по архиву. Переменные задаются в формате даты и времени. Синтаксис: AbsArchSum (Переменная, ВремяНачало, ВремяКонец) |
AbsArchSum( Переменная1,DateTime( )-60, DateTime( )) |
Расчет |
количество значений (текущие сутки) |
Вывод количества значений за текущие сутки по архиву.Переменные задаются в формате даты и времени. AbsArchCount (Переменная, ВремяНачало, ВремяКонец) |
AbsArchCount( Переменная1,DateTime( )-60, DateTime( )) |
Расчет |
интеграл |
Интеграл по архиву. Переменные времени задаются в формате даты и времени. Синтаксис: AbsArchIntegral (Переменная, ВремяНачало, ВремяКонец, Период приведения) |
AbsArchIntegral (Переменная1, Переменная2, DataTime (), 3600) |
Расчет |
среднее |
Среднее арифметическое значение по архиву. Переменные времени задаются в формате даты и времени. Синтаксис: AbsArchAverageValue (Переменная, ВремяНачало, ВремяКонец) |
AbsArchAverageValue (Переменная1 , DataTime ()-3600 , DataTime ()) |
Расчет |
среднее интегральное |
Среднее интегральное значение по архиву. Переменные времени задаются в формате даты и времени. Синтаксис: AbsArchAverage (Переменная, ВремяНачало, ВремяКонец) |
AbsArchAverage (Переменная1 , DataTime ()-3600 , DataTime ()) |
Расчет |
счетчик импульсов |
Счетчик дискретных импульсов в архиве. Переменные времени задаются в формате даты и времени. Синтаксис: AbsArchDiscreteCounter (Дискретная переменная, ВремяНачало, ВремяКонец ) |
AbsArchDiscreteCounter (Переменная1, DataTime ()-3600, DataTime () ) |
Расчет |
счетчик пробега |
Подсчет суммарного времени, когда переменная была в состоянии Вкл. Переменные времени задаются в формате даты и времени. Синтаксис: AbsArchDiscreteCounterTime (Дискретная_Переменная , ВремяНачало , ВремяКонец ) |
AbsArchDiscreteCounterTime (Переменная1, DataTime ()-3600 , DataTime ()) |
Расчет |
мгновенное значение |
Мгновенное значение по архиву. Переменные времени задаются в формате даты и времени. Синтаксис: AbsArchMomentValue (Переменная, Искомое время, Тип поиска) Тип поиска может иметь значения: 0 - ближайшее по времени сверху, 1 - ближайшее снизу, 2 - ближайшее. |
AbsArchMomentValue (Переменная1, CurShift( ), 1) |
Расчет |
сумма |
Подсчет суммы значений за определенный интервал по архиву. Переменные задаются в формате даты и времени. Синтаксис: AbsArchSum (Переменная, ВремяНачало, ВремяКонец) |
AbsArchSum( Переменная1,DateTime( )-60, DateTime( )) |
Расчет |
количество значений |
Вывод количества значений за определенный интервал по архиву.Переменные задаются в формате даты и времени. Синтаксис: AbsArchCount (Переменная, ВремяНачало, ВремяКонец) |
AbsArchCount( Переменная1,DateTime( )-60, DateTime( )) |
Расчет |
|
|
|
|
функции OPC признаки |
|
|
|
OPC признаки OPCQuality( ) |
В качестве параметра функции должна использоваться переменная. Результат Выполнения функции - закодированное значение OPC признака качества, который имеет переменная, использованная в аргументе. Это значение OPC признака можно проверять на равенство или не равенство константам из группы "OPC признаки качества". |
OPCQuality( Вход ) = ОШИБКА_УСТРОЙСТВА |
"ИСТИНА", если источник значений переменной "Вход" имеет признак качества "Ошибка Устройства" "ЛОЖЬ", если не имеет. |
Признаки нарушения границ OPCBounds( ) |
В качестве параметра функции должна использоваться переменная. Результат Выполнения функции - закодированное значение признака нарушения границы (их может быть несколько). Это значение необходимо раскодировать с помощью побитовых операций с константами, определенными в группе "Признаки границ" |
( OPCBounds( Вход ) & PC_MIN_ERROR ) = 0 |
"ИСТИНА", если источник значений переменной "Вход" имеет признак "Нижняя аварийная граница" "ЛОЖЬ", если не имеет.
|