Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Функции и функциональные блоки




В разделе кратко описаны некоторые простейшие FFB, доступные в библиотеке IEC. Для удобства эти FFB разбиты на группы. В имени FFB часто присутствует тип данных, который должен стоять вместо «***» (например, ADD_REAL). Более полно FFB описаны в [1].

 

Группа элементарных функций «Arithmetic» - арифметика

В этой группе представлены EF, выполняющие арифметические операции (табл. 2.1). Типы данных на входах (IN) и выходе (OUT) должны быть одинаковыми. Некоторые EF допускают расширение количества входов до 32.

 

Таблица 2.1

Группа «Arithmetic»

Имя функции Тип данных Действие Примечание
ADD_*** ANY_NUM, TIME Сложение OUT=IN1+IN2+… Количество входов – до 32 для ANY_NUM
DIV_*** ANY_NUM Деление OUT:=IN1/IN2 Для ANY_INT – целочисленное деление
MOD_*** ANY_INT Остаток от целочисленного деления  
MOVE ANY OUT=IN  

 

Окончание таблицы 2.1

Имя функции Тип данных Действие Примечание
MUL_*** ANY_NUM Умножение OUT=IN1*IN2*… Количество входов – до 32
SUB_*** ANY_NUM, TIME вычитание OUT=IN1–IN2  
TIME_MUL_*** IN1: TIME IN2: ANY_NUM OUT: TIME умножение OUT=IN1*IN2  
TIME_DIV_*** IN1: TIME IN2: ANY_NUM OUT: TIME деление OUT=IN1/IN2  

Группа элементарных функциональных блока «Bistable» – триггеры

В группу входят два триггера: RS (с доминирующим входом «Сброс» – R1) и SR (с доминирующим входом «Установка» – S1). Оба триггера имеют выход Q1. Разрешенный тип данных на входах и выходах – BOOL.

Ниже приведена таблица переходов RS и SR триггеров. В таблице «~» означает лог. 0 или лог. 1.

Таблица 2.2
Таблицы переходов RS и SR триггеров
Q1t-1 ® Q1t+1 R1t St   Q1t-1 ® Q1t+1 Rt S1t
0 ® 0 ~ 0 ® 0 ~
0 ®1 0 ®1 ~
1 ® 1 ~ 1 ® 1 ~
1 ® 0 ~ 1 ® 0

 

 

Группа элементарных функций «Comparison» - сравнение

В группу входят EF, выполняющие функцию сравнения входных данных типа ANY_ELEM (табл. 2.3). Количество входов в EF может варьироваться от 2 до 32. Если условие сравнения выполняется, то выходная переменная (типа BOOL) принимает значение лог. 1, иначе – лог. 0.

  Таблица 2.3
Группа «Comparison»
Имя функции Условие сравнения Описание функции сравнения
EQ_*** = OUT=1, если IN1=IN2 и IN2=IN3 и IN3=IN4…
GE_*** ³ OUT=1, если IN1³IN2 и IN2³IN3 и IN3³IN4…
LE_*** £ OUT=1, если IN1£IN2 и IN2£IN3 и IN3£IN4…
GT_*** > OUT=1, если IN1>IN2 и IN2>IN3 и IN3>IN4…
LT_*** < OUT=1, если IN1<IN2 и IN2<IN3 и IN3<IN4…
NE_*** ¹ OUT=1, если IN1¹IN2 и IN2¹IN3 и IN3¹IN4…
       

 

Группа элементарных функций «Converter» - преобразование типа данных

В группу входят EF (табл. 2.4), преобразующие тип данных.

При преобразовании типов данных выполняются условия:

- если входные данные имеет большую разрядность чем выходные, то значение выходных данных определяется младшими разрядами входных данных;

- если входные данные имеет меньшую разрядность чем выходные, то входные данные передаются в младшие разряды выходных данных, а старшие разряды обнуляются;

- при преобразовании знаковых переменных в незнаковые знак теряется.

На рис. 2.3 приведен пример преобразования переменной Sensor_Temperature типа UDINT в переменную Temperature типа REAL с помощью функции UDINT_TO_REAL:

 
 

Таблица 2.4
Группа «Converter»
Имя функции Действие
BOOL_TO_*** Преобразование данных типа BOOL в данные типа ANY_NUM, BYTE или WORD
BYTE_TO_*** Преобразование данных типа BYTE в данные типа ANY_NUM, BOOL или WORD
DINT_TO_*** Преобразование данных типа DINT в данные типа INT, ANY_BIT, UDINT, UINT, REAL, TIME
INT_TO_*** Преобразование данных типа INT в данные типа, ANY_BIT, DINT, UDINT, UINT, REAL или TIME..
REAL_TO_*** Преобразование данных типа REAL в данные типа ANY_BIT или ANY_INT, или TIME.
REAL_TRUNC_TO_*** Преобразование данных типа REAL в данные типа ANY_INT с округлением в сторону нуля.
TIME_TO_*** Преобразование данных типа TIME в данные типа ANY_BIT или ANY_NUM
UDINT_TO_*** Преобразование данных типа UDINT в данные типа ANY_BIT, DINT, INT, UINT, REAL, TIME
UINT_TO_*** Преобразование данных типа UINT в данные типа ANY_BIT, DINT, INT, UDINT, REAL или TIME
WORD_TO_*** Преобразование данных типа WORD в данные типа ANY_NUM, BOOL, BYTE, или TIME.

 

Группа элементарных функциональных блоков «Counter» - счетчики

В группу входят суммирующий – CTU (Up counter), вычитающий – CTD (Down counter) и реверсивный – CTUD (Up/Down counter) счетчики.

В суммирующем счетчике (рис. 2.4) для обнуления на вход R необходимо подать лог. 1. Изменение переменной на входе CD с лог. 0 к лог. 1 приводит к увеличению содержимого счетчика (выход CV) на 1. Выход Q становится равным лог. 1, если CV становится больше PV.

В вычитающем счетчике (рис. 2.5) при подаче на вход LD лог. 1 в счетчик (выход CV) записывается начальное значение, подаваемое на вход PV. Изменение переменной на входе CD с лог. 0 к лог. 1 приводит к уменьшению содержимого счетчика на 1. Выход Q становится равен лог. 1, если CV<=0.


В реверсивном счётчике (рис. 2.6) для обнуления на вход R необходимо подать лог. 1. При подаче на вход LD лог 1 в счетчик записывается начальное значение, подаваемое на вход PV. При одновременном приходе лог. 1 на входы LD и R, преимущество имеет вход R. Изменение значения на входе CU с лог. 0 к лог. 1 приводит к увеличению содержимого счетчика на 1. Такое же изменение на входе CD приводит к уменьшению содержимого счетчика. При одновременном изменении на входах CU и CD, вход CU имеет преимущество.

Выход CV предназначен для считывания содержимого счетчика. Выход QU=1, если CV>=PV. Выход QD=1, если CV<=0.

Группа элементарных функциональных блоков «Edge Detection» – обнаружение фронта/среза

В группу входят два EFB – R_TRIG и F_TRIG, имеющие вход CLK и выход Q. В R_TRIG на выходе Q появляется лог. 1 по фронту (переходу из лог. 0 к лог 1) на входе CLK. В F_TRIG на выходе Q появляется лог. 1 по срезу (переходу из лог. 1 к лог. 0) на входе CLK.

 

Группа элементарных функций «Logic» - логика

В группу входят EF, выполняющие поразрядные логические операции над данными типа ANY_BIT (табл. 2.5). Типы данных на входах и выходе должны быть одинаковыми.

 

  Таблица 2.5
Группа «Logic»
  Действие Примечание
NOT_*** Поразрядное логическое отрицание  
AND_*** Поразрядное логическое умножение Количество входов – до 32
OR_*** Поразрядное логическое сложение Количество входов – до 32
XOR_*** Поразрядное сложение по модулю 2 Количество входов – до 32
ROL_*** Циклический сдвиг влево Количество разрядов для сдвига задается на входе N
ROR_*** Циклический сдвиг вправо Количество разрядов для сдвига задается на входе N
SHL_*** Сдвиг влево Количество разрядов для сдвига задается на входе N
SHR_*** Сдвиг вправо Количество разрядов для сдвига задается на входе N
       

 

Группа элементарных функций «Numerical» - вычисление функций

В группу входят EF, предназначенные для вычисления:

- тригонометрических функций – SIN_REAL, COS_REAL, TAN_REAL, ASIN_REAL, ACOS_REAL и ATAN_REAL;

- квадратного корня – SQRT_REAL);

- натурального и десятичного логарифмов – LN_REAL и LOG_REAL;

- экспоненты – EXP_REAL;

(для перечисленных EF входные и выходные переменные имеют тип – REAL);

- возведения в степень – ***_EXPT_REAL;

- модуля – ABS_***.

Здесь «***» - переменная типа ANY_NUM.

 

Группа элементарных функций «Selection» - селекция

В EF группы «Selection» (табл. 2.6) входные и выходные данные могут быть любого типа (ANY_ELEM).

 

  Таблица 2.6
Группа «Selection»
Имя функции Действие Примечание
LIMIT_*** Передает на выход входное значение (вход IN), ограниченное сверху (вход MX) и снизу (вход MN)  
MAX_*** Передает на выход максимальное значение из нескольких входных значений Количество входов – до 32
MIN_*** Передает на выход минимальное значение из нескольких входных значений Количество входов – до 32
MUX_*** Мультиплексор: соединяет заданный вход с выходом в зависимости от значения переменой на входе К Количество входов – до 32 типа ANY, выбор входа переменной типа ANY_INT
SEL Мультиплексор на два входа IN0 и IN1 типа ANY с переключателем логического типа  
       

 

Пример: Для элементарной функции LIMIT_REAL (рис. 2.7) выполняется:

P=SENSOR_P, если 4.0 ≤ SENSOR_P ≤ 5.0;

Р=4.0, если P < 4.0;

Р=5.0, если P > 5.0.

 

Группа элементарных функциональных блоков «Timer» - таймер

В эту группу входят ЕFB TOF, TON и TP.

Во всех таймерах вход PT предназначен для задания величины выдержки времени (переменная типа TIME), вход IN – для пуска таймера (переменная типа BOOL). На выходе Q (переменная типа BOOL) формируется лог. 1 в момент времени, определяемый типом таймера, а на выходе ET (переменная типа TIME) формируется код текущего времени с начала пуска таймера.

На рис. 2.8 приведены временные диаграммы функционирования таймера TOF.


В FFB TOF (рис. 2.8) в исходном состоянии IN=0 и Q=0. При изменении переменной на входе IN из лог. 0 в лог. 1 (моменты (1, 4)) переменная на выходе Q принимает значение лог. 1. Отсчет времени начинается при изменении на входе IN из лог. 1 в лог. 0, при этом значение переменной на выходе ET начинает линейно увеличиваться. По окончании времени выдержки на выходе Q формируется переход из лог. 1. в лог. 0. Сброс таймера осуществляется подачей лог. 1 на вход IN (момент (4)).

В EFB TON (рис. 2.9) в исходном состоянии IN=0 и Q=0. Отсчет времени начинается (момент (1)) при изменении значения переменной на входе IN из лог. 0 в лог. 1. По окончании времени выдержки (момент (2)) переменная на выходе Q принимает значение лог. 0. Сброс таймера (моменты (3, 4)) осуществляется изменением значения переменной на входе IN из лог. 1 в лог. 0.

 


В FFB TP (рис. 2.10) в исходном состоянии IN=0 и Q=0. Отсчет времени начинается (момент (1)) при изменении значения переменной на входе IN из лог. 0 в лог. 1. При этом на выходе Q формируется лог. 1. По окончании времени выдержки на выходе Q формируется переход из лог. 1. в лог. 0. Сброс таймера осуществляется подачей лог. 0 на вход IN независимо от состояния таймера (во время отсчета выдержки или после ее окончания).

 
 







Дата добавления: 2015-09-07; просмотров: 790. Нарушение авторских прав


Рекомендуемые страницы:


Studopedia.info - Студопедия - 2014-2020 год . (0.006 сек.) русская версия | украинская версия