step7-pro
голосование
Чего не хватает сайту
поиска
новых статей
статей о подключении оборудования
примеров решения задач
форума
ничего не нужно
поиск


новости
Появился поиск по сайту. Обещаю его улучшить и сделать более адекватным
--------------11.10.11
Новая гостевая книга надеюсь избавит от спама. Еще немного и появится поис и многое другое
--------------11.07.11
C НАСТУПАЮЩИМ НОВЫМ ГОДОМ И РОЖДЕСТВОМ!
--------------30.12.10
Новые статьи по системным функциям и блокам
--------------25.12.10
Теперь у нас новый дизайн, конечно не супер но надеюсь всем понравиться
--------------05.12.10
Форум закрыт по причине ненадобности
--------------08.09.10
Гостевая книга временно отключена из спама
--------------15.10.10
Наш форум forum.step7-pro.ru общайтесь на здоровье!
--------------03.06.10
Наш сайт в twitter Вы сможете подписаться на рассылку новостей и узнавать о новых статьях на нашем сайте.
--------------20.03.10
После долгого перерыва наш сайт снова начал работать
--------------26.02.10
реклама

Программы с функциональными блоками и блоками данных

Функциональный блок (FB*) содержит часть программы которая может многократно вызываться OB1. Все формальные параметры и статические данные функционального блока сохраняются в отдельном блоке данных (DB*), назначаемом функциональному блоку.

В папке Blocks [Блоки ], выбирете в контекстном меню
Insert New Object>Function Blocks
[Вставить новый обьект> Функциональный Блок]
Откройте FB1 и в диалоговом окне "Properties –Function Block [Свойства – Функциональный блок]" выберите язык, на котором вы хотите создавать этот блок, активизируйте триггерную кнопку "Multiple instance FB [Мультиэкземплярный FB]" и подтвердите остальные параметры настройки, щелкнув на OK.

 

Программирование FB1 в виде контактного плана

Теперь запрограммируем FB1 который может управлять двумя различными двигателями с помощью двух блоков данных (DB)

Все сигналы, "специфические для двигателей", передаются функциональному блоку из организационного блока как параметры блока и поэтому должны быть перечислены в таблице описания переменных как входные и выходные параметры (описание "in" и "out").

Введите описания в таблицу описания переменных.
Тип можно выбрать с помощью команды всплывающего меню Elementary Types [Элементарные типы], используя правую кнопку мыши. При нажатии Enter курсор переходит в следующий столбец, или вставляется новаястрока.
Программирование включения и выключения двигателя
Вставьте нормально открытый контакт, нормально замкнутый контакт и элемент SR последовательно в сегменте 1(Network 1).
Затем выделите путь тока непосредственно перед входом R и вставьте нормально открытый контакт. Выделите путь тока непосредственно перед открытым контактом и вставьте нормально закрытый контакт параллельно открытому контакту.

У вас должна получиться вот такая цепь, введите имена из таблицы описания переменных ( знак # присваеваеться автоматически). Сохраните программу.

Локальные переменные блока помечаются знаком # и действительны
только в этом блоке. Глобальные переменные появляются в кавычках. Они определены в таблице символов и действительны во всей программе.

Программирование контроля скорости
Вставьте новый сегмент, и найдите в катологе элементов программы функцию Compare [Сравнение], и вставьте GE_I.
Вставьте также в путь тока катушку.
назначте имена из таблицы описания переменных.
как это работает

Программирование FB1 в виде списка операторов

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

 

Программирование FB1 в виде функционального
плана

Сделайте описание таблицы переменных точно также как это было описано выше
Программирование включения и выключения двигателя
Вставьте в сегменте 1 (Network 1) функцию SR, используя каталог элементов программы (папка Bit
Logic [битовая логика]). Добавьте блок AND [И] у входа S и блок OR [ИЛИ] у
входа R. Назначьте символические имена везде где есть ??.?
Инвертируйте входы "Automatic_Mode" и #Failure [Неисправность] соответствующей кнопкой из панели инструментов.
Программирование контроля скорости
Вставьте новый сегмент и выделите
область ввода.
Присоедините к блоку сравнения блок присваивания значения выходу и адресуйте входы именами из таблицы описания переменных. Ваша программа готова.

 

Генерирование экземплярных блоков данных и
изменение фактических значений

Чтобы в будущем получить возможность вызова функционального блока в OB1, вы должны сгенерировать соответствующий блок данных. Экземплярный блок данных (DB) всегда ставится в соответствие функциональному блоку.

Функциональный блок должен управлять и контролировать работу обоих двигателей. Различные заданные скорости двигателей хранятся в двух отдельных блоках данных, в которых изменяется фактическое значение (#Preset_Speed [заданная_скорость]).

Централизованно программируя функциональный блок один раз, вы можете сократить объем программирования.

Создайте блок данных DB в папке Блоки и примите все параметры отображаемые в диалоговом окне Propeties.

Откройте блок данных и в диалоговом окне "New Data Block [Новый блок данных]" активизируйте опцию Data block referencing a function block [Блокданных, ссылающийся на функциональный блок].
Затем введите значение "1500" для первого двигателя в столбец Actual Value [Фактическое значение] (в строке "Preset_Speed). Теперь вы определили максимальную скорость для этого двигателя. Сохраните DB1 и закройте окно для программ. Так же, как и в случае с DB1, сгенерируйте еще один блок данных, DB2, для FB1 и введите фактическое значение "1200" для второго двигателя.
Изменив фактические значения, вы закончили приготовления к управлению двумя двигателями с помощью только одного функционального блока. Для управления большим количеством двигателей единственное, что вам нужно сделать, это сгенерировать дополнительные блоки данных. Далее вам нужно запрограммировать вызов функционального блока OB1.

 

Программирование вызова блока в контактном плане

Всё что вы сделали, бесполезно пока вы не вызовите функциональный блок из 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 той лишь разницей что вам не нужно ставить нормально открытые контакты.

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


Когда двигатель включается и выключается?

Когда переменная #Switch_On [включить] имеет состояние "1" и переменная "Automatic_Mode" [автоматический_режим] имеет состояние "0", двигатель включается. Эта функция не разрешена, пока автоматический режим не выключен (отрицание "Automatic_Mode", нормально замкнутый контакт). Когда переменная #Switch_Off [выключить] имеет состояние "1" или переменная #Failure [неисправность] имеет состояние "0", двигатель выключается. Эта функция снова реализуется путем отрицания переменной #Failure (#Failure – это "нуль-активный" сигнал, он равен "1" в нормальном состоянии и "0", если возникает неисправность).

Как блок сравнения контролирует скорость двигателя?

Блок сравнения сравнивает переменные #Actual_Speed [фактическая_скорость] и #Preset_Speed [заданная_скорость] и присваивает результат сравнения переменной #Preset Speed Reached.
<--Предыдущая статья   Следующая статья -->
сделано djoni политика конфидициальности Rambler's Top100