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