Задержка

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

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

Наименование: DELAY.

Тип выхода: логический.

Количество входов: 3.

Примечание по входам

порядок входов: «Сигнал», «Задержка», «Тип фронта»;

«Задержка»: задается в тактах контроллера (один такт = 100 мс);

«Тип фронта»: логическая единица — передний фронт, логический нуль — задний фронт.

Функционирование

выход имеет значение первого входа («Сигнал») с задержкой по переднему или заднему фронту (в зависимости от значения третьего входа «Тип фронта»); величина задержки задается значением второго входа («Задержка»);

выход имеет неинициализированное состояние, если хотя бы один из входов имеет неинициализированное состояние;

значение выхода недостоверно, если значение одного из входов имеет недосто­вер­ное значение (даже если другой вход имеет неинициализированное состояние).

Не допускается использование данного алгоблока в вызываемых подпрограммах!

Примеры использования

BLOCK1 = DELAY(DI1.1; 5; 1)

BLOCK2 = DELAY(BLOCK1; 5; 0)

BLOCK3 = SET_LIM(1; DI1.1; BLOCK2)

// Реализация задержки включения и отключения на 0,5 с

// уставки L канала DI1.1.

// =======================================

// Реализация внешней звуковой сигнализации

B1 = ASK_LIM(60; AI1.1) // Определение сработанных уставок канала AI1.1

B2 = ASK_LIM(60; AI1.2) // Определение сработанных уставок канала AI1.2

B3 = OR(B1; B2) // Формула срабатывания

B4 = DELAY(B3; 30; 1) // Задержка включения 3 с

B5 = DELAY(B4; 20; 0) // Задержка отключения 2 с

B6 = FORCE_OFF(B5; 6000) // Принудительное отключение через 10 мин

B7 = RESULT(DO1.1; B6) // Установка логического значения в DO1.1

B8 = FRN(B7; 1) // Старт прерываний в момент срабатывания

B9 = FRQ(50; 30; 1; B8) // Задание прерывания 5 с включен, 3 с отключен

B10 = CLR_ACK(B1; B2) // Возобновление сигнализации 

B11 = ACK(1; B9; B3; DI1.4; B10) // Задание сигнализации (звуковой)

B12 = PHY_DSC(DO1.1; B11) // Установка физического значения DO1.1.

alarm_fbd

Файл для импорта: ack.help

// =======================================

// Реализация блокировки с памятью

B10 = OR(DI1.1; DI1.2; DI1.3; DI1.4) // Формула блокировки

B20 = OR(DI11.1; DI12.1) // Формула снятия блокировки

B30 = DELAY(B10; 10; 1) // Задержка включения блокировки на 1 с

B40 = MEMORY(B30; 0; B20) // Запись в энергонезависимую ячейку 

// состояния блокировки

B50 = RESULT(DO1.1; B40)

B60 = PHY_DSC(DO1.1) // Установка состояния 

// (логического и физического) дискретного выходного канала

block_mem_fbd

Файл для импорта: block_mem.help