Таймаут

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

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

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

Тип выхода: целый положительный.

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

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

порядок входов: «Задержка», «Условие», «Истинно»;

«Задержка» — целое положительное число, задаваемое в тактах Контроллера (1 такт = 100 мс);

«Условие» — логический сигнал;

«Истинно» — наименование алгоблока, на который будет осуществляться переход по условию;

одновременно второй («Истинно») и третий («Условие») аргумент можно не указывать — до полной отработки задержки переход не будет осуществляться (см. Функционирование).

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

Краткое описание

Данный алгоблок используется в вызываемой независимой подпрограмме и задерживает ее исполнение на указанное в первом входе («Задержка») число тактов работы Контроллера. При этом на каждом такте задержки работа данной подпрограммы прекращается, управление передается вызывающей подпрограмме, а на следующем такте вызываемая независимая подпрограмма продолжает работу с данного алгоблока.

Имеется возможность прекратить задержку и перейти на блок, указанный в третьем входе («Истинно»), если состояние второго входа («Условие») равно логической единице.

Формальное описание

значение выхода алгоблока имеет неинициализированное состояние, если данный алгоблок еще ни разу не запускался;

значение выхода алгоблока равно нулю, если данный алгоблок не функционирует (на данном такте не прерывал работу вызываемой независимой подпрограммы);

значение выхода алгоблока на каждом такте увеличивается на 1, если алгоблок функционирует;

значение алгоблока равно от 1 до значения, указанного в первом входе («Задержка»), если он в настоящий момент функционирует (на данном такте прерывал работу вызываемой независимой подпрограммы и передавал управление вызывающей подпрограмме);

неинициализированное или недостоверное состояние второго входа («Условие») приравнивается к логическому нулю.

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

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

// Пример

// Вызываемая независимая подпрограмма START

B1 = EXCEPTION_RUN(DO1.1)

B2 = EXCEPTION_RUN(DO1.2)

B3 = VALUE_FORCE(DO1.1; 1)

B4 = VALUE_FORCE(DO1.2; 1)

B5 = TIMEOUT(6000; DO2.1; B6)

B6 = EXCEPTION_STOP(DO1.1)

B7 = EXCEPTION_STOP(DO1.2)

 

// Основная подпрограмма (фрагмент)

// Если DI1.1 становится равным 1,

// то на 10 мин каналы DO1.1 и DO1.2 

// становятся равными 1,

// игнорируя работу по формуле.

// Однако, если DO2.1 становится равным 1,

// то исключение прекращает действовать

B500 = ...

B510 = DYN_CALL(START; DI1.1)

B520 = ...

hmfile_hash_7799788c

См. также

Описание логической программы.