Безусловный переход в независимой подпрограмме

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

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

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

Количество аргументов: 1.

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

Вход: «Логическое имя» («Идентификатор»).

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

Данный алгоблок прекращает выполнение независимой подпрограммы, управление передается вызывающей подпрограмме, а на следующем такте вызываемая независимая подпрограмма продолжает работу со строки, логическое имя которой указано в аргументе алгоблока.

Признак инверсии входа игнорируется.

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

// Пример

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

// Для каналов DO1.1 и DO1.2

// запускаем исключения

B10 = EXCEPTION_RUN(DO1.1)

B20 = EXCEPTION_RUN(DO1.2)

// Если в данный момент DI5.1 включен

// то подпрограмма прекращает работу

B25 = DYN_IF_GOTO(DI5.1; B200)

// DO1.1 и DO1.2 устанавливаются в единицу

// на одну минуту (600 тактов)

B30 = VALUE_FORCE(DO1.1; 1)

B40 = VALUE_FORCE(DO1.2; 1)

B50 = TIMEOUT(600)

// DO1.1 и DO1.2 устанавливаются в нуль

// на одну минуту (600 тактов)

B60 = VALUE_FORCE(DO1.1; 0)

B70 = VALUE_FORCE(DO1.2; 0)

B80 = TIMEOUT(600)

// Переход на проверку нужно ли остановиться

B90 = DYN_GOTO(B25)

// Для каналов DO1.1 и DO1.2

// прекращаем работу исключения

B200 = EXCEPTION_STOP(DO1.1)

B210 = EXCEPTION_STOP(DO1.2)

 

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

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

// запускается независимая подпрограмма START

B500 = ...

B510 = DYN_CALL(START; DI1.1)

B520 = ...

См. также

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