Временное событие

Типовые задачи  Предыдущий  Следующий

Общие сведения

Наименование: 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

// будет увеличиваться на единицу.