Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метода S300.doc
Скачиваний:
54
Добавлен:
28.05.2015
Размер:
1.45 Mб
Скачать
    1. Функциональные блоки

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

В отличие от программных блоков в функциональных блоках можно определить особый вид операндов - формальные параметры. При каждом вызове FB в качестве формальных параметров назначаются какие-либо реальные операнды. Команды FB, оперирующие с формальным параметром, будут оперировать с реальным операндом, назначенным на формальный параметр. При различных вызовах на один и тот же формальный параметр могут назначаться различные реальные операнды, что придает гибкость работе FB. Блок FB программируется как последовательность операций, описывающих ограниченную функцию.

Рекомендуется программировать функциональные блоки, используя команды с формальными параметрами. В этом случае FB будет записан в памяти один раз, а вызывать его можно многократно, присваивая формальным параметрам необходимые значения каждый раз при вызове. В FB может быть определено до 100 формальных параметров.

В С300 формальные параметры передаются через стек, что обеспечивает возможность вложенных вызовов FB с формальными параметрами, т.е. из FB с формальными параметрами можно вызвать другие FB с формальными параметрами. Формальные параметры, определяемые в FB, разделяются при описании на входные и выходные. Параметры, которые не изменяются в блоке, должны описываться как входные, а те, которые изменяются – как выходные.

      1. Формат функциональных блоков

Первый сегмент FB имеет особый формат. В нем находится заголовок блока, содержащий перечень имен и типов формальных параметров с указанием входных (INPUT) и выходных (OUTPUT) параметров.

Заголовок имеет следующий формат:

INPUT

<имя формального параметра>: <тип параметра>

OUTPUT

<имя формального параметра>: <тип параметра>

Ниже ключевого слова INPUT располагаются строки описания входных параметров. Они завершаются ключевым словом OUTPUT, после которого начинаются строки описания выходных параметров. Имя формального параметра - это алфавитно-цифровая последовательность длиной не более 5 знаков, начинающаяся с буквы. За двоеточием указывается тип параметра.

Допустимые типы параметров для INPUT и OUTPUT:

  • ВI – битные переменные типа E, A, M; константы типа KX, KB;

  • BY – байтные переменные типа EB, AB, MB, DL, DR; константы типа KX, KB, KC;

  • W – слова типа EW, AW, MW, DW; константы типа KH, KF, KU, KT, KZ, KY, KC;

  • G – слова типа EG, AG, MG, DG; константы типа KG;

  • Т – таймеры;

  • Z – счётчики;

  • Q – байты расширенной периферии QB;

  • BL – блоки OB, PB, FB (без формальных параметров);

  • DB – блоки данных DB.

Константы могут назначаться только в качестве входных параметров.

Последующие сегменты содержат непосредственно программу. Переход в следующий сегмент может осуществляться одновременным нажатием клавиш <Ctrl> и <PageDown>, возврат - <Ctrl> и <PageUp>.

Формальные параметры используются в теле функционального блока в качестве операндов ряда команд. Имени формального параметра при этом должен предшествовать символ “=” без пробела между ними.

Формат безусловного вызова функционального блока:

SPA FВ номер

<имя формального параметра>=<реальный операнд>

Формат условного вызова функционального блока:

SPB FB номер

<имя формального параметра>=<реальный операнд>

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

Несмотря на то, что присвоение параметров записывается в программе после команды вызова SPA (или SPB), выполнение вызова происходит в последовательности, приведённой на рис. 9.

Рис. 9. Последовательность выполнения вызова FB.