Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
15
Добавлен:
31.08.2025
Размер:
5.84 Mб
Скачать

Приложение E: Краткий справочник по операторам и компонентам библиотек

Приложение E: Краткий справочник по операторам и компонентам библиотек

Приведенные ниже таблицы кратко представляют операторы CoDeSys и компоненты библиотек Standard.lib и Util.lib. Даны нотации для языков ST и IL. Для IL указаны допустимые модификаторы.

Обратите внимание, что для IL инструкций первый операнд должен быть загружен заранее (например, командой LD). Непосредственно в строке за «IL» командой вводятся второй и последующие (если они есть) операнды.

Столбец «Мод.» содержит допустимые IL модификаторы:

C Команда выполняется только в случае, если результат предыдущей операции TRUE.

Nдля JMPC, CALC, RETC: Команда выполняется только в случае, если результат предыдущей операции FALSE.

N прочие: отрицание операнда (не аккумулятора)

( Скобки: операторы, заключенные в скобки, выполняются в первую очередь, затем продолжается

обычный порядок выполнения.

Детальные описания даны в соответствующих приложениях выше.

Операторы CoDeSys:

ST

IL

Мод. Описание

'

 

 

Разграничение строк (т.е. '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

<Program name>

CAL prog1

CN

Вызов программы prog1

<Instance name>

CAL inst1

CN

Вызов экземпляра функционального блока inst1

<Fctname>(vx, vy,..)

<Fctname> vx, vy

CN

Вызов функции fctname передача параметров vx, vy

 

(

 

Результат вычислений в скобках используется как опе-

 

 

 

ранд.

 

)

 

Заканчивает вычисление в скобках.

AND

AND

N,(

Битовое AND

OR

OR

N,(

Битовое OR

XOR

XOR

N,(

Битовое исключающее OR

NOT

NOT

 

Битовое NOT

+

ADD

(

Сложение

-

SUB

(

Вычитание

*

MUL

(

Умножение

/

DIV

(

Деление

>

GT

(

Больше, чем

>=

GE

(

Больше или равно

 

 

 

 

 

CoDeSys V2.3

 

 

10-66

 

Приложение E: Краткий справочник по операторам и компонентам библиотек

=

<>

<=

<

MOD(in)

INDEXOF(in)

SIZEOF(in)

SHL(K,in)

SHR(K,in)

ROL(K,in)

ROR(K,in)

SEL(G,in0,in1)

MAX(in0,in1)

MIN(in0,in1)

LIMIT(MIN,in,Max)

MUX(K,in0,...in_n)

ADR(in)

ADRINST()

BITADR(in) BOOL_TO_<type>(in) <type>_TO_BOOL(in) INT_TO_<type>(in)

REAL_TO_<type>(in)

LREAL_TO_<type>(in)

TIME_TO_<type>(in)

TOD_TO_<type>(in)

DATE_TO_<type>(in)

DT_TO_<type>(in)

STRING_TO_<type>(in)

TRUNC(in)

ABS(in)

SQRT(in)

LN(in)

LOG(in)

EXP(in)

SIN(in)

COS(in)

TAN(in)

ASIN(in)

ACOS(in)

EQ

(

Равно

NE

(

Неравно

LE

(

Меньше или равно

LT

(

Меньше, чем

MOD

 

Остаток целочисленного деления

INDEXOF

 

Внутренний индекс POU in; [INT]

SIZEOF

 

Число байт, занимаемых in

SHL

 

Поразрядный сдвиг влево на K бит

SHR

 

Поразрядный сдвиг вправо на K бит

ROL

 

Циклический сдвиг влево на K бит

ROR

 

Циклический сдвиг вправо на K бит

SEL

 

Мультиплексор на 2 входа in0 (при G FALSE) и in1

 

 

(при G TRUE)

MAX

 

Возвращает наибольшее из 2х значений in0 и in1

MIN

 

Возвращает наименьшее из 2х значений in0 и in1

LIMIT

 

Ограничивает значение in в пределах от MIN до MAX

MUX

 

Мультиплексор выбирает K-тое значение из группы (от

 

 

in0 до In_n)

ADR

 

Адрес операнда в [DWORD]

ADRINST

 

Адрес экземпляра функционального блока, из которого

 

 

вызывается ADRINST.

BITADR

 

Битовое смещение операнда в [DWORD]

BOOL_TO_<type>

 

Преобразование типа из логического

<type>_TO_BOOL

 

Преобразование типа в логический

INT_TO_<type>

 

Преобразование значения операнда типа INT в другой

 

 

базовый тип

REAL_TO_<type>

 

Преобразование значения операнда типа REAL в дру-

 

 

гой базовый тип

LREAL_TO_<type>

 

Преобразование значения операнда типа LREAL в дру-

 

 

гой базовый тип

TIME_TO_<type>

 

Преобразование значения операнда типа TIME в другой

 

 

базовый тип

TOD_TO__<type>

 

Преобразование значения операнда типа TOD в другой

 

 

базовый тип

DATE_TO_<type>

 

Преобразование значения операнда типа DATE в дру-

 

 

гой базовый тип

DT_TO_<type>

 

Преобразование значения операнда типа DT в другой

 

 

базовый тип

STRING_TO_<type>

 

Преобразование текста строки операнда в другой базо-

 

 

вый тип. Строка должна содержать соответствующий

 

 

текст

TRUNC

 

Преобразование из REAL в INT

ABS

 

Абсолютное значение in

SQRT

 

Квадратный корень из in

LN

 

Натуральный логарифм из in

LOG

 

Десятичный логарифм из in

EXP

 

E в степени in

SIN

 

Синус in

COS

 

Косинус in

TAN

 

Тангенс in

ASIN

 

Арксинус in

ACOS

 

Арккосинус in

CoDeSys V2.3

10-67

Приложение E: Краткий справочник по операторам и компонентам библиотек

ATAN(in)

ATAN

Арктангенс in

EXPT(in,expt)

EXPT expt

Возведение в степень expt

Компоненты Standard.lib:

ST

IL

Описание

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

Заменить часть строки str1 с позиции pos на len символов из

 

'str2',len,pos

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

Макс., Мин., Среднее значения в INT формате

STATISTICS_REAL

Макс., Мин., Среднее значения в REAL формате

VARIANCE

Дисперсия

PD

ПД регулятор

PID

ПИД регулятор

BLINK

Генератор импульсов

FREQ_MEASURE

Частотомер

GEN

Функциональный генератор

 

 

CoDeSys V2.3

10-68

Приложение E: Краткий справочник по операторам и компонентам библиотек

CHARCURVE

Интерполятор

RAMP_INT

Ограничитель скорости изменения сигнала (INT)

RAMP_REAL

Ограничитель скорости изменения сигнала (REAL)

HYSTERESIS

Гистерезис

LIMITALARM

Компаратор

CoDeSys V2.3

10-69