29. SCL-блоки
Automating with STEP 7 in STL and SCL 29 - 15
Автоматизация посредством STEP 7
с использованием STL и SCL
• Вы можете инициализировать параметры блока с помощью
выражений, которые используют значение такого же типа данных как
параметр блока. Например, функция FC с функциональным значением
также может быть фактическим параметром.
Примечание:
Если Вы инициализируете формальный параметр типа POINTER или ANY
временной переменной при вызове FB или FC, Вы не можете передавать
этот параметр из вызванного блока в другой блок. Адреса временных
переменных теряют свои значения при передаче в другой блок.
29.4 Механизм EN/ENO
При программировании на SCL пользователь имеет возможность
проверить отдельные выражения (операции) на правильность
выполнения, например, имеется возможност ь проверить, находится ли
результат вычисления функции в допустимом численном диапазоне?
Результат подобных проверок сохраняется в так называемой "ОК-
переменной". Пользователь может также связать назначение "ОК-
переменной" с вызывающим блоком посредством выходного параметра
ENO блока. Наконец, имеется возможность выполнять вызов блока
посредством EN в зависимости от условий.
Вы можете использовать заранее определенные переменные EN и ENO
для всех блоков (FC, SFC, FB, SFB, а также для IEC-функций), для все х
стандартных функций (например, функции сдвига и функции
преобразования), кроме функций таймеров и функций счетчиков.
В главе 15 "Биты состояния", в разделе 15.4 "Использование двоичного
результата" описывается, как используется механизм EN/ENO в
стандартных языках программирования.
29.4.1 ОК-переменная
В языке программирования SCL существует инициализируемая
переменная с именем "ОК" и типом данных BOOL. Эта переменная
сообщает об ошибках, возникающих при выполнении программы в SCL-
блоке, но только в случае, если Вы выбрали опцию "Set OK flag"
("Установить OK-флаг") на вкладке "Compiler" ("Компилятор"), которая
открывается при выборе опций меню: Options -> Customize (Опции ->
Установки пользователя) в редакторе SCL-программ.
Редактор или компилятор не проверяют, установлена данная опция или
нет, если Вы используете ОК-переменную в программе.
В начале блока ОК-переменная имеет значение TRUE (ИСТИНА). При
возникновении программной ошибки ОК-переменная сбрасывается в
состояние FALSE (ЛОЖЬ). Вы можете проверять ОК-переменную с
помощью соответствующих SCL-операций, а также можете присваивать
этой переменной требуемые значения в любое время.