Создание и открытие функций (FC)Функции, как и функциональные блоки, расположены в иерархии программы ниже организационного блока. Чтобы функция обрабатывалась CPU, она должна быть вызвана в блоке, расположенном в иерархии выше нее. Однако, в отличие от функционального блока, блок данных не нужен. У функций параметры тоже перечисляются в таблице описания переменных, но статические локальные данные не разрешаются. Создать функцию можно с помощью контекстного меню Insert New Object >Function [Вставить новый блок > Функция]. В диалоговом окне выберете язык программирования. В отличие функционального блока, в таблице описания переменных для функции не могут быть определены никакие статические переменные. Статические данные, определенные в функциональном блоке, сохраняются, когда блок закрывается. Статическими данными могут быть, например, биты памяти, используемые, например, в качестве предельных значений скорости. Для программирования функции вы можете использовать символические имена из таблицы символов.
Программирование функцийЗапрограммируем функцию таймера. В качестве примера возьмем вентилятор для охлаждения двигателя, функция таймера дает возможность вентилятору включиться, как только включается двигатель, а затем вентилятор продолжает работать в течение четырех секунд после выключения двигателя (задержка выключения). Вы должны указать входные и выходные параметры функции (описание "in" и "out") в таблице описания переменных. Вы работаете с таблицей описания переменных таким же образом, как и с таблицей для функционального блока. ![]() Программирование функции таймера в контактном плане
Чтобы функция таймера обрабатывалась, вам нужно вызвать эту функцию в блоке, расположенном более высоко в иерархии блоков (например, в OB1).
Вызов функции в OB1Вызов функции FC1 в OB1 выполняется таким же способом, как и вызов функционального блока. Все параметры функции снабжаются в OB1 соответствующими адресами вашего двигателя. Так как эти адреса еще не определены в таблице символов, то символические имена этих адресов не будут добавлены. Откройте OB1 и в окне для программирования с помощью команды
меню Options > Symbol Table [Параметры > Таблица символов]
Программирование вызова в контактном плане Вставьте новый сегмент, а затем в катологе элементов программы выберете и вставьте функцию FC1. Вставьте нормально открытый контакт перед "Engine_On [Включить_двигатель]". и присвойте символические имена.
Точно также в новом сегменте можно вызвать функцию FC1 но для другого двигателя , назначив другие адреса.
Сохраните и закройте блок. Программирование вызова в списке операторов Здесь показано все тоже самое , только в виде списка операторов Программирование вызова в функциональном плане При программировании в FBD введите в новом сегменте следующие команды:
Вызов функций в нашем примере был запрограммирован как безусловный;
т.е. функция будет обрабатываться всегда. В зависимости от требований
вашей задачи автоматизации, вы можете сделать вызов функции или функционального
блока зависящим от определенных условий; например, от входа или предшествующей
логической операции.
| |||||||||||||||||||||||