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

DELAY - запаздывание аналогового сигнала


 
 
Назначение.
Функциональный блок DELAY применяется для задержки вывода аналогового сигнала. Может использоваться для введения динамической коррекции или моделирования динамических свойств объекта управления.
 
Состав структурной переменной.
Переменная со структурным типом DELAY будет добавлена в локальный словарь автоматически при добавлении блока в редактор.
 
 
Описание алгоритма.
До запуска блока (RUN=FALSE) или при N<=0, входной сигнал X без задержки передается на выход Y.
После запуска блока (RUN=TRUE), текущие значения входного сигнала X в каждом цикле работы блока сохраняются во внутреннем массиве и начнут в том же порядке передаваться на выход Y после заданной задержки. Задержка указывается во входном параметре N в виде количества циклов работы блока. Время одного цикла блока задается в миллисекундах во входном параметре Cycle.
 При этом передача выходного сигнала Y будет запаздывать относительно сигнала X на время N×Cycle, где Cycle – длительность одного цикла блока, N - количество циклов запаздывания.
Работа блока с задержкой аналогового сигнала в 5 циклов продемонстрирована в виде графика на следующем изображении.
 
Значение входного параметра N сохраняется в момент запуска блока (RUN=TRUE), а измененные в процессе работы значения игнорируются.
Если значение входного параметра Cycle меньше времени цикла контроллера или Cycle<=0, то период работы блока равен циклу контроллера. Значение N>128 воспринимается как N=128.
 
Пример синтаксиса на языке ST.
//вызов функционального блока DELAY
Block.DELAY(RUN, X, N, Cycle);
//сигналы X начнут передаваться на выход Y с задержкой N*Cycle
Y := Block.Y