Программы с функциональными блоками и блоками данныхФункциональный блок (FB*)
содержит часть программы которая может многократно вызываться OB1. Все
формальные параметры и статические данные функционального блока сохраняются
в отдельном блоке данных (DB*),
назначаемом функциональному блоку.
Программирование FB1 в виде контактного планаТеперь запрограммируем FB1 который может управлять двумя различными двигателями с помощью двух блоков данных (DB) Все сигналы, "специфические для двигателей", передаются функциональному
блоку из организационного блока как параметры блока и поэтому должны быть
перечислены в таблице описания переменных как входные и выходные параметры
(описание "in" и "out").
Программирование FB1 в виде функционального
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Сделайте описание таблицы переменных точно также как это было описано выше | |
|
Программирование включения и выключения двигателя
|
|
![]() |
Вставьте в сегменте 1 (Network 1) функцию SR, используя каталог
элементов программы (папка Bit Logic [битовая логика]). Добавьте блок AND [И] у входа S и блок OR [ИЛИ] у входа R. Назначьте символические имена везде где есть ??.? |
![]() |
Инвертируйте входы "Automatic_Mode" и #Failure [Неисправность] соответствующей кнопкой из панели инструментов. |
| Программирование контроля скорости | |
![]() |
Вставьте новый сегмент и выделите область ввода. |
![]() |
Присоедините к блоку сравнения блок присваивания значения выходу и адресуйте входы именами из таблицы описания переменных. Ваша программа готова. |
Чтобы в будущем получить возможность вызова функционального блока в OB1, вы должны сгенерировать соответствующий блок данных. Экземплярный блок данных (DB) всегда ставится в соответствие функциональному блоку.
Функциональный блок должен управлять и контролировать работу обоих двигателей. Различные заданные скорости двигателей хранятся в двух отдельных блоках данных, в которых изменяется фактическое значение (#Preset_Speed [заданная_скорость]).
Централизованно программируя функциональный блок один раз, вы можете сократить объем программирования.
Создайте блок данных DB в папке Блоки и примите все параметры отображаемые в диалоговом окне Propeties.
Всё что вы сделали, бесполезно пока вы не вызовите функциональный блок
из OB1. Для каждого вызова функционального блока используется блок данных,
и вы, таким образом, можете управлять обоими двигателями.
Откройте ОВ1 и вставьте сигмент 4. В катологе элементов программы выберете
и вставьте FB1
![]() |
Вставьте нормально открытый контакт перед каждым из следующих входов: Switch_On [Включить], Switch_Off [Выключить] и Fault [Неисправность]. Щелкните на знаке ??? и в контекстном меню выберете Insert Symbol [Вставить символ]. |
![]() |
Выберете блок DB1 Этот блок затем автоматически вводится в рамку ввода в кавычках. |
![]() |
Щелкайте на вопросительных знаках и назначьте адреса всем остальным параметрам функционального блока, используя соответствующие символические имена из прокручиваемого списка. |
| Запрограммируйте в новом сегменте вызов для функционального блока "Engine [Двигатель]" (FB1) с блоком данных "Diesel [Дизельный]" (DB2) и используйте соответствующие адреса из прокручивающегося списка. сохраните и закройте ваш блок. | |
![]() |
|
|
Когда вы создаете структуры программ с организационными блоками, функциональными блоками и блоками данных, вы должны программировать вызов для подчиненных блоков (таких, как FB1) в блоке, расположенном в иерархии более высоко (например, OB1). Эта процедура всегда одна и та же. Вы можете также давать различным блокам символические имена в таблице символов (например, FB1 имеет имя "Engine [Двигатель]", а DB1 – имя "Petrol [Бензиновый]"). Вы можете в любое время заархивировать или распечатать запрограммированные блоки. Соответствующие функции можно найти в SIMATIC Manager с помощью команд меню File > Archive [Файл > Архивировать] или File > Print [Файл > Печатать]. |
|
В ОВ1 создайте новый сегмент
![]() |
В разделе кодов напечатайте CALL "Engine", "Petrol", а затем нажмите Enter. Отображаются все параметры функционального блока "Engine [Двигатель]". Откройте контекстное меню в поле Switch_On и выберете Insert Symbol [Вставить символ]. |
![]() |
Щелкните на имени Switch_On_PE. Оно берется из контекстного меню и автоматически добавляется в кавычках. Назначьте все требуемые адреса переменным функционального блока, используя контекстное меню. |
| Запрограммируйте в новом сегменте вызов для функционального блока "Engine [Двигатель]" (FB1) с блоком данных "Diesel [Дизельный]" (DB2). Действуйте таким же образом, как и для другого вызова. Сохраните ваш блок. | |
Здесь действуйте так же как и варианте с LAD
c той лишь разницей что вам не нужно ставить нормально открытые контакты.
Не забудьте назначить всем остальным параметрам функционального блока, используя соответствующие символические имена из контекстного меню. Точно также сделайте и для второго двигателя. Сохраните блок и закройте его.
| <--Предыдущая статья | Следующая статья --> |