- Введение
- Продукция
- Маркировка
- Функции
- Руководство пользователя
- О документации
- Меры безопасности
- Индикация
- Максимальная конфигурация
- CAN-топология
- Подключение CAN-шины
- Разъемы и провода
- Монтаж модулей
- Общие правила и нормы эксплуатации
- Технические характеристики
- Условия эксплуатации
- Использование по назначению
- Маркировка
- Техническое обслуживание
- Транспортирование и хранение
- Упаковка
- Гарантийные обязательства
- Обновление
- Платформа CAN bp
- CANopen
- ISOBUS (ISO 11783)
- Решения
- Параметризация
- Программирование
- Литература и источники
- Образование
- Дополнительная информация
Описание библиотеки функций и функциональных блоков¶
Функции и функциональные блоки представляют собой предопределённые элементы, которые могут быть использованы при написании алгоритмов и логики программных модулей типа «Функциональный блок» и «Программа», как на текстовых, так и на графических языках стандарта IEC 61131-3.
Данные элементы имеют параметры на входе и на выходе. Как правило, каждый параметр имеет имя и своё назначение.
Стандартные функциональные блоки¶
Бистабильный SR-триггер
Данный функциональный блок представляет собой бистабильный SR-триггер, с доминирующим входом S (Set). Выход Q1 становится «1», когда вход S1 становится «1». Это состояние сохраняется, даже если S1 возвращается обратно в «0». Выход Q1 возвращается в «0», когда вход R становится «1». Если входы S1 и R находятся в «1» одновременно, доминирующий вход S1 установит выход Q1 в «1». Когда функциональный блок вызывается первый раз, начальное состояние Q1 это «0».
Бистабильный RS-триггер
Данный функциональный блок представляет собой бистабильный RS-триггер, с доминирующим входом R (Reset). Выход Q1 становится «1», когда вход S становится «1». Это состояние сохраняется, даже если S возвращается обратно в «0». Выход Q1 возвращается в «0», когда вход R1 становится «1». Если входы S и R1 находятся в «1» одновременно, доминирующий вход R1 установит выход Q1 в «0». Когда функциональный блок вызывается первый раз, начальное состояние Q1 это «0».
SEMA - Семафор
Данный функциональный блок представляет собой семафор, определяющий механизм, позволяющий элементам программы иметь взаимоисключающий доступ к определенным ресурсам.
R_TRIG - Индикатор нарастания фронта
Данный функциональный блок представляет собой индикатор нарастания фронта, который генерирует на выходе одиночный импульс при нарастании фронта сигнала. Выход Q становится «1», если происходит переход из «0» в «1» на входе CLK . Выход остается в состоянии «1» от одного выполнения блока до следующего (один цикл); затем выход возвращается в «0».
F_TRIG - Индикатор спада фронта
Данный функциональный блок представляет собой индикатор спада фронта, который генерирует на выходе одиночный импульс при спаде фронта сигнала.
Выход Q становится «1», если происходит переход из «1» в «0» на входе CLK . Выход будет оставаться в состоянии «1» от одного выполнения блока до следующего; затем выход возвращается в «0».
CTU - инкрементный счётчик
Данный функциональный блок представляет собой инкрементный счётчик. Сигнал «1» на входе R вызывает присваивание значения «0» выходу CV . При каждом переходе из «0» в «1» на входе CU значение CV увеличивается на 1. Когда CV >= PV, выход Q устанавливается в «1».
Примечание: Счетчик работает только до достижения максимального значения используемого типа данных. Переполнения не происходит.
Входы CU, RESET и выход Q типа BOOL, вход PV и выход CV типа WORD.
По каждому фронту на входе CU (переход из FALSE в TRUE) выход CV увеличивается на 1. Выход Q устанавливается в TRUE, когда счетчик достигнет значения заданного PV. Счетчик CV сбрасывается в 0 по входу RESET = TRUE.
CTD - декрементный счётчик
Данный функциональный блок представляет собой декрементный счётчик. Сигнал «1» на входе LD вызывает присваивание значения на входе PV выходу CV . При каждом переходе из «0» в «1» на входе CD значение CV уменьшается на 1.
Когда CV <= 0, выход Q принимает значение «1».
Примечание: Счетчик работает только до достижения минимального значения
используемого типа данных. Переполнения не происходит.
CTUD - реверсивный счётчик
Данный функциональный блок представляет собой реверсивный счётчик. Сигнал «1» на входе R вызывает присваивание значения «0» выходу CV . Сигнал «1» на входе LD вызывает присваивание значения на входе PV выходу CV . При каждом переходе из «0» в «1» на входе CU значение CV увеличивается на 1. При каждом переходе из «0» в «1» на входе CD значение CV уменьшается на 1.
Если сигнал «1» приходит одновременно на входы R и LD, вход R обрабатывается первым.
Когда CV >= PV, выход QU имеет значение «1».
Когда CV <= 0, выход QD принимает значение «1».
Примечание: Вычитающий счетчик работает только до достижения минимального значения используемого типа данных, суммирующий счетчик работает только до достижения максимального значения используемого типа данных. Переполнения не происходит.
TP - повторитель импульсов
Данный функциональный блок представляет собой повторитель импульсов и используется для генерирования импульса с заданной продолжительностью. Если IN становится «1», Q становится «1», и начинается отсчет внутреннего времени (ET). Если внутреннее время достигает значения PT, Q становится «0» (независимо от IN). Отсчет внутреннего времени останавливается/сбрасывается, если IN становится «0». Если внутреннее время не достигло значения PT, импульс IN не влияет на внутреннее время. Если внутреннее время достигло значения PT, и IN равен «0», отсчет внутреннего времени останавливается/сбрасывается, и Q становится «0».
TON - таймер с задержкой включения
Данный функциональный блок представляет собой таймер с задержкой включения. Он запускается, когда состояние сигнала на входе меняется от 0 к 1 и устанавливает на выходе 1 по истечении заданного времени.
Если IN становится «1», запускается отсчет внутреннего времени (ET). Если внутреннее время достигает значения PT, Q становится «1». Если IN становится «0», Q становится «0», а подсчет внутреннего времени останавливается/сбрасывается. Если IN становится «0» до того, как внутреннее время достигло значения PT, подсчет внутреннего времени останавливается/сбрасывается, а выход Q не устанавливается в «0».
TOF - таймер с задержкой отключения
Данный функциональный блок представляет собой таймер с задержкой отключения. Он запускается, когда состояние сигнала на входе меняется от 1 к 0 и устанавливает на выходе 0 по истечении заданного времени.
Если IN становится «1», Q становится «1».
Если IN становится «0», запускается отсчет внутреннего времени (ET).
Если внутреннее время достигает значения PT, Q становится «0».
Если IN становится «1», Q становится «1», а подсчет внутреннего времени останавливается/сбрасывается.
Если IN становится «1» до того, как внутреннее время достигло значения PT, подсчет внутреннего времени останавливается/сбрасывается, а выход Q не устанавливается в «0».
Дополнительные функциональные блоки¶
RTC - часы реального времени
Данный функциональный блок представляет собой часы реального времени и имеет много вариантов использования, включая добавление временных отметок, для установки даты и времени в формируемых отчетах, в аварийных сообщениях и т.д.
Вход PDT (Preset DT) предназначен для установки времени. Часы начинают отсчет времени от значения PDT. Выход Q (BOOL) повторят значение EN. Выход CDT (Current DT) дает текущее значение даты и времени.
INTEGRAL - Интеграл
Функциональный блок интеграл интегрирует входное значение XIN по времени.
DERIVATIVE - Производная
Функциональный блок производная выдаёт значение XOUT пропорционально скорости изменения входного параметра XIN.
PID - Пропорционально-интегрально-дифференциальный регулятор
Данный функциональный блок представляет собой устройство в цепи обратной связи, используемое в системах автоматического управления для формирования управляющего сигнала. ПИД-регулятор формирует управляющий сигнал, являющийся суммой трёх слагаемых, первое из которых пропорционально входному сигналу, второе - интеграл входного сигнала, третье - производная входного сигнала.
HYSTERESIS - гистерезис
Функциональный блок гистерезис предоставляет выходное гистерезисное булевское значение, которое определяется разницей вводных параметров XIN1 и XIN2 (типа REAL с плавающей точкой).
Числовые операции¶
ABS - модуль числа
Данная функция возвращает в OUT модуль входного числа IN.
SQRT - квадратный корень
Данная функция возвращает в OUT квадратный корень входного числа IN.
LN - натуральный логарифм
Данная функция возвращает в OUT значение натурального логарифма от IN.
LOG - логарифм по основанию 10
Данная функция возвращает в OUT значение логарифма по основанию 10 от IN.
EXP - возведение в степень экспоненты
Данная функция возвращает в OUT значение экспоненты, возведённой в степень IN.
SIN - синус
Данная функция возвращает в OUT значение синуса IN.
COS - косинус
Данная функция возвращает в OUT значение косинуса IN.
TAN - тангенс
Данная функция возвращает в OUT значение тангенса IN.
ASIN - арксинус
Данный функциональный блок возвращает в OUT значение арксинуса IN.
ACOS - арккосинус
Данная функция возвращает в OUT значение арккосинуса IN.
ATAN - арктангенс
Данная функция возвращает в OUT значение арктангенса IN.
Арифметические операции
ADD - сложение
Данная функция возвращает в OUT результат сложения IN1 и IN2.
MUL - умножение
Данная функция возвращает в OUT результат умножения IN1 и IN2.
SUB - вычитание
Данная функция возвращает в OUT результат вычитания из IN1 значения IN2.
DIV - деление
Данная функция возвращает в OUT результат деления IN1 на IN2.
MOD - остаток от деления
Данная функция возвращает в OUT остаток от деления IN1 на IN2.
EXPT - возведение в степень
Данная функция возвращает в OUT значение IN1 возведённое в степень IN2.
MOVE - присвоение
Данная функция возвращает в OUT значение IN.
Временные операции¶
ADD_TIME - сложение переменных типа TIME
Данная функция складывает входные значения IN(k) типа TIME и возвращает результат в OUT типа TIME. Количество входов IN(n) изменяемое - от 2 до 20. По умолчанию 2.
ADD_TOD_TIME - сложение времени дня TOD с интервалом времени TIME
Данная функция складывает входную переменную IN1 типа TOD (TIME_OF_DAY) с переменной IN2 типа TIME. Возвращаемая величина OUT имеет тип TIME_OF_DAY.
ADD_DT_TIME - прибавление промежутка времени TIME к моменту времени DT
Данная функция ADD_DT_TIME прибавляет промежуток времени (формат TIME) к моменту времени (формат DT) и поставляет в качестве результата новый момент времени (формат DT). Момент времени (параметр T) должен лежать в диапазоне от DT#1990-01-01-00:00:00.000 до DT#2089-12-31-23:59:59.999.
Функция не выполняет входной проверки. Если результат сложения не лежит внутри допустимого диапазона, то результат ограничивается соответствующим значением и бит двоичного результата (BR) слова состояния устанавливается в «0».
Для входного параметра Т и выходного параметра можно ставить в соответствие только символически определенную переменную.
MULTIME - умножение времени TIME на число
Данная функция выполняет умножение входного значения IN1 типа TIME на число IN2 типа ANY_NUM и возвращает результат в OUT типа TIME.
SUB_TIME - разность двух значений типа TIME
Данная функция вычитает из входного значения IN1 типа TIME значение на входе IN2 типа TIME и возвращает результат в OUT типа TIME.
SUB_DATE_DATE - разность двух значений типа DATE
Данная функция вычитает из входного значения IN1 типа DATE входное значение IN2 типа DATE и возвращает в OUT их разницу типа TIME.
SUB_TOD_TIME - вычитание из времени дня TOD интервала времени TIME
Данная функция вычитает из входного значения IN1 типа TOD (TIME_OF_DAY) входное значение IN2 типа TIME и возвращает результат в OUT типа TIME_OF_DAY.
SUB_DT_TIME - вычитание из момента времени DT промежутка времени TIME
Данная функция вычитает промежуток времени (формат TIME) из момента времени (формат DT) и поставляет в качестве результата новый момент времени (формат DT). Момент времени (параметр T) должен лежать в диапазоне от DT#1990-01-01-00:00:00.000 до DT#2089-12- 31-23:59:59.999. Функция не выполняет входной проверки. Если результат вычитания не лежит внутри допустимого диапазона, то результат ограничивается соответствующим значением и бит двоичного результата (BR) слова состояния устанавливается в «0».
Для входного параметра Т и выходного параметра можно ставить в соответствие только символически определенную переменную.
DIVTIME - деление времени TIME на число
Данная функция выполняет деление входного значения IN1 типа TIME на число IN2 типа ANY_NUM и возвращает результат в OUT типа TIME.
Операции смещения бит
SHL - арифметический сдвиг влево
Данная функция возвращает в OUT арифметический сдвиг аргумента IN на N бит влево с заполнением битов справа нулями.
SHR - арифметический сдвиг вправо
Данная функция возвращает в OUT арифметический сдвиг аргумента IN на N бит вправо с заполнением битов слева нулями.
ROR - циклический сдвиг направо
Данная функция возвращает в OUT циклический сдвиг аргумента IN на N бит влево.
ROL - циклический сдвиг влево
Данная функция возвращает в OUT циклический сдвиг аргумента IN на N бит вправо.
Побитовые операции¶
AND - побитовое И
Данный функциональный блок представляет собой организацию «логического И» для всех входных аргументов IN1…INn.
OR - побитовое ИЛИ
Данная функция представляет собой организацию «логического ИЛИ» для всех входных аргументов IN1…INn.
XOR - побитовое исключающее ИЛИ
Данная функция представляет собой организацию «логического исключающего ИЛИ» для всех входных аргументов IN1…INn.
NOT - побитовая инверсия
Данная функция представляет собой организацию «логической инверсии» для входного аргумента IN.
Операции выбора
SEL - выбор из двух значений
Данная функция возвращает в OUT один из двух аргументов IN1 или IN2 в зависимости от значения аргумента G. Если G = 0, то OUT равно Х1, иначе - OUT равно X2.
MAX - максимум
Данная функция возвращает в OUT максимум из входных аргументов IN1 и IN2.
MIN - минимум
Данная функция возвращает в OUT минимум из входных аргументов IN1 и IN2.
LIMIT - ограничитель значения
Данная функция возвращает в OUT значение входного аргумента IN, в случае превышения им значения MX - в OUT возвращается MX, в случае если IN меньше MN - в OUT возвращается MN.
MUX - Мультиплексор (выбор 1 из N)
Данная функция возвращает в OUT значение на входе IN(K), в зависимости от входного K. Количество входов IN:sub:(n) изменяемое - от 2 до 20. По умолчанию 2.
Операции сравнения¶
GT - больше чем
Данная функция сравнивает все входные аргументы и выдаёт на выходе OUT значение True, если выполнится следующее условие: (IN1 > IN2) & (IN2 > IN3) & … (INn-1 > INn), в противном случае в OUT выдаётся False. Количество входов IN(n) изменяемое - от 2 до 20. По умолчанию 2.
GE - больше чем или равно
Данная функция сравнивает все входные аргументы и выдаёт на выходе OUT значение True, если выполнится следующее условие: (IN1 >= IN2) & (IN2 >= IN3) & … (INn-1 >= INn), в противном случае в OUT выдаётся False. Количество входов IN(n) изменяемое - от 2 до 20. По умолчанию 2.
EQ - равенство
Данная функция сравнивает все входные аргументы и выдаёт на выходе OUT значение True, если выполнится следующее условие: (IN1 = IN2) & (IN2 = IN3) & … (INn-1 = INn), в противном случае в OUT выдаётся False. Количество входов IN(n) изменяемое - от 2 до 20. По умолчанию 2.
LT - меньше чем
Данная функция сравнивает все входные аргументы и выдаёт на выходе OUT значение True, если выполнится следующее условие: (IN1 < IN2) & (IN2 < IN3) & … (INn-1 < INn), в противном случае в OUT выдаётся False. Количество входов IN(n) изменяемое - от 2 до 20. По умолчанию 2.
LE - меньше чем или равно
Данная функция сравнивает все входные аргументы и выдаёт на выходе OUT значение True, если выполнится следующее условие: (IN1 <= IN2) & (IN2 <= IN3) & … (INn-1 <= INn), в противном случае в OUT выдаётся False. Количество входов IN(n) изменяемое - от 2 до 20. По умолчанию 2.
NE - не равно
Данная функция сравнивает все входные аргументы и выдаёт на выходе OUT значение True, если выполнится следующее условие: (IN1 <> IN2) & (IN2 <> IN3) & … (INn-1 <> INn), в противном случае в OUT выдаётся False. Количество входов IN(n) изменяемое - от 2 до 20. По умолчанию 2.
Строковые операции с переменными типа STRING¶
LEN - длина строки
Данная функция возвращает в OUT длину строки IN. Входному параметру можно ставить в соответствие только символически определенную переменную.
LEFT - левая часть строки
Данная функция возвращает в OUT из строки IN первые L символов. Если L больше, чем текущая длина переменной типа STRING, то возвращается входное значение. При L = 0 и при пустой строке в качестве входного значения возвращается пустая строка. Если число L отрицательно, то выводится пустая строка. Параметру IN и возвращаемому значению можно ставить в соответствие только символически определенную переменную.
RIGHT - правая часть строки
Данная функция возвращает в OUT из строки IN последние L символов. Если L больше, чем текущая длина переменной STRING, то возвращается входное значение. При L = 0 и при пустой строке в качестве входного значения возвращается пустая строка. Если число L отрицательно, то выводится пустая строка. Параметру IN и возвращаемому значению можно ставить в соответствие только символически определенную переменную.
MID - середина строки
Данная функция возвращает в OUT из строки IN L-символов, начиная с позиции P. Если сумма L и (P-1) превосходит текущую длину переменной типа STRING, то возвращается строка символов, начиная с P-го символа входной строки до ее конца. Во всех остальных случаях (P находится вне текущей длины, P и/или L равны нулю или отрицательны) выводится пустая строка. Параметру IN и возвращаемому значению можно ставить в соответствие только символически определенную переменную.
CONCAT - объединение двух переменных STRING
Данная функция возвращает в OUT объединение (конкатенацию) строк IN1 и IN2.
CONCAT_DAT_TOD - объединение (конкатенация) времени
Данная функция возвращает в OUT типа DT конкатенацию входных значений типов DATE и TOD, соответственно IN1 и IN2.
INSERT - вставка в переменной STRING
Данная функция возвращает в OUT строку IN1, в которую вставлена строка IN2, начиная с позиции P. Если P равно нулю, то вторая строка символов вставляется перед первой строкой символов. Если P больше, чем текущая длина первой строки символов, то вторая строка символов присоединяется к первой. Если P отрицательно, то выводится пустая строка. Входным параметрам IN1 и IN2 и выходному параметру можно ставить в соответствие только символически определенную переменную.
DELETE - удаление в переменной STRING
Данная функция возвращает в OUT строку IN1, в которой удалено L символов, начиная с позиции P. Если L и/или P равны нулю или P больше, чем текущая длина входной строки, то возвращается входная строка. Если сумма L и P больше, чем входная строка символов, то строка символов удаляется до конца. Если L и/или P имеют отрицательное значение, то выводится пустая. Входному параметру IN и выходному параметру можно ставить в соответствие только символически определенную переменную.
REPLACE - замена в переменной STRING
Данная функция возвращает в OUT строку IN1, в которой символы, начиная с позиции P, заменены L первыми символами строки IN2. Если L равно нулю, то возвращается первая строка символов. Если P равно нулю или единице, то замена происходит, начиная с 1-го символа (включительно). Если P лежит вне первой строки символов, то вторая строка присоединяется к первой строке. Если L и/или P отрицательны, то возвращается пустая строка. Входным параметрам IN1 и IN2 и выходному параметру можно ставить в соответствие только символически определенную переменную.
FIND - поиск в переменной STRING
Данная функция возвращает в OUT номер позиции, в которой находится строка IN2 в строке IN1. Поиск начинается слева, сообщается о первом появлении строки символов. Если вторая строка символов не содержится в первой, то возвращается нуль. Входным параметрам IN1 и IN2 можно ставить в соответствие только символически определенную переменную.