# Временное событие | Типовые задачи Предыдущий Следующий

## Общие сведения Наименование: ALARM. Тип выхода: логический. Количество входов: от 0 до 4. ## Примечание по входам •порядок входов: «Временной сдвиг от начала суток», «Дни недели», «Количество повторений», «Интервал между повторениями»; •«Временной сдвиг от начала суток» — определяет временной сдвиг в минутах от начала суток (от 0 до 1439); можно не указывать, если не указаны другие аргументы, — по умолчанию вход равен 0; •«Дни недели» — определяет дни недели, по которым фиксируются события; данный вход задается как сумма следующих чисел (от 1 до 127): •1 — понедельник; •2 — вторник; •4 — среда; •8 — четверг; •16 — пятница; •32 — суббота; •64 — воскресенье; можно не указывать, если не указаны последующие аргументы, — по умолчанию вход равен 127; •«Количество повторений» — задает количество повторений выдачи логического сигнала (от 0 до 1439); можно не указывать, если не указан последний аргумент, — по умолчанию вход равен 0; •«Интервал между повторениями» — задает временной отрезок в минутах между выдаваемыми логическими сигналами (от 1 до 1439); можно не указывать — по умолчанию вход равен 60; •на входах алгоблока задаются только константы. ## Функционирование •значение выхода равно логической единице (на один такт), если выполняются все следующие условия: •текущий день недели совпадает с одним из дней, закодированных значением второго входа («Дни недели»); •текущее время (в минутах) больше или равно значению первого входа («Временной сдвиг от начала суток»); •текущее время (в минутах) за вычетом значения первого входа («Временной сдвиг от начала суток») меньше или равно произведению значения третьего входа («Количество повторений») и значения четвертого входа («Интервал между повторениями»); •текущее время (в минутах) за вычетом значения первого входа («Временной сдвиг от начала суток») кратно значению четвертого входа («Интервал между повторениями») или был произведен холодный рестарт модуля ПР; •предыдущее значение алгоблока не было равно логической единице; •значение выхода равно логическому нулю, в противном случае (при условии, что все входы инициализированы и имеют достоверное значение); •значение выхода недостоверно, если значение одного из входов вышло за пределы допустимых значений. ## Примеры использования BLOCK4 = ALARM(0; 31; 23; 60) // BLOCK4 раз в час (в 00:00, в 01:00, ..., в 23:00) // в простые дни недели будет равняться 1. BLOCK1 = ALARM(0; 127; 1439; 1) BLOCK2 = ADD(ao10.1; BLOCK1) BLOCK3 = RESULT(AO10.1; BLOCK2; 0) // После инициализации Контроллера // и в начеле каждой следующей минуты // значение канала ao10.1 // будет увеличиваться на единицу.