Функции и операции в формуле

<< 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

"ИСТИНА", если источник значений переменной "Вход" имеет признак "Нижняя аварийная граница"

"ЛОЖЬ", если не имеет.