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

TP - время пульсирования


Назначение.
Функциональный блок TP содержит внутренний таймер и позволяет после изменения управляющего дискретного сигнала по переднему фронту (из логического нуля в логическую единицу, FALSE → TRUE) сохранить его значение на выходе в течение заданного периода времени.
 
Состав структурной переменной.
Переменная со структурным типом TP будет добавлена в локальный словарь автоматически при добавлении блока в редактор.
Описание алгоритма.
На вход PT передается период времени в миллисекундах (целое число), в течение которого на выходе Q будет сохраняться дискретный сигнал TRUE.
Запуск таймера осуществляется при изменений входного дискретного сигнала IN по переднему фронту (FALSE → TRUE). При этом на выход ET выводится текущее время таймера, отсчитываемое с момента запуска, выход Q=TRUE. Во время работы таймера изменение входного сигнала IN не влияет на выход Q. По истечении указанного на входе PT периода времени (ET=PT), таймер останавливается, а выход Q=FALSE. Для повторного запуска счетчика необходимо дождаться завершения его работы и повторно изменить входной сигнал IN по переднему фронту.
Для сброса таймера входной сигнал IN необходимо изменить по заднему фронту (TRUE → FALSE). Если таймер закончил предыдущий отсчет (ET=PT), его значение будет сброшено в текущем цикле контроллера (ET=0). Если сигнал сброса поступил до завершения работы таймера, его значение ET будет сброшено после окончания отсчета, на следующем цикле работы контроллера.
На выход Q дискретный сигнал TRUE передается после начала отсчета таймером и сохраняется до его завершения. Когда таймер остановлен, выход Q=FALSE.
На следующем изображении в виде временной диаграммы представлен принцип работы блока, где 1 - период удержания на выходе сигнала TRUE, 2 - сброс таймера после завершения отсчета, 3 - попытка сбросить таймер до окончания отсчета, но выходной сигнал не изменился, 4 - сброс таймера на следующем цикле после завершения отсчета, отложенное выполнение команды 3.
 
 
Пример синтаксиса на языке ST.
//вызов функционального блока
Block.TP(IN, PT);
//чтение выходного сигнала:
//Q = true в течение времени PT поле изменения параметра IN с true на false,
//Q = false, когда таймер не работает
Q := Block.Q;
//чтение текущего времени таймера
ET := Block.ET;