Триггеры, элементы хранения и регистры сдвига

COUNT_BR

Тип модуля: ФБ

Переменная

Тип

Описание

Входы

SET

BOOL

Сигнал установки начального значения.

in

BYTE

Начальное значение.

UP

BOOL

Импульс «добавить»

DN

BOOL

Импульс «отнять».

STEP

BYTE

Шаг счетчика.

MX

BYTE

Максимальное значение счетчика.

RST

BOOL

Сигнал сброса блока.

Выходы

CNT

BYTE

Текущее значение счетчика.

Используемые модули

INC

Функциональный блок COUNT_BR представляет собой счетчик импульсов. По переднему фронту входа SET на выход счетчика CNT устанавливается начальное значение in. По переднему фронту входов UP/DN происходит увеличение/уменьшение счетчика на величину STEP. Вход MX определяет максимальное значение счетчика. При достижении этого значения счетчик переходит через ноль. Иными словами, при значениях in=0, STEP=100 и MX=255 во время счета в положительном направлении счетчик будет принимать следующие значения: 0, 100, 200, 44, 144, 244, 88 и т.д. По переднему фронту входа RST происходит сброс счетчика в 0 в независимости от состояния остальных входов.

Пример

VAR (* Экземпляр ФБ *) Cnt : OSCAT_BASIC.COUNT_BR; (* Управление *) xTrig : BOOL := FALSE; xMode : BOOL := TRUE; (* TRUE = вверх, FALSE = вниз *) (* Для фронта *) xTrig_Edge : BOOL; xTrig_Old : BOOL; (* Результат *) Value : BYTE; END_VAR (* Инициализация настроек (однократно) *) Cnt(in := 0 , STEP := 100 , MX := 255); Cnt(SET := TRUE); (* Устанавливаем начальное значение 0 *) Cnt(); Cnt(SET := FALSE); (* Основной цикл *) (* Детектор фронта *) xTrig_Edge := xTrig AND NOT xTrig_Old; xTrig_Old := xTrig; (* По фронту xTrig выполняем счет *) IF xTrig_Edge THEN IF xMode THEN Cnt(UP := TRUE); (* Увеличение *) ELSE Cnt(DN := TRUE); (* Уменьшение *) END_IF; Cnt(); (* Выполняем ФБ *) (* Сбрасываем управляющие сигналы *) Cnt(UP := FALSE, DN := FALSE); END_IF; (* Сохраняем текущее значение *) Value := Cnt.CNT; END_PROGRAM

COUNT_DR

Тип модуля: ФБ

Переменная

Тип

Описание

Входы

SET

BOOL

Сигнал установки начального значения.

in

DWORD

Начальное значение.

UP

BOOL

Импульс «добавить»

DN

BOOL

Импульс «отнять».

STEP

DWORD

Шаг счетчика.

MX

DWORD

Максимальное значение счетчика.

RST

BOOL

Сигнал сброса блока.

Выходы

CNT

DWORD

Текущее значение счетчика.

Функциональный блок COUNT_DR представляет собой счетчик импульсов. Принцип работы полностью соответствует ФБ COUNT_BR, единственным отличием является тип используемых переменных – DWORD.

FF_D2E

Тип модуля: ФБ

Переменная

Тип

Описание

Входы

D0

BOOL

Контролируемое значение 0

D1

BOOL

Контролируемое значение 1

CLK

BOOL

Сигнал сохранения значений

RST

BOOL

Сигнал сброса блока

Выходы

Q0

BOOL

Сохраненное значение 0

Q1

BOOL

Сохраненное значение 1

Функциональный блок FF_D2E представляет собой двухбитный D-триггер. По переднему фронту входа CLK значения входов D0 и D1 присваиваются выходам Q0 и Q1. По переднему фронту входа RST значения выходов сбрасываются в FALSE в независимости от состояния остальных входов.

Graphic

FF_D4E

Тип модуля: ФБ

Переменная

Тип

Описание

Входы

D0

BOOL

Контролируемое значение 0

D1

BOOL

Контролируемое значение 1

D2

BOOL

Контролируемое значение 2

D3

BOOL

Контролируемое значение 3

CLK

BOOL

Сигнал сохранения значений

RST

BOOL

Сигнал сброса блока

Выходы

Q0

BOOL

Сохраненное значение 0

Q1

BOOL

Сохраненное значение 1

Q2

BOOL

Сохраненное значение 2

Q3

BOOL

Сохраненное значение 3

Функциональный блок FF_D4E представляет собой четырехбитный D-триггер. По переднему фронту входа CLK значения входов D0, D1, D2 и D3 присваиваются выходам Q0, Q1, Q2 и Q3 соответственно. По переднему фронту входа RST значения выходов сбрасываются в FALSE в независимости от состояния остальных входов. См. также описание ФБ FF_D2E.

FF_DRE

Тип модуля: ФБ

Переменная

Тип

Описание

Входы

SET

BOOL

Сигнал активации выхода

D

BOOL

Контролируемое значение

CLK

BOOL

Управляющий сигнал

RST

BOOL

Сигнал сброса блока

Выходы

Q

BOOL

Сохраненное значение

Функциональный блок FF_DRE представляет собой D-триггер с асинхронным управлением выходом. По переднему фронту входа CLK значения входа D присваивается выходу Q. По переднему фронту входа SET выход принимает значение TRUE. По переднему фронту входа RST выход сбрасывается в FALSE в независимости от состояния остальных входов. Вход RST имеет приоритет над входом SET, и при их одновременном срабатывании сигнал на входе SET не обрабатывается. Вход SET имеет приоритет над входом CLK.

Graphic

FF_JKE

Тип модуля: ФБ

Переменная

Тип

Описание

Входы

SET

BOOL

Сигнал активации выхода

J

BOOL

Вход «Jump»

CLK

BOOL

Управляющий сигнал

K

BOOL

Вход «Kill»

RST

BOOL

Сигнал сброса блока

Выходы

Q

BOOL

Выход триггера

Функциональный блок FF_JKE представляет собой JK-триггер. По переднему фронту входа SET выход принимает значение TRUE. По переднему фронту входа RST выход сбрасывается в FALSE в независимости от состояния остальных входов. По переднему фронту входа CLK выход Q меняет свое значение в зависимости от состояний входов J и K:

  • если J=TRUE, то Q:=TRUE;

  • если K=TRUE, то Q:=FALSE;

  • если J=TRUE и K=TRUE, то Q:=NOT(Q) [значение выхода инвертируется].

Вход SET имеет приоритет над входом CLK.

СХЕМА НЕ СООТВЕТСТВУЕТ ФБ

FF_RSE

Тип модуля: ФБ

Переменная

Тип

Описание

Входы

CS

BOOL

Вход «Set»

CR

BOOL

Вход «Reset»

RST

BOOL

Сигнал сброса блока

Выходы

Q

BOOL

Выход триггера

Функциональный блок FF_RSE представляет собой RS-триггер с асинхронным сбросом. По переднему фронту входа CS выход Q принимает значение TRUE. По переднему фронту входа CR выход Q принимает значение FALSE. Вход CR имеет приоритет над входом CS, и при их одновременном срабатывании сигнал на входе CS не обрабатывается. По переднему фронту входа RST выход сбрасывается в FALSE в независимости от состояния остальных входов.

LTCH

Тип модуля: ФБ

Переменная

Тип

Описание

Входы

D

BOOL

Контролируемое значение

L

BOOL

Режим «сохранение значений»

RST

BOOL

Сигнал сброса блока

Выходы

Q

BOOL

Сохраненное значение

Функциональный блок LTCH представляет собой одноступенчатый триггер («защелку»). Пока вход L имеет значение TRUE, значение на выходе Q равно значению входа D. По заднему фронту входа L выход Q фиксируется в своем текущем состоянии. По переднему фронту входа RST выход сбрасывается в FALSE в независимости от состояния остальных входов.

Graphic

LTCH_4

Тип модуля: ФБ

Переменная

Тип

Описание

Входы

D0…D3

BOOL

Контролируемые значения

L

BOOL

Режим «сохранение значений»

RST

BOOL

Сигнал сброса блока

Выходы

Q

BOOL

Сохраненные значения

Функциональный блок LTCH_4 представляет собой четырехбитный одноступенчатый триггер («защелку»). Пока вход L имеет значение TRUE, значения на выходах Q0...Q3 равны значениям входов D0...D3. По заднему фронту входа L выходы фиксируется в своих текущих состояниях. По переднему фронту входа RST выходы сбрасываются в FALSE в независимости от состояния остальных входов.

SELECT_8

Тип модуля: ФБ

Переменная

Тип

Описание

Входы

E

BOOL

Вход управления блоком

SET

BOOL

Сигнал установки выхода номер IN

IN

BYTE

Номер устанавливаемого выхода

UP

BOOL

Включение следующего выхода

DN

BOOL

Включение предыдущего выхода

RST

BOOL

Сигнал сброса блока

Выходы

Q0…Q7

BOOL

Выходы блока

STATE

INT

Номер активного выхода (0...7)

Используемые модули

INC

Функциональный блок SELECT_8 представляет собой восьмибитный селектор - в каждый момент времени только один из выходов Q0…Q7 является активным. Пока вход E имеет значение TRUE блок находится в работе. По переднему фронту на входе SET выход с номером IN принимает значение TRUE, а все остальные выходы сбрасываются в FALSE. По переднему фронту на входе UP активным становится следующий выход, по переднему фронту на входе DN – предыдущий. Соответственно, если активным является Q7, то после импульса на входе UP активным становится Q0; если же активным является Q0, то после импульса на входе DN активным становится Q7. Выход STATE содержит номер активного выхода. По переднему фронту входа RST выход сбрасывается в FALSE в независимости от состояния остальных входов.

SHR_4E

Тип модуля: ФБ

Переменная

Тип

Описание

Входы

SET

BOOL

Сигнал активации выходов

D0

BOOL

Вход данных

CLK

BOOL

Управляющий сигнал

RST

BOOL

Сигнал сброса блока

Выходы

Q0…Q3

BOOL

Выходы блока

Функциональный блок SHR_4E представляет собой четырехбитный регистр сдвига. По переднему фронту входа SET выходы Q0…Q3 принимают значение TRUE. По переднему фронту входа RST выходы Q0...Q3 сбрасываются в FALSE в независимости от состояния остальных входов. По переднему фронту входа CLK значения на выходах Q0…Q3 сдвигаются по следующему алгоритму:

  • Q2---- > Q3

  • Q1---- > Q2

  • Q0---- > Q1

  • D0---- > Q0

Вход SET имеет приоритет над входом CLK.

Обратите внимание, что сдвиг не является циклическим.

Graphic
Трассировка работы ФБ

SHR_4UDE

Тип модуля: ФБ

Переменная

Тип

Описание

Входы

SET

BOOL

Сигнал активации выходов

D0

BOOL

Вход данных (при счете вверх)

D3

BOOL

Вход данных (при счете вниз)

CLK

BOOL

Управляющий сигнал

DN

BOOL

Направление счета (TRUE – вниз, FALSE – вверх)

RST

BOOL

Сигнал сброса блока

Выходы

Q0…Q3

BOOL

Выходы блока

Функциональный блок SHR_4UDE представляет собой четырехбитный регистр сдвига c выбором направления сдвига. По переднему фронту входа SET выходы Q0…Q3 принимают значение TRUE. По переднему фронту входа RST выходы Q0...Q3 сбрасываются в FALSE в независимости от состояния остальных входов. По переднему фронту входа CLK значения на выходах Q0…Q3 сдвигаются по алгоритму, определяемому состоянием входа DN:

  • Ø  DN=FALSE (сдвиг вверх):

    • Q2---- > Q3;

    • Q1---- > Q2;

    • Q0---- > Q1;

    • D0---- > Q0.

  • Ø  DN=TRUE (сдвиг вниз):

    • Q1---- > Q0;

    • Q2---- > Q1;

    • Q3---- > Q2;

    • D3---- > Q3.

Вход SET имеет приоритет над входом CLK.

Обратите внимание, что сдвиг не является циклическим.

Graphic
Трассировка работы ФБ

SHR_8PLE

Тип модуля: ФБ

Переменная

Тип

Описание

Входы

Din

BOOL

Значение для записи

Dload

BYTE

Вход данных

CLK

BOOL

Управляющий сигнал

UP

BOOL

Направление счета  (TRUE – вверх, FALSE – вниз)

load

BOOL

Режим загрузки данных в блок

RST

BOOL

Сигнал сброса блока

Выходы

DOut

BOOL

Выход блока

Функциональный блок SHR_8PLE представляет собой восьмибитный регистр сдвига c выбором направления сдвига. Вход UP определяет направление сдвига: TRUE – вверх (при этом выход DOut соответствует старшему биту регистра), FALSE – вниз (при этом выход DOut соответствует младшему биту регистра). По переднему фронту на входе CLK происходит сдвиг регистра в соответствующем направлении, при этом младший (при UP=TRUE) или старший (при UP=FALSE) бит принимает значение Din. Если вход load имеет значение TRUE, то по переднему фронту на входе CLK происходит запись значения Dload в регистр.

Обратите внимание, что сдвиг не является циклическим.

SHR_8UDE

Тип модуля: ФБ

Переменная

Тип

Описание

Входы

SET

BOOL

Сигнал активации выходов

D0

BOOL

Вход данных (при счете вверх)

D7

BOOL

Вход данных (при счете вниз)

CLK

BOOL

Управляющий сигнал

DN

BOOL

Направление счета (TRUE – вниз, FALSE – вверх)

RST

BOOL

Сигнал сброса блока

Выходы

Q0…Q7

BOOL

Выходы блока

Функциональный блок SHR_8UDE представляет собой восьмибитный регистр сдвига c выбором направления сдвига. Принцип работы блока полностью соответствует ФБ SHR_4UDE.

STORE_8

Тип модуля: ФБ

Переменная

Тип

Описание

Входы

SET

BOOL

Сигнал активации выходов

D0…D7

BOOL

Вход данных (при счете вверх)

Clr

BOOL

Сигнал сброса выхода с наименьшим номером

RST

BOOL

Сигнал сброса блока

Выходы

Q0…Q7

BOOL

Выходы блока

Функциональный блок STORE_8 представляет собой восьмибитный элемент хранения. По переднему фронту входов D0…D7 выходы Q0…Q7 принимают значение TRUE. Пока вход SET имеет значение TRUE, выходы Q0…Q7 принимают значение TRUE в независимости от состояния входов. По переднему фронту входа RST выходы Q0...Q7 сбрасываются в FALSE. По переднему фронту входа Clr происходит сброс в FALSE активного выхода с наименьшим номером (только в том случае, если соответствующий вход имеет значение FALSE).

TOGGLE

Тип модуля: ФБ

Переменная

Тип

Описание

Входы

CLK

BOOL

Управляющий сигнал

RST

BOOL

Сигнал сброса блока

Выходы

Q

BOOL

Выход блока

Функциональный блок TOGGLE представляет собой переключатель со сбросом. По переднему фронту входа CLK значение выхода Q инвертируется. По переднему фронту входа RST выход Q принимает значение FALSE в независимости от состояния входа CLK.