PULSE - одновибратор

Назначение.
Функциональный блок PULSE применяется для формирования одиночного импульса заданной длительности.
Состав структурной переменной.
Переменная со структурным типом PULSE будет добавлена в локальный словарь автоматически при добавлении блока PULSE в редактор.

Описание алгоритма.
-
До запуска блока его выходные параметры Q=FALSE (импульс отсутствует) и P=0 (отсчет времени не начался).
-
Для запуска блока необходимо изменить входной сигнал CP из состояния логического нуля в состояние логической единицы (передний фронт дискретного сигнала, FALSE → TRUE).
-
После запуска, в течение указанного на входе Tpls периода времени на выход Q передается дискретный сигнал TRUE (импульс), а на выход P передается текущее время от момента запуска.
-
Когда текущее время P достигнет заданного на входе Tpls значения (P=Tpls), импульс на выходе Q и текущее время будут сброшены (Q=FALSE, P=0).
-
Для сброса импульса и текущего времени в процессе работы блока на вход RESET передается дискретный сигнал TRUE.
-
Повторный запуск блока возможен только после истечения заданного периода импульса (P=Tpls) или принудительного сброса (RESET=TRUE). Пока RESET=TRUE, блок не может быть запущен.
Для запуска блока по заднему фронту, входной дискретный сигнал CP предварительно инвертируется.
|
Пример синтаксиса на языке ST.
//вызов функционального блока
Block.PULSE(CP, Reset, Tpls);
//возвращается импульс Q=true пока P < Tpls,
Q := Block.Q;
//чтение времени, прошедшего с начала импульса
P := Block.P;
|
