ONDTR - задержка включения со сбросом

Назначение.
Функциональный блок ONDTR применяется для создания временной задержки между моментом изменения управляющего дискретного сигнала по переднему фронту (из логического нуля в логическую единицу, FALSE → TRUE) и передачей этого сигнала.
Состав структурной переменной.
Переменная со структурным типом ONDTR будет добавлена в локальный словарь автоматически при добавлении блока ONDTR в редактор.

Описание алгоритма.
На вход PV передается период времени в миллисекундах, по истечении которого дискретный сигнал TRUE с входа IN будет передан на выход Q.
Запуск таймера осуществляется при изменений входного дискретного сигнала IN по переднему фронту (FALSE → TRUE). При этом на выход CV выводится текущее время таймера, отсчитываемое с момента запуска, а выход Q=FALSE. По истечении указанного на входе PV периода времени (CV=PV), отсчет времени останавливается, а дискретный сигнал TRUE с входа IN передается на выход Q (Q=TRUE).
При остановке блока (IN=FALSE), таймер останавливается, но сброс выходных параметров не осуществляется, на выходах сохраняются последние выведенные значения.
Для сброса выходных параметров (CV=0 и Q=FALSE) необходимо передать на вход R дискретный сигнал TRUE или перезапустить выполнение блока. Пока R=TRUE, блок не может быть запущен на выполнение.
Функционал блока ONDTR аналогичен блоку TON, но в блоке ONDTR для сброса используется отдельный входной параметр.
|
Пример синтаксиса на языке ST.
//вызов функционального блока
Block.ONDTR(true, false, 5000);
//выход Q=false в истечении 5000 миллисекунд с момента запуска, затем true
Q := Block.Q;
//чтение текущего времени таймера в миллисекундах
CV := Block.CV;
|
