Триггеры
Триггеры используются для хранения состояния (вкл./выкл.) с приоритетом одного из входов.
RS — Триггер с доминантой RESET
Приоритет имеет вход RESET: если RESET = TRUE, выход всегда FALSE.
Входные параметры:
SET(BOOL) — вход установкиRESET(BOOL) — вход сброса (приоритетный)
Выходные параметры:
Q(BOOL) — выход триггера
Описание работы:
Блок RS реализует триггер, у которого вход RESET имеет приоритет над входом SET. Если вход RESET активен (TRUE), выход Q всегда равен FALSE, независимо от состояния входа SET. Если RESET неактивен (FALSE), то при активации SET выход Q устанавливается в TRUE. При отсутствии сигналов на обоих входах выход Q сохраняет предыдущее состояние.
Таблица истинности:
SET |
RESET |
Q (новое) |
|---|---|---|
FALSE |
FALSE |
Без изменений |
FALSE |
TRUE |
FALSE (приоритет) |
TRUE |
FALSE |
TRUE |
TRUE |
TRUE |
FALSE (приоритет) |
Пример использования:
PROGRAM Example
VAR
rs1 : RS;
set_signal : BOOL;
reset_signal : BOOL;
output_state : BOOL;
END_VAR
rs1(SET := set_signal, RESET := reset_signal);
output_state := rs1.Q;
END_PROGRAM
|
Внутренняя реализация:
Исходный код блока:
FUNCTION_BLOCK RS
VAR_INPUT
SET : BOOL;
RESET : BOOL;
END_VAR
VAR_OUTPUT
Q : BOOL;
END_VAR
VAR
SQ : BOOL;
END_VAR
SQ := NOT RESET AND (SQ OR SET);
Q := SQ;
END_FUNCTION_BLOCK
|
SR — Триггер с доминантой SET
Приоритет имеет вход SET: если SET = TRUE, выход всегда TRUE.
Входные параметры:
SET(BOOL) — вход установки (приоритетный)RESET(BOOL) — вход сброса
Выходные параметры:
Q(BOOL) — выход триггера
Описание работы:
Блок SR реализует триггер, у которого вход SET имеет приоритет над входом RESET. Если вход SET активен (TRUE), выход Q всегда равен TRUE, независимо от состояния входа RESET. Если SET неактивен (FALSE), то при активации RESET выход Q сбрасывается в FALSE. При отсутствии сигналов на обоих входах выход Q сохраняет предыдущее состояние.
Таблица истинности:
SET |
RESET |
Q (новое) |
|---|---|---|
FALSE |
FALSE |
Без изменений |
FALSE |
TRUE |
FALSE |
TRUE |
FALSE |
TRUE |
TRUE |
TRUE |
TRUE (приоритет) |
Пример использования:
PROGRAM Example
VAR
sr1 : SR;
set_signal : BOOL;
reset_signal : BOOL;
output_state : BOOL;
END_VAR
sr1(SET := set_signal, RESET := reset_signal);
output_state := sr1.Q;
END_PROGRAM
|
Внутренняя реализация:
Исходный код блока:
FUNCTION_BLOCK SR
VAR_INPUT
SET : BOOL;
RESET : BOOL;
END_VAR
VAR_OUTPUT
Q : BOOL;
END_VAR
VAR
SQ : BOOL;
END_VAR
SQ := (NOT RESET AND SQ) OR SET;
Q := SQ;
END_FUNCTION_BLOCK
|
См. также
Встроенные типы данных - для информации о типе BOOL.