29. SCL-блоки
29 - 2 Automating with STEP 7 in STL and SCL
Автоматизация посредством STEP 7
с использованием STL и SCL
бы "память" блока). Такой блок данных, назначаемый вызову FB,
называется "экземплярным блоком данны х" ("instance data block"); он
может быть или собственно блоком данных, или может быть частью блока
данных более высокого уровня ("higher-level" data block). Функции FC не
имеют блоков данных, но они могут иметь "функциональное значение"
("function value"). Это функциональное значение позволяет, например, в
одном арифметическом выражении использовать в качестве операнда
функцию FC (точнее, ее функциональное значение) наряду с другими
переменными (см. раздел 3.2 "Блоки").
Оба упомянутых блока могут иметь параметры блока. Параметры блока
позволяют параметризировать "правила" его обработки (функцию блока).
При программировании блока Вы можете объявить параметр блока как
"входной параметр" ("input parameter") (VAR_INPUT), если необхо димо
только считывать (сканировать) значение параметра, или как "выходной
параметр" ("output parameter") (VAR_OUTPUT), если необходимо только
записывать значение параметра, или как "входной/выходной параметр"
("in-out parameter") (VAR_IN_OUT), если в программе необходимо как
считывать, так и записывать значение параметра.
Обращение к параметру блока в программном блоке выполняется с
"использованием формального параметра" ("formal parameter") по его
имени (имени параметра блока). Формальный параметр служит своего
рода макетом для "фактического параметра" ("actual parametr"),
используемого CPU во время выполнения программы. При вызове блока
фактические параметры назначаются параметрам блока; они
представляют собой значения, которые должны поступить в вызываемый
блок, и с которыми этот блок обрабатывается.
29.2 Программирование SCL-блоков
Средства программирования SCL-блоков описаны в главе 2
"Программное обеспечение STEP 7"; соответствующий список ключевых
слов Вы можете найти в разделе 3.5 "Программирование кодовых блоков
на SCL". Блоки данных и данные пользовательского типа UDT в основном
программируются точно так же как и в языке программирования STL (см.
раздел 3.6 "Программирование блоков данных" и раздел 24.3
"Пользовательский тип данных").
Для того, чтобы обозначить разницу в программировании различных
кодовых блоков, а точнее - разницу при использовании различных языков
программирования, рассмотрим реализацию функции ограничителя
"Delimiter" из главы 27 "Введение. Элементы языка" в соответствии со
следующим планом реализации программы:
• в виде функции FC 291 без возвращаемого значения функции;
• в виде функции FC 292 с возвращаемым значением функции;
• в виде функционального блока FB 291 со своим собственным блоком
данных DB 291;
• в виде функционального блока FB 291 как локального экземпляра в
функциональном блоке FB 290.