Справочник
На данный момент реализация языка находиться на стадии разработки. Все реализованные операторы отмечены зеленым цветом. На данном этапе разработки поддержка ST позволяет создавать макросы на языке ST и использовать их на схемах FBD. Протестирована отладка ST программ, но находиться в доработке для использования в макросах ST. Возможности поддержки стандартной библиотеки ST на данный момент не доступны без реализоции функций и функциональных блоков. В альфа версии ST планируется реализовать функции, функциональные блоки и отладку по шагам для макросов ST.
Подсказки:
BYTE 0.0 – реализовано в версии v0.0
BYTE 0.1 – реализовано в версии v0.1
BYTE 0.2 – реализовано в версии v0.2
BYTE 0.3! – планируется реализовать в версии v0.3
BYTE ! – планируется реализовать, но версия не определена
BYTE X – не планируется
Типы
Целочисленные
Тип |
Нижний предел |
Верхний предел |
Размер памяти |
---|---|---|---|
BYTE 0.0 |
0 |
255 |
8 Bit |
WORD 0.0 |
0 |
65535 |
16 Bit |
DWORD 0.0 |
0 |
4294967295 |
32 Bit |
LWORD X |
0 |
64 Bit |
|
SINT 0.0 |
-128 |
127 |
8 Bit |
USINT 0.0 |
0 |
255 |
8 Bit |
INT 0.0 |
-32768 |
32767 |
16 Bit |
UINT 0.0 |
0 |
65535 |
16 Bit |
DINT 0.0 |
-2147483648 |
2147483647 |
32 Bit |
UDINT 0.0 |
0 |
4294967295 |
32 Bit |
LINT X |
64 Bit |
||
ULINT X |
64 Bit |
Вещественные
Тип |
Нижний предел |
Верхний предел |
Размер памяти |
---|---|---|---|
REAL 0.0 |
1.175494351e-38 |
3.402823466e+38 |
32 Bit |
LREAL 0.0 |
2.2250738585072014e-308 |
1.7976931348623158e+308 |
64 Bit |
Время и дата
Тип |
Описание |
---|---|
TIME 0.0 |
Представляет длительность интервалов времени в миллисекундах.
Максимальное значение для TIME типа TIME:
49d17h2m47s295ms (4194967295 ms)
|
TIME_OF_DAY (TOD) ! |
Содержит время суток, начиная с 0 часов (с точностью
до миллисекунд).
Диапазон значений TOD от: 00:00:00 до 23:59:59.999.
|
DATE ! |
Содержит календарную дату, начиная с 1 января 1970 года.
Диапазон значений от: 1970-00-00 до 2106-02-06.
|
DATE_AND_TIME (DT) ! |
Содержит время в секундах, начиная с 0 часов 1 января 1970 года.
Диапазон значений от: 1970-00-00-00:00:00 до 2106-02-06-06:28:15.
|
Другие типы
Тип |
Описание |
---|---|
BOOL 0.0 |
Булевый тип данных |
STRING X |
Максимальный размер строки определяет количество резервируемой памяти и
указывается при объявлении переменной.
Размер задается в круглых или квадратных скобках.
Если размер не указан, принимается размер по умолчанию - 80 символов.
Строковые функции способны обращаться со строками от 1 до 255 символов!
|
Операторы
Встроенные
Функция |
Описание |
---|---|
RETURN 0.0 |
Выход из программы и возврат к тому кто вызывал |
AND 0.0 |
Битовое AND |
OR 0.0 |
Битовое OR |
XOR 0.0 |
Битовое исключающее OR |
NOT 0.0 |
Битовое NOT |
+ 0.0 |
Сложение |
- 0.0 |
Вычитание |
* 0.0 |
Умножение |
/ 0.0 |
Деление |
> 0.0 |
Больше, чем |
>= 0.0 |
Больше или равно |
= 0.0 |
Равно |
<> 0.0 |
Неравно |
<= 0.0 |
Меньше или равно |
< 0.0 |
Меньше, чем |
MOD(in) 0.1 |
Остаток целочисленного деления |
INDEXOF(in) ! |
Внутренний индекс POU in; [INT] |
SIZEOF(in) 0.2 |
Число байт, занимаемых in |
SHL(K,in) 0.0 |
Поразрядный сдвиг влево на K бит |
SHR(K,in) 0.0 |
Поразрядный сдвиг вправо на K бит |
ROL(K,in) 0.0 |
Циклический сдвиг влево на K бит |
ROR(K,in) 0.0 |
Циклический сдвиг вправо на K бит |
SEL(G,in0,in1) 0.2 |
Мультиплексор на 2 входа in0 (при G FALSE) и in1 (при G TRUE) |
MAX(in0,in1) 0.1 |
Возвращает наибольшее из 2х значений in0 и in1 |
MIN(in0,in1) 0.1 |
Возвращает наименьшее из 2х значений in0 и in1 |
LIMIT(MIN,in,Max) 0.2 |
Ограничивает значение in в пределах от MIN до MAX |
MUX(K,in0,…in_n) ! |
Мультиплексор выбирает K-тое значение из группы (от in0 до In_n) |
ADR(in) ! |
Адрес операнда в [DWORD] |
ADRINST(in) ! |
Адрес экземпляра функционального блока, из которого вызывается
ADRINST.
|
BITADR(in) ! |
Битовое смещение операнда в [DWORD] |
BOOL_TO_(in) 0.2 |
Преобразование типа из логического |
_TO_BOOL(in) 0.2 |
Преобразование типа в логический |
INT_TO_(in) 0.2 |
Преобразование значения операнда типа INT в другой базовый тип |
REAL_TO_(in) 0.2 |
Преобразование значения операнда типа REAL в другой базовый тип |
LREAL_TO_(in) 0.2 |
Преобразование значения операнда типа LREAL в другой базовый тип |
TIME_TO_(in) 0.2 |
Преобразование значения операнда типа TIME в другой базовый тип |
TOD_TO_(in) ! |
Преобразование значения операнда типа TOD в другой базовый тип |
DATE_TO_(in) ! |
Преобразование значения операнда типа DATE в другой базовый тип |
DT_TO_(in) ! |
Преобразование значения операнда типа DT в другой базовый тип |
STRING_TO_(in) X |
Преобразование текста строки операнда в другой базовый тип.
Строка должна содержать соответствующий текст
|
TRUNC(in) 0.2 |
Преобразование из REAL в INT |
ABS(in) 0.1 |
Абсолютное значение in |
SQRT(in) 0.1 |
Квадратный корень из in |
LN(in) 0.0 |
Натуральный логарифм из in |
LOG(in) 0.1 |
Десятичный логарифм из in |
EXP(in) 0.0 |
E в степени in |
SIN(in) 0.0 |
Синус in |
COS(in) 0.0 |
Косинус in |
TAN(in) 0.0 |
Тангенс in |
ASIN(in) 0.0 |
Арксинус in |
ACOS(in) 0.0 |
Арккосинус in |
ATAN(in) 0.0 |
Арктангенс in |
EXPT(in,expt) 0.1 |
Возведение в степень expt |
IF 0.0 |
Условный оператор IF |
WHILE 0.0 |
Оператор цикла WHILE |
REPEAT 0.0 |
Оператор цикла REPEAT |
FOR 0.0 |
Оператор цикла FOR |
Компоненты Standard.lib
Функции
Функция |
Описание |
---|---|
LEN(in) X |
Длина строки in |
LEFT(str,size) X |
Левая значимая часть строки str из size символов |
RIGHT(str,size) X |
Правая значимая часть строки str из size символов |
MID(str,size,pos) X |
Часть строки str с позиции pos из size символов |
CONCAT(„str1“,“str2“) X |
Конкатенация (склеивание) 2х строк |
INSERT(„str1“,“str2“,pos) X |
Вставить строку str1 в str2 с позиции pos |
DELETE(„str1“,len,pos) X |
Удалить часть строки, len символов, с позиции pos |
REPLACE(„str1“,“str2“,len,pos) X |
Заменить часть строки str1 с позиции pos на len символов из str2 |
FIND(„str1“,“str2“) X |
Поиск подстроки str2 в str1 |
Функциональные блоки
Функциональный блок |
Описание |
---|---|
SR 0.0 |
Переключатель с доминантой включения |
RS 0.0 |
Переключатель с доминантой выключения |
SEMA 0.0 |
Семафор (interruptable) |
R_TRIG 0.0 |
Детектор переднего фронта импульса |
F_TRIG 0.0 |
Детектор заднего фронта импульса |
CTU 0.0 |
Инкрементный счетчик |
CTD 0.0 |
Декрементный счетчик |
CTUD 0.0 |
Реверсивный счетчик |
TP 0.0 |
Триггер |
TON 0.0 |
Таймер включения |
TOF 0.0 |
Таймер выключения |
RTC ! |
Часы |