Среда разработки Unimod PRO 2 (версия 2.3.40)
 Руководство по программированию
×

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;