Безусловный переход в независимой подпрограмме |
Типовые задачи Предыдущий Следующий |
Общие сведенияНаименование: 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 = ... См. также |