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

<< Click to Display Table of Contents >>

Navigation:  »No topics above this level«

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

Ниже приведен список функций и их синтаксис, которые Вы можете использовать в формулах для вычисления значения Расчета и События.

ОБОЗНАЧЕНИЕ

ОПИСАНИЕ

ПРИМЕРЫ

ФОРМУЛА

РЕЗУЛЬТАТ

Сравнение

 

 

 

=

Равно

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

 

 

 

 

лог. выбор Если(,,)

Выполняет функцию Если

Если(Переменная_1=1,10, 20 )

Если Переменная_1=1, то Результат расчета будет равен 10, иначе  20

 

 

 

 

Логические

 

 

 

И

Логическое И

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

 

 

 

 

Функции времени

 

 

 

тек. время

Текущее время

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

Секунды во время 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 (Переменная, Время1, Время2, Период приведения)

Описание функции

ArchIntegral (Переменная1, Переменная2, Int2Time (12, 0, 0), 3600)

Расчет

среднее

Среднее значение по архиву за текущие сутки. Переменные времени задаются в формате  времени.

Синтаксис:

ArchAverage (Переменная, Время1, Время2)

Описание функции

ArchAverage (Переменная1 , Int2Time (10, 00, 0) ,                Int2Time (10, 50, 0))

Расчет

счетчик импульсов

Счетчик дискретных импульсов в архиве за текущие сутки. Переменные времени задаются в формате  времени.

Синтаксис:

ArchDiscreteCounter (Дискретная переменная,

Время1, Время2 )

Описание функции

ArchDiscreteCounter (Переменная1, Int2Time (6, 0, 0), Int2Time (6, 35, 0) )

Расчет

счетчик пробега

Подсчет суммарного времени, когда переменная была в состоянии Вкл за текущие сутки. Переменные времени задаются в формате  времени.

Синтаксис:

ArchDiscreteCounterTime (Дискретная_Переменная ,

Время1 , Время2 )

Описание функции

ArchDiscreteCounterTime (Переменная1, Int2Time (6, 0, 0) , Int2Time (6, 35, 0) )

Расчет

мгновенное значение

Мгновенное значение по архиву за текущие сутки. Переменные времени задаются в формате  времени.

Синтаксис:

ArchMomentValue (Переменная, Время1, Тип поиска)

Тип поиска может иметь значения: 0 - ближайшее по времени сверху, 1 - ближайшее снизу, 2 - ближайшее.

Описание функции

ArchMomentValue (Переменная1, Int2Time (10, 50, 0), 1)

Расчет

интеграл

Интеграл по архиву. Переменные времени задаются в формате  даты и времени.

Синтаксис:

AbsArchIntegral (Переменная, Время1, Время2, Период приведения)

Описание функции

AbsArchIntegral (Переменная1, Переменная2, DataTime (), 3600)

Расчет

среднее

Среднее значение по архиву  Переменные времени задаются в формате  даты и времени.

Синтаксис:

AbsArchAverage (Переменная, Время1, Время2)

Описание функции

AbsArchAverage (Переменная1 , Переменная2 ,   DataTime ())

Расчет

счетчик импульсов

Счетчик дискретных импульсов в архиве.  Переменные времени задаются в формате  даты и времени.

Синтаксис:

AbsArchDiscreteCounter (Дискретная переменная,

Время1, Время2 )

Описание функции

AbsArchDiscreteCounter (Переменная1, Переменная2, DataTime () )

Расчет

счетчик пробега

Подсчет суммарного времени, когда переменная была в состоянии Вкл.  Переменные времени задаются в формате  даты и времени.

Синтаксис:

AbsArchDiscreteCounterTime (Дискретная_Переменная ,

Время1 , Время2 )

Описание функции

AbsArchDiscreteCounterTime (Переменная1, DataTime ()-3600 , DataTime ())

Расчет

мгновенное значение

Мгновенное значение по архиву.  Переменные времени задаются в формате  даты и времени.

Синтаксис:

AbsArchMomentValue (Переменная, Время1, Тип поиска)

Тип поиска может иметь значения: 0 - ближайшее по времени сверху, 1 - ближайшее снизу, 2 - ближайшее.

Описание функции

AbsArchMomentValue (Переменная1, CurShift( ), 1)

Расчет

 

 

 

 

функции OPC признаки

 

 

 

OPC признаки  OPCQuality( )

В качестве параметра функции должна использоваться переменная.

Результат Выполнения функции - закодированное значение OPC признака качества, который имеет переменная, использованная в аргументе.

Это значение OPC признака можно проверять на равенство или не равенство константам из группы "OPC признаки качества".

OPCQuality( Вход ) = ОШИБКА_УСТРОЙСТВА

"ИСТИНА", если источник значений переменной "Вход" имеет признак качества "Ошибка Устройства"

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

Признаки нарушения границ OPCBounds( )

В качестве параметра функции должна использоваться переменная.

Результат Выполнения функции - закодированное значение признака нарушения границы (их может быть несколько).

Это значение необходимо раскодировать с помощью побитовых операций с константами, определенными в группе "Признаки границ"

( OPCBounds( Вход ) & PC_MIN_ERROR ) = 0

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

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

 

Имена функций зарезервированы! Их нельзя использовать в качестве имён переменных.