Справочник¶
Содержание:
На данный момент реализация языка находиться на стадии разработки. Все реализованные операторы отмечены зеленым цветом. На данном этапе разработки поддержка 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 ! | Часы |