|
Справка. Справочник по операторам и компонентам библиотек. Обзор Приведенные ниже таблицы кратко представляют операторы
Краткий справочник по операторам и компонентам библиотек. Обзор
Приведенные ниже таблицы кратко представляют операторы CoDeSys и компоненты библиотек Standard.lib и Util.lib. Даны нотации для языков ST и IL. Для IL указаны допустимые модификаторы.
Обратите внимание, что для IL инструкций первый операнд должен быть загружен заранее (например, командой LD). Непосредственно в строке за "IL" командой вводятся второй и последующие (если они есть) операнды.
Столбец "Мод." содержит допустимые IL модификаторы:
C
| Команда выполняется только в случае, если результат предыдущей операции TRUE.
| N
| для JMPC, CALC, RETC: Команда выполняется только в случае, если результат предыдущей операции FALSE.
| N
| прочие: отрицание операнда (не аккумулятора)
| (
| Скобки: операторы, заключенные в скобки, выполняются в первую очередь, затем продолжается обычный порядок выполнения.
| Детальные описания даны в соответствующих разделах.
Операторы CoDeSys:
ST
| LD
| Мод.
| Описание
| '
|
|
| Разграничение строк (т.е. 'string1')
| .. [ ]
|
|
| Задание индексов массива (т.е. ARRAY[0..3] OF INT)
| :
|
|
| Разделитель операнда и типа при объявлении (т.е. var1 : INT;)
| ;
|
|
| Конец инструкции (т.е. a:=var1;)
| ^
|
|
| Обращение через указатель (т.е. pointer1^)
|
| LD var1
| N
| Загрузить значение var1 а аккумулятор
| :=
| ST var1
| N
| Записать в var1 значение аккумулятора
|
| S boolvar
|
| Установка логического операнда boolvar в TRUE, если значение аккумулятора TRUE
|
| R boolvar
|
| Сброс логического операнда boolvar в FALSE, если значение аккумулятора TRUE
|
| JMP label
| CN
| Переход на метку label
|
| CAL prog1
| CN
| Вызов программы prog1
|
| CAL inst1
| CN
| Вызов экземпляра функционального блока inst1
| (vx, vy,..)
| vx, vy
| CN
| Вызов функции fctname передача параметров vx, vy
| RETURN
| RET
| CN
| Leave POU and go back to caller
|
| (
|
| Результат вычислений в скобках используется как операнд.
|
| )
|
| Заканчивает вычисление в скобках.
| AND
| AND
| N,(
| Битовое AND
| OR
| OR
| N,(
| Битовое OR
| XOR
| XOR
| N,(
| Битовое исключающее OR
| NOT
| NOT
|
| Битовое NOT
| +
| ADD
| (
| Сложение
| -
| SUB
| (
| Вычитание
| *
| MUL
| (
| Умножение
| /
| DIV
| (
| Деление
| >
| GT
| (
| Больше, чем
| >=
| GE
| (
| Больше или равно
| =
| EQ
| (
| Равно
| <>
| NE
| (
| Неравно
| <=
| LE
| (
| Меньше или равно
| <
| LT
| (
| Меньше, чем
| MOD(in)
| MOD
|
| Остаток целочисленного деления
| INDEXOF(in)
| INDEXOF
|
| Внутренний индекс POU in; [INT]
| SIZEOF(in)
| SIZEOF
|
| Число байт, занимаемых in
| SHL(K,in)
| SHL
|
| Поразрядный сдвиг влево на K бит
| SHR(K,in)
| SHR
|
| Поразрядный сдвиг вправо на K бит
| ROL(K,in)
| ROL
|
| Циклический сдвиг влево на K бит
| ROR(K,in)
| ROR
|
| Циклический сдвиг вправо на K бит
| SEL(G,in0,in1)
| SEL
|
| Мультиплексор на 2 входа in0 (при G FALSE) и in1 (при G TRUE)
| MAX(in0,in1)
| MAX
|
| Возвращает наибольшее из 2х значений in0 и in1
| MIN(in0,in1)
| MIN
|
| Возвращает наименьшее из 2х значений in0 и in1
| LIMIT(MIN,in,Max)
| LIMIT
|
| Ограничивает значение in в пределах от MIN до MAX
| MUX(K,in0,...in_n)
| MUX
|
| Мультиплексор выбирает K-тое значение из группы (от in0 до In_n)
| ADR(in)
| ADR
|
| Адрес операнда в [DWORD]
| ADRINST(in)
| ADRINST
|
| Адрес экземпляра функционального блока, из которого вызывается ADRINST.
| BITADR(in)
| BITADR
|
| Битовое смещение операнда в [DWORD]
| BOOL_TO_(in)
| BOOL_TO_
|
| Преобразование типа из логического
| _TO_BOOL(in)
| _TO_BOOL
|
| Преобразование типа в логический
| INT_TO_(in)
| INT_TO_
|
| Преобразование значения операнда типа INT в другой базовый тип
| REAL_TO_(in)
| REAL_TO_
|
| Преобразование значения операнда типа REAL в другой базовый тип
| LREAL_TO_(in)
| LREAL_TO_
|
| Преобразование значения операнда типа LREAL в другой базовый тип
| TIME_TO_(in)
| TIME_TO_
|
| Преобразование значения операнда типа TIME в другой базовый тип
| TOD_TO_(in)
| TOD_TO__
|
| Преобразование значения операнда типа TOD в другой базовый тип
| DATE_TO_(in)
| DATE_TO_
|
| Преобразование значения операнда типа DATE в другой базовый тип
| DT_TO_(in)
| DT_TO_
|
| Преобразование значения операнда типа DT в другой базовый тип
| STRING_TO_(in)
| STRING_TO_
|
| Преобразование текста строки операнда в другой базовый тип. Строка должна содержать соответствующий текст
| TRUNC(in)
| TRUNC
|
| Преобразование из REAL в INT
| ABS(in)
| ABS
|
| Абсолютное значение in
| SQRT(in)
| SQRT
|
| Квадратный корень из in
| LN(in)
| LN
|
| Натуральный логарифм из in
| LOG(in)
| LOG
|
| Десятичный логарифм из in
| EXP(in)
| EXP
|
| E в степени in
| SIN(in)
| SIN
|
| Синус in
| COS(in)
| COS
|
| Косинус in
| TAN(in)
| TAN
|
| Тангенс in
| ASIN(in)
| ASIN
|
| Арксинус in
| ACOS(in)
| ACOS
|
| Арккосинус in
| ATAN(in)
| ATAN
|
| Арктангенс in
| EXPT(in,expt)
| EXPT expt
|
| Возведение в степень expt
|
Компоненты Standard.lib:
ST
| LD
| Описание
| LEN(in)
| LEN
| Длина строки in
| LEFT(str,size)
| LEFT
| Левая значимая часть строки str из size символов
| RIGHT(str,size)
| RIGHT
| Правая значимая часть строки str из size символов
| MID(str,size,pos)
| MID
| Часть строки str с позиции pos из size символов
| CONCAT('str1','str2')
| CONCAT 'str2'
| Конкатенация (склеивание) 2х строк
| INSERT('str1','str2',pos)
| INSERT 'str2',p
| Вставить строку str1 в str2 с позиции pos
| DELETE('str1',len,pos)
| DELETE len,pos
| Удалить часть строки, len символов, с позиции pos
| REPLACE('str1','str2',len,pos)
| REPLACE 'str2',len,pos
| Заменить часть строки str1 с позиции pos на len символов из str2
| FIND('str1','str2')
| FIND 'str2'
| Поиск подстроки str2 в str1
| SR
| SR
| FB: Переключатель с доминантой включения
| RS
| RS
| FB: Переключатель с доминантой выключения
| SEMA
| SEMA
| FB: Семафор (interruptable)
| R_TRIG
| R_TRIG
| FB: детектор переднего фронта импульса
| F_TRIG
| F_TRIG
| FB: детектор заднего фронта импульса
| CTU
| CTU
| FB: Инкрементный счетчик
| CTD
| CTD
| FB: Декрементный счетчик
| CTUD
| CTUD
| FB: Реверсивный счетчик
| TP
| TP
| FB: Триггер
| TON
| TON
| FB: Таймер включения
| TOF
| TOF
| FB: Таймер выключения
| RTC
| RTC
| FB: Часы
|
Компоненты Util.lib:
BCD_TO_INT
| Преобразование значения операнда BCD в INT
| INT_TO_BCD
| Преобразование байта INT в BCD
| EXTRACT(in,n)
| Определяет значение n-го бита DWORD, результат типа BOOL
| PACK
| Упаковка значений 8 бит в байт
| PUTBIT
| Присвоить значение определенному биту в DWORD
| UNPACK
| Распаковка байта в 8 логических переменных
| DERIVATIVE
| Производная
| INTEGRAL
| Интеграл
| LIN_TRAFO
| Преобразование REAL значений
| STATISTICS_INT
| STATISTICS_INT Макс., Мин., Среднее значения в INT формате
| STATISTICS_REAL
| Макс., Мин., Среднее значения в REAL формате
| VARIANCE
| Дисперсия
| PD
| ПД регулятор
| PID
| ПИД регулятор
| BLINK
| Генератор импульсов
| FREQ_MEASURE
| Частотомер
| GEN
| Функциональный генератор
| CHARCURVE
| Интерполятор
| RAMP_INT
| Ограничитель скорости изменения сигнала (INT)
| RAMP_REAL
| Ограничитель скорости изменения сигнала (REAL)
| HYSTERESIS
| Гистерезис
| LIMITALARM
| Компаратор
| |
|
|