Показать сообщение отдельно
Старый 09.11.2017, 15:47   #1
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 022
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Циклический таймер (Х сек. работаем, Y сек. не работаем)

Вопрос:

Готовый макрос циклического таймера существует?



Ответ:

"Циклические таймеры" - это не что иное, как автоматы состояний с времязадающей цепью. Проще всего их делать копипастом, это гораздо быстрее, чем искать нужный именно вас макрос.

Покажу на примере простейшего алгоритма: 300 секунд "работаем", 1 час "отдыхаем".

Для начала определимся со счётчиками. Интервал 300 сек легко посчитает обычный 16-тиразрядный счётчик, а вот час уже слишком велик для него, поэтому используем 32-хразрядный счётчик из библиотеки.

Для начала ставим два счётчика рядом. Ведь по условию, нужно отсчитать два интервала, 300 сек и 1 час. Два времени, два счётчика.




Затем связываем их в единый цикл. Сначала считает один счётчик, по окончанию счёта он запускает второй счётчик. А второй счётчик, в свою очередь, по окончанию своего счёта сбрасывает всю систему в исходное состояние.




В принципе, всё готово. Однако в жизни эту систему нужно уметь останавливать, поэтому оформляем сигнал разрешения работы, который банально снимает сигналы сброса с обоих счётчиков.

Вложения
Тип файла: psl Циклосчёт.psl (123.7 Кбайт, 1123 просмотров)


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием