Код:
A: array [0..999] of bool; // буфер на 1000 * 10 мс = 10 с
InIndx: udint;
OutIndx: udint;
if CLK then // если на тактовом входе true - выполнить пересчёт
A[InIndx] := In;
OutIndx := InIndx + 123; // 123 * 10 ms = 1 s 23 ms - задержка при такте 10 ms
if OutIndx > 999 then
OutIndx := OutIndx - 1000; //минус длина массива
end_if
Out := A[OutIndx]; // значение выхода
InIndx := InIndx + 1;
if InIndx > 999 then
InIndx := InIndx - 1000; //минус длина массива
end_if
end_if
На вход CLK подать выход связки BLINK+RTrig с полным периодом 10 мс (5+5 мс).