<< Click to Display Table of Contents >> Navigation: Проект > Элементы дерева объектов > Палитра ФБ > Служебные > Программа ST > Стандартные функции |
Операторы |
Расшифровка |
GT - убывающая последовательность |
|
GE - монотонная последовательность |
|
EQ - равенство |
|
LE - монотонная последовательность |
|
LT - возрастающая последовательность |
|
|
ADD - оператор сложения |
MUL - оператор умножения |
|
SUB - оператор вычитания |
|
DIV - оператор деления |
|
MOD - вычисление остатка от деления целочисленных значений |
|
ABS - модуль числа |
|
SQRT - извлечение квадратного корня |
|
LN - вычисление натурального логарифма |
|
EXP - вычисление экспоненты |
|
SIN - вычисление синуса |
|
COS - вычисление косинуса |
|
TAN - вычисление тангенса |
|
ASIN - вычисление арксинуса |
|
ACOS - вычисление арккосинуса |
|
ATAN - вычисление арктангенса |
|
EXPT - вычисление числа в степени |
|
AND - оператор"И" |
|
OR - оператор "ИЛИ" |
|
NOT - оператор "НЕ" |
|
XOR - оператор "Исключающее ИЛИ" |
|
SEL - бинарный выбор |
|
MAX - наибольшее из двух значений |
|
MIN - наименьшее из двух значений |
|
MUX - расширяемый мультиплексор |
|
LIMIT - функция ограничения |
|
LEN - возвращает длину строки |
|
LEFT - возвращает левую часть строки заданной длины |
|
RIGHT - возвращает правую часть строки заданной длины |
|
MID - выделение фрагмента строки |
|
CONCAT - объединение строки |
|
INSERT - позволяет вставить одну строку в определённую позицию другой строки |
|
DELETE - удаление части строки |
|
REPLACE - замена части подстроки другой строкой с указанной позиции |
|
FIND - поиск подстроки в строке |
|
REAL_TO_INT - преобразование вещественной переменной в целочисленную |
|
TIME_TO_REAL - преобразование переменной времени в вещественную |
|
ADD_TIME или ADD - суммирует две переменные TIME |
|
ADD_TOD_TIM или ADD - прибавляет к переменной типа TOD (время) значение переменной типа TIME |
|
SUB_TIME или SUB - разность двух переменных TIME |
|
SUB_DATE_DATE или SUB - разность двух переменных типа DATE |
|
SUB_TOD_TIME или SUB - вычитает из переменной типа TOD (время) значение переменной TIME |
|
SUB_TOD_TOD или SUB - разность двух переменных TOD (время) |
|
SUB_DT_TIME или SUB - вычитает из переменной DT значение переменной TIME |
|
SUB_DT_DT или SUB - разность двух переменных DT |
|
MULTIME или MUL - умножает переменную типа TIME на любую числовую переменную |
|
DIVTIME или DIVE - делит переменную типа TIME на любую числовую переменную |
|
CONCAT_DATE_TOD - объединяет значения переменных DATE и TOD в одну переменную типа DT |
|
SHL - побитный сдвиг влево |
|
SHR - побитный сдвиг вправо |
|
ROL - циклический сдвиг влево |
|
ROR - циклический сдвиг вправо |
GT
Убывающая последовательность. Эквивалентен операции >.
Пример:
out:=GT (in1,in2,in3);
(*эквивалентно*)
out:=(in1>in2) & (in2>in3);
В данном операторе допускается использование двух и более аргументов.
GE
Монотонная последовательность. Эквивалентен операции >=.
Пример:
out:=GE (in1,in2,in3);
(*эквивалентно*)
out:=(in1>=in2) & (in2>=in3);
В данном операторе допускается использование двух и более аргументов.
EQ
Равенство. Эквивалентен операции =.
Пример:
out:=EQ (in1,in2,in3);
(*эквивалентно*)
out:=(in1=in2) & (in2=in3);
В данном операторе допускается использование двух и более аргументов.
LE
Монотонная последовательность. Эквивалентен операции <=.
Пример:
out:=LE (in1,in2,in3);
(*эквивалентно*)
out:=(in1<=in2) & (in2<=in3);
В данном операторе допускается использование двух и более аргументов.
LT
Возрастающая последовательность. Эквивалентен операции <.
Пример:
out:=LT (in1,in2,in3);
(*эквивалентно*)
out:=(in1<in2) & (in2<in3);
В данном операторе допускается использование двух и более аргументов.
Оператор сложения. Эквивалентен операции +.
Пример:
out:=ADD(in,in1);
(*эквивалентно*)
out:=in+in1;
В данном операторе допускается использование двух и более аргументов.
Оператор умножения. Данная функция можно использовать как для переумножения чисел, так и для переумножение типа Time на число. Для операций с числами можно использовать операцию *.
out:=MUL(in,in1);
(*эквивалентно*)
out:=in*in1;
В данном операторе допускается использование двух и более аргументов.
Оператор вычитания. Эквивалентен операции –
out:=SUB(in,in1);
(*эквивалентно*)
out:=in-in1;
Оператор умножения. Данная функция можно использовать как для деления чисел, так и для деления типа Time на число. Для операций с числами можно использовать операцию /.
out:=DIV(in,in1);
(*эквивалентно*)
out:=in/in1;
Вычисление остатка от деления целочисленных значений.
In,in1, out – целочисленные переменные.
Пример:
out:=MOD(in,in1); (*in=9, in1=2*)
(*эквивалентно*)
out:=in MOD in1;
(*результат out=1*)
ABS
Модуль числа. in, out – любые числовые переменные.
Пример:
out:=ABS(in); (*in = -9*)
(*результат out=9*)
SQRT
Извлечение квадратного корня. Аргумент in может быть целочисленным или вещественным. Результат out – real.
Пример:
out:=SQRT(in); (*in = 10*)
(*результат out=3,162*)
LN
Вычисление натурального логарифма. Аргумент in может быть целочисленным или вещественным. Результат out – real.
Пример:
out:=LN(in); (*in = 5*)
(*результат out=1,609*)
Вычисление экспоненты - e^x. Аргумент in может быть целочисленным или вещественным. Результат out – real.
Пример:
out:=EXP(in); (*in = 5*)
(*результат out=148*)
Вычисление синуса. Аргумент in может быть целочисленным или вещественным. Результат out – real.
Примечание. Все тригонометрические функции работают с радианами.
Пример:
out:=sin(in); (*in = 0.52 или 30 градусов*)
(*результат out=0.5*)
Вычисление косинуса. Аргумент in может быть целочисленным или вещественным. Результат out – real.
Примечание. Все тригонометрические функции работают с радианами.
Пример:
out:= COS(in); (*in = 0.52 или 30 градусов*)
(*результат out=0.867*)
Вычисление тангенса. Аргумент in может быть целочисленным или вещественным. Результат out – real.
Примечание. Все тригонометрические функции работают с радианами.
Пример:
out:= TAN(in); (*in = 0.785 или 45 градусов*)
(*результат out=1*)
Вычисление арксинуса. Аргумент in и out – real.
Примечание. Все тригонометрические функции работают с радианами.
Пример:
out:= ASIN(in); (*in = 0.5*)
(*результат out=0.5235 или 30 градусов*)
Вычисление арккосинуса. Аргумент in и out – real.
Примечание. Все тригонометрические функции работают с радианами.
Пример:
out:= ACOS(in); (*in = 0.7*)
(*результат out=0.8 или 45 градусов*)
Вычисление арктангенса. Аргумент in и out – real.
Примечание. Все тригонометрические функции работают с радианами.
Пример:
out:= ATAN(in); (*in = 2*)
(*результат out=1.1 или 63 градуса*)
Вычисление числа в степени. Out=in^in1. In –может целочисленным или вещественным out – real.
Пример:
out:= EXPT(in,in1); (*in = 2, in1=3,3*)
(*эквивалентно*)
out:= in**in1;
(*результат out=9.89*)
где in – число возводимое в степень, in1 – степень.
Оператор И. Тип данных – bool, byte, word, dword, lword.
Пример:
out:=in AND in1;
В данном операторе допускается использование двух и более аргументов.
Оператор ИЛИ. Тип данных – bool, byte, word, dword, lword.
Пример:
out:=in OR in1;
В данном операторе допускается использование двух и более аргументов.
Оператор исключающее ИЛИ. Тип данных – bool, byte, word, dword, lword.
Пример:
out:=in XOR in1;
В данном операторе допускается использование двух и более аргументов.
Оператор НЕ. Тип данных – bool, byte, word, dword, lword.
Пример:
out:=NOT in;
Бинарный выбор.
Пример:
out:=SEL(usl,in1 ,in2);
out, in1,in2 – могут быть любого типа. Usl – тип bool. Оператор работает следующим образом, если usl - истина то функция возвращает in2, если usl – ложь, то функция возвращает in1.
Функция возвращает наибольшее из двух значений.
Пример:
out:=MAX(in,in1);
out, in, in1 – тип данных real или int.
В данном операторе допускается использование двух и более аргументов.
Функция возвращает наименьшее из двух значений.
Пример:
out:=MIN(in,in1);
out, in, in1 – тип данных числовой.
В данном операторе допускается использование двух и более аргументов.
MUX
Расширяемый мультиплексор.
Пример:
out:=MUX(0, in1,in2,in3);
out, in1, in2, in3 – тип данных числовой.
В данном операторе допускается использование двух и более аргументов.
Функция ограничения. Представляет собой комбинацию функций MIN и MAX.
Пример:
out:=LIMIT(niz,in,verh);
Где niz – нижнее значение, verh – верхнее значение, in – входная переменная. Если значение переменной ниже niz, то функция возвращает значение niz. Если значение переменной больше verh, то функция возвращает значение verh. Если значение переменной in находится между значениями niz и verh, функция возвращает значение in.
Тип данных in, niz, verh, out – real или int.
Возвращает длину строки.
Пример:
out:=LEN(IN:="MasterSCADA"); (*результат - 11*)
Возвращает левую часть строки заданной длины.
Пример:
str:=LEFT(IN:="MasterSCADA",L:=6);(*результат - Master *)
Возвращает правую часть строки заданной длины.
Пример:
str:=RIGHT(IN:="MasterSCADA",L:=5);(*результат - SCADA *)
Функция позволяет выделить фрагмент строки.
Пример:
str1:=MID(IN:="MasterSCADA",L:=4,P:=2);(*результат - aster *)
Функция объединения строки
Пример:
str_end:=CONCAT("Mas","terSCA","DA");(*результат - MasterSCADA *)
Функция позволяет вставить одну строку в определенную позицию другой строки.
Пример:
str_end:=INSERT(IN1:="MasDA",IN2:="terSCA",P:=3);(*результат - MasterSCADA *)
Функция удаления части строки.
Пример:
str_end:=DELETE(IN:="MasterSCADA",L:=3,P:=4);(*результат - MasSCADA *)
Функция заменяется часть подстроки, другой строкой с указанной позиции.
Пример:
str_end:=REPLACE(IN1:="MasterSCADA",IN2:="ttt",L:=4,P:=3);(*результат - MatttSCADA *)
Функция поиска подстроки в строке.
Пример1:
out:=FIND(IN1:="MasterSCADA",IN2:="ter"); (*результат - 4 *)
Пример2:
out:=FIND(IN1:="MasterSCADA",IN2:="tor"); (*результат - 0 *)
Функция преобразования вещественной переменную в целочисленную. При проведении операции происходит округление значения переменной по следующему правилу: если дробная часть составляет 0.5 и выше, то округление идет в большую сторону, если дробная часть меньше 0.5 то в меньшую сторону.
Пример:
out:=REAL_TO_INT(in); (*если in=1.5 - то out=2; если in=1.4 - то out=1*)
Функция преобразования переменной времени в вещественную. В результате преобразования на выходе формируется вещественное число, целая часть которого – количество дней прошедших с 1 января 1900 до преобразуемой даты плюс 1 день.
В дробной части находится отношение количества прошедших секунд с полуночи, к количеству секунд в сутках (86400 секунд).
Например, если текущее время 12:45:20, то в дробной части после преобразования будет число:
D=(12∙60∙60+45∙60+20)/86400=45920/86400=0.53148148
Если текущая дата 18 июля 2010 года, то тогда после преобразования на выходе будет число 40377.531148148
Пример:
out:=TIME_TO_REAL(in);
Функции для работы со временем.
ADD_TIME или ADD
Функция суммирует две переменные TIME.
var
in:TIME;
in1:TIME;
out:TIME;
end_var
out:=ADD_TIME(in,in1);
ADD_TOD_TIME или ADD
Функция прибавляет к переменной типа TOD (время) значение переменной типа TIME.
var
in:TOD;
in1:TIME;
out:TOD;
end_var
out:=ADD_TOD_TIME(in,in1);
ADD_DT_TIME или ADD
Функция прибавляет к переменной DT (дата и время) значение переменной TIME.
var
in:DT;
in1:TIME;
out:DT;
end_var
out:=ADD_DT_TIME(in,in1);
SUB_TIME или SUB
Функция вычисляет разность двух переменных TIME.
var
in:TIME;
in1:TIME;
out:TIME;
end_var
out:=SUB_TIME(in,in1);
SUB_DATE_DATE или SUB
Функция вычисляет разность двух переменных типа DATE, возвращаемое значение функции типа TIME.
var
in:DATE;
in1:DATE;
out:time;
end_var
out:=SUB_DATE_DATE(in,in1);
SUB_TOD_TIME или SUB
Функция вычитает из переменной тип TOD (время) значение переменной TIME.
var
in:TOD;
in1:TIME;
out:TOD;
end_var
out:=SUB_TOD_TIME(in,in1);
SUB_TOD_TOD или SUB
Функция вычисляет разность двух переменных TOD (время), результат функции типа TIME.
var
in:TOD;
in1:TOD;
out:TIME;
end_var
out:=SUB_TOD_TOD(in,in1);
SUB_DT_TIME или SUB
Функция вычитает из переменной DT, значение переменной TIME.
var
in:DT;
in1:TIME;
out:DT;
end_var
out:=SUB_DT_TIME(in,in1);
SUB_DT_DT или SUB
Функция вычисляет разность двух переменных DT, результат функции типа TIME.
var
in:DT;
in1:DT;
out:TIME;
end_var
out:=SUB_DT_DT(in,in1);
MULTIME или MUL
Функция умножает переменную типа TIME, на любую числовую переменную.
var
in:time;
in1:real;
out:TIME;
end_var
out:=MULTIME(in,in1);
DIVTIME или DIV
Функция делит переменную типа TIME, на любую числовую переменную.
var
in:time;
in1:real;
out:TIME;
end_var
out:=DIVTIME(in,in1);
CONCAT_DATE_TOD
Функция объединяет значение переменных DATE и TOD в одной переменную типа DT.
var
in1:Date;
in2:TOD;
out:DT;
end_var
out:=CONCAT_DATE_TOD(in1,in2);
SHL
Пример функции:
out:=SHL(in,n);
Функция выполняет побитный сдвиг влево операнда in, на количество бит равных n. Биты справа дополняются нулями. Переменные in и out должны быть типов WORD, DWORD, BYTE, переменная n – типа INT. При выполнении операции следует учитывать количество бит в переменной.
SHR
Пример функции
out:=SHR(in,n);
Функция выполняет побитный сдвиг вправо операнда in, на количество бит равных n. Биты справа дополняются нулями. Переменные in и out должны быть типов WORD, DWORD, BYTE, переменная n – типа INT. При выполнении операции следует учитывать количество бит в переменной.
ROL
Пример функции
out:=ROL(in,n);
Функция выполняет циклический сдвиг влево операнда in, на количество бит равных n. Младшие биты последовательно заполняются старшими. Переменные in и out должны быть типов WORD, DWORD, BYTE, переменная n – типа INT. При выполнении операции следует учитывать количество бит в переменной.
ROR
Пример функции
out:=ROR(in,n);
Функция выполняет циклический сдвиг вправо операнда in, на количество бит равных n. Старшие биты последовательно заполняются младшими. Переменные in и out должны быть типов WORD, DWORD, BYTE, переменная n – типа INT. При выполнении операции следует учитывать количество бит в переменной.
Ссылки: