Триггеры, элементы хранения и регистры сдвига
COUNT_BR
Тип модуля: ФБ | Переменная | Тип | Описание |
|---|---|---|---|
Входы | SET | BOOL | Сигнал установки начального значения. |
in | BYTE | Начальное значение. | |
UP | BOOL | Импульс «добавить» | |
DN | BOOL | Импульс «отнять». | |
STEP | BYTE | Шаг счетчика. | |
MX | BYTE | Максимальное значение счетчика. | |
RST | BOOL | Сигнал сброса блока. | |
Выходы | CNT | BYTE | Текущее значение счетчика. |
Используемые модули | |||
Функциональный блок 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 в независимости от состояния остальных входов.

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.

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 в независимости от состояния остальных входов.

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.
Обратите внимание, что сдвиг не является циклическим.

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.
Обратите внимание, что сдвиг не является циклическим.

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.