- •Содержание
- •5. Элементы языка программирования 66
- •6. Библиотека стандартных функциональных блоков 77
- •Введение
- •Общие сведения
- •Программистская модель плк с300
- •Внешний вид контроллера
- •Модули ввода/вывода
- •Распределение памяти контроллера
- •Программистская модель контроллера.
- •Регистры и флаги
- •Области операндов контроллера
- •Отображение входов и выходов
- •Область данных
- •Область меток
- •Область таймеров
- •Область счётчиков
- •Область периферии
- •Область расширенной периферии
- •Структура и обработка технологических программ
- •Система команд лмк
- •Логические команды
- •Команды присвоения битных операндов
- •Команды опроса битных переменных
- •Команды переходов
- •Команды пересылки
- •Арифметические команды
- •Команды сравнения
- •Логические байтовые и словные команды
- •Байтовые и словные команды сдвига
- •Индексная адресация.
- •Счетчики
- •Команды обработки счётчиков
- •Последовательность программирования счётчика
- •Примеры программирования счётчика
- •U е 5.0 ;Если сработал фотоэлемент на входе e5.0
- •Формат слова уставки счётчика
- •Таймеры
- •Команды обработки таймеров
- •Последовательность программирования таймера
- •Примеры программирования таймера
- •Формат слова уставки таймера
- •Организационные команды
- •Команды вызова, активизации и завершения блоков
- •Команды блокировки, деблокировки, задания допустимой длительности скана
- •Команды структурирования текста
- •Команды обработки канала связи
- •Элементы языка программирования
- •Организационные блоки
- •Особенности прерывания циклической обработки блоками ob2...Ob18
- •Программные блоки
- •Функциональные блоки
- •Формат функциональных блоков
- •Особенности использования формальных параметров
- •Блоки данных
- •Формат и использование блока назначений nb0
- •Комментарии к программе
- •Комментарий к строке
- •Комментарий к операнду
- •Комментарий к элементу цепи ркс и к цепи ркс
- •Библиотека стандартных функциональных блоков
- •Блоки организации связи по каналу “эвм”
- •Блоки обработки системы реального времени
- •Арифметические блоки
- •Блоки обработки модулей расширенной периферии
- •Системные блоки
- •Блоки регулирования
Функциональные блоки
Функциональные блоки FB можно использовать так же, как и программные, но основное их назначение - реализация часто повторяющихся или сложных функций и создание библиотеки этих функций.
В отличие от программных блоков в функциональных блоках можно определить особый вид операндов - формальные параметры. При каждом вызове FB в качестве формальных параметров назначаются какие-либо реальные операнды. Команды FB, оперирующие с формальным параметром, будут оперировать с реальным операндом, назначенным на формальный параметр. При различных вызовах на один и тот же формальный параметр могут назначаться различные реальные операнды, что придает гибкость работе FB. Блок FB программируется как последовательность операций, описывающих ограниченную функцию.
Рекомендуется программировать функциональные блоки, используя команды с формальными параметрами. В этом случае FB будет записан в памяти один раз, а вызывать его можно многократно, присваивая формальным параметрам необходимые значения каждый раз при вызове. В FB может быть определено до 100 формальных параметров.
В С300 формальные параметры передаются через стек, что обеспечивает возможность вложенных вызовов FB с формальными параметрами, т.е. из FB с формальными параметрами можно вызвать другие FB с формальными параметрами. Формальные параметры, определяемые в FB, разделяются при описании на входные и выходные. Параметры, которые не изменяются в блоке, должны описываться как входные, а те, которые изменяются – как выходные.
Формат функциональных блоков
Первый сегмент 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.