Лекция: Функциональные блоки

Функциональный блок — программный компонент, отобража­ющий множество значений входных параметров на множество выходных. После выполнения экземпляра функционального бло­ка все его переменные сохраняются до следующего выполнения. Следовательно, функциональный блок, вызываемый с одними и теми же входными параметрами, может производить различные выходные значения. Сохраняются все переменные, включая вход­ные и выходные. Так, если мы вызовем экземпляр функционального блока, не определяя значения некоторых входных парамет­ров, он будет использовать ранее установленные значения. Воз­можность задания переменного числа входных значений заложе­на по определению и не требует каких-либо дополнительных уси­лий. Извне доступны только входы и выходы функционального блока, получить доступ к внутренним переменным блока нельзя.

С позиций объектно-ориентированного программирования (ООП) функциональные блоки — это объекты, великолепно реализующие инкапсуляцию, т. е. сокрытие деталей реализации. Объединение кода и данных в «одном флаконе» роднит функциональные блоки с классами ООП. Возможность наследования и по­лиморфизм, к сожалению, пока отсутствуют.

Создание экземпляра функционального блока

Прежде чем использовать функциональный блок, необходимо создать его экземпляр. Эта операция аналогична по смыслу объ­явлению переменной. Описав новый блок, мы фактически созда­ли новый тип данных подобный структуре. Каждый функциона­льный блок может иметь любое количество экземпляров. Так, различные экземпляры блока «таймер» совершенно независимы друг от друга. Каждый из них имеет собственные настройки и живет собственной жизнью.

Каждый экземпляр функционального блока имеет свой собст­венный идентификатор и свою область в статической памяти дан­ных. Объявление еще одного экземпляра блока приводит к выде­лению еще одной области в памяти данных. Код, очевидно, как и для функции, остается общим.

Экземпляр функционального блока создается в разделе объяв­лений переменных функционального блока, программы или в разделе глобальных переменных проекта. Как и переменные, он должен получить уникальный идентификатор. Например, создание экземпляра стандартного функционального блока «инкрементный счетчик» с идентификатором ctuTimeMeter выглядит так:

ctuTimeMeter: CTU;

Очевидно, что создавать экземпляры можно только для извест­ных системе блоков. Это библиотечные блоки или блоки, ранее реализованные пользователем. С точки зрения транслятора, со­здание экземпляра означает выделение необходимой памяти для размещения переменных блока.

Экземпляр функционального блока можно не только вызы­вать, но и использовать в качестве входных переменных других функциональных блоков.

Функциональным блоком иногда называют экземпляр функ­ционального блока, для краткости. В данном курсе такие неодно­значные сокращения применяться не будут. Позволим себе толь­ко называть иногда функциональный блок просто блоком, а эк­земпляр функционального блока — экземпляром.

еще рефераты
Еще работы по информатике