Таймер

_images/fbd_block_timer1.png

Описание: Выдает на выход 1 с заданным интервалом многократно, или однократно после установки разрешающего сигнала. Вход еn – разрешение работы таймера, при установленной 1 – выдача 1 на выходе разрешена, при 0 – запрещена. Вход interval задает период выдачи 1 на выходе.

Выход равен 1, если соблюдены все следующие условия:

  • вход en равен 1 в течение времени, в миллисекундах, не меньшего, чем значение на входе interval, сохраненное на шаге переднего фронта входа en,
  • значение выхода на предыдущем шаге выполнения было 0,
  • со времени выдачи предыдущей 1 или переднего фронта входа en на выходе прошло время, в миллисекундах, не меньшее, чем значение на входе interval, запомненное в шаге предыдущей 1 или переднего фронта входа en.

Циклограмма работы блока Таймер:

_images/fbd_cycle_timer.png

Свойства блока:

Общие свойства: см. Редактирование свойств блока.

Однократно:

1 выдается только в «одиночном» режиме, т.е. течение одного шага! Между соседними 1 в течение, как минимум, одного шага, гарантированно выдается 0. Опция Однократно указывает, что выдача 1 будет выполняться только один раз, после каждого переднего фронта входа en. Иначе 1 будут выдаваться многократно. Все блоки-таймеры проекта используют один аппаратный «базовый» таймер устройства, настраиваемый на определенный постоянный интервал срабатывания. Интервал срабатывания базового таймера указывается в свойствах проекта. Переменная – признак срабатывания базового таймера устанавливается перед выполнением каждого шага вычисления схемы, при этом, если на предыдущем шаге была 1, то на этом шаге устанавливается 0, независимо от времени. Для отсчета времени каждый блок использует внутреннюю переменную-счетчик.

Алгоритм выполнения блока:

  • если признак срабатывания базового таймера равен 0 – выдать 0, закончить выполнение,
  • если вход en равен 0 – выдать 0, записать в переменную-счетчик значение Interval / (Интервал базового таймера), закончить выполнение,
  • уменьшить переменную-счетчик на 1,
  • если переменная-счетчик равна 0 – выдать 1 и, если свойство Однократно не установлено – записать в переменную-счетчик значение Interval / (Интервал базового таймера) для следующего срабатывания.