• для всех параметрируемых типов (например, TIMER, COUNTER или
POINTER).
STEP 7 назначает фактические параметры формальным параметрам FB следующим образом:
•Если вы указываете фактические параметры в операторе вызова − команды FB используют предоставленные фактические параметры;
•Если вы не указываете фактические параметры в операторе вызова − команды FB используют значение, сохраненное в экземплярном DB.
Вследующей таблице показано, каким переменным FB должны быть назначены фактические параметры.
|
|
Тип данных |
|
Переменная |
Элементарный |
Составной |
Параметрируемый |
|
тип данных |
тип данных |
тип |
Вход |
Параметр не нужен |
Параметр не нужен |
Нужен фактический |
|
|
|
параметр |
Выход |
Параметр не нужен |
Параметр не нужен |
Нужен фактический |
|
|
|
параметр |
Вход/выход |
Параметр не нужен |
Нужен фактический |
− |
|
|
параметр |
|
ПРИСВОЕНИЕ НАЧАЛЬНЫХ ЗНАЧЕНИЙ ФОРМАЛЬНЫМ ПАРАМЕТРАМ
Вы можете присвоить начальные значения формальным параметрам в разделе описаний FB. Эти значения записываются в экземплярный DB, связанный с FB.
Вам нет необходимости назначать фактические параметры формальным параметрам в операторе вызова, STEP 7 использует значения, сохраненные в экземплярном DB. Этими значениями также могут быть начальные значения, которые были введены в таблицу описания переменных FB.
В следующей таблице показано, каким переменным может быть присвоено начальное значение. Так как временные данные теряются после выполнения блока, то им нельзя назначить никаких значений.
Переменная |
|
|
Тип данных |
|
|
|
Элементарный тип |
Составной тип |
Параметрируе |
||
|
данных |
данных |
мый тип |
||
Вход |
Начальное |
значение |
Начальное |
значение |
− |
|
разрешено |
|
разрешено |
|
|
Выход |
Начальное |
значение |
Начальное |
значение |
− |
20
Переменная |
|
|
Тип данных |
|
|
Элементарный тип |
Составной тип |
Параметрируе |
|
|
данных |
данных |
мый тип |
|
|
разрешено |
|
разрешено |
|
Вход/выход |
Начальное |
значение |
− |
− |
|
разрешено |
|
|
|
Статическая |
Начальное |
значение |
Начальное значение |
− |
|
разрешено |
|
разрешено |
|
Временная |
|
− |
− |
− |
ЭКЗЕМПЛЯРНЫЕ БЛОКИ ДАННЫХ
Экземплярный блок данных назначается каждому вызову функционального блока, который передает параметры. Фактические параметры и статические данные FB хранятся в экземплярном DB. Переменные, описанные в FB, определяют структуру экземплярного блока данных. Экземпляр означает вызов функционального блока. Если, например, функциональный блок вызывается в программе пользователя S7 пять раз, то имеется пять экземпляров этого блока.
Создание экземплярного DB
Перед созданием экземплярного блока данных соответствующий FB уже должен существовать. При создании экземплярного блока данных указывается номер FB.
Один экземплярный DB для каждого отдельного экземпляра
При назначении функциональному блоку (FB), который управляет двигателем, нескольких экземплярных блоков данных этот FB можно использовать для управления разными двигателями.
Данные для каждого конкретного двигателя (например, скорость, время пуска, общее время работы) сохраняются в разных экземплярных блоках данных. DB, связываемый с FB при вызове последнего, определяет, какой из двигателей управляется. При использовании этого метода для нескольких двигателей нужен только один функциональный блок.
ОДИН ЭКЗЕМПЛЯРНЫЙ DB ДЛЯ НЕСКОЛЬКИХ ЭКЗЕМПЛЯРОВ FB (МУЛЬТИЭКЗЕМПЛЯРЫ)
Вы можете также передать экземпляры данных для нескольких двигателей одновременно в один экземплярный DB. Чтобы сделать это, вы
21
должны запрограммировать вызовы для устройств управления двигателями еще в одном FB и описать статические переменные, имеющие тип данных FB, для отдельных экземпляров в разделе описаний вызывающего FB.
Если вы используете один экземплярный DB для нескольких экземпляров FB, то вы экономите память и оптимизируете использование блоков данных.
ОДИН ЭКЗЕМПЛЯРНЫЙ DB ДЛЯ НЕСКОЛЬКИХ ЭКЗЕМПЛЯРОВ
РАЗЛИЧНЫХ FB (МУЛЬТИЭКЗЕМПЛЯРЫ)
Вфункциональном блоке вы можете вызывать экземпляры других существующих FB. Экземплярные данные, необходимые для этого, вы можете назначить экземплярному блоку данных вызывающего FB, то есть в этом случае у вас нет необходимости ни в каких дополнительных блоках данных для вызываемых FB.
Для этих мультиэкземпляров в одном экземплярном блоке данных вы должны описать статические переменные, имеющие тип данных вызываемого функционального блока, для каждого отдельного экземпляра в разделе описаний вызывающего функционального блока. Тогда вызов внутри функционального блока требует не экземплярного блока данных, а только символического имени переменной.
5.СОВМЕСТНО ИСПОЛЬЗУЕМЫЕ БЛОКИ ДАННЫХ (DB)
Вотличие от логических блоков, блоки данных не содержат команд STEP 7. Они используются для хранения данных пользователя, иными словами, боки данных содержат переменные данные, с которыми работает программа пользователя. Совместно используемые блоки данных применяются для хранения пользовательских данных, к которым могут обратиться все остальные блоки.
Размер DB может изменяться. За информацией о максимально возможном размере обратитесь к описанию вашего CPU.
Вы можете структурировать совместно используемые блоки данных любым способом для удовлетворения своих конкретных потребностей.
СОВМЕСТНО ИСПОЛЬЗУЕМЫЕ БЛОКИ ДАННЫХ В ПРОГРАММЕ ПОЛЬЗОВАТЕЛЯ
Если логический блок (FC, FB или ОВ) вызывается, то он временно занимает место в области локальных данных (L-стек). В дополнение к этой области локальных данных логический блок может открыть область памяти в виде DB. В отличие от данных, находящихся в области локальных данных, данные в DB не удаляются, когда DB закрывается, иначе говоря, после исполнения соответствующего логического блока.
Каждый FB, FC или ОВ может читать данные из совместно используемого DB или записывать данные в этот DB. Эти данные сохраняются в DB после выхода из него.
22
Совместно используемый и экземплярный DB могут быть открыты одновременно. На следующем рисунке показаны различные методы доступа к блокам данных.
FC10 |
Совместно |
|
|
используемый |
Доступ для всех |
|
DB |
|
FC11 |
(DB 20) |
блоков |
|
|
|
FB12 |
Экземплярный |
Доступ только для FB12 |
DB |
||
|
(DB 112) |
|
6. СИСТЕМНЫЕ ФУНКЦИОНАЛЬНЫЕ БЛОКИ (SFB) И СИСТЕМНЫЕ ФУНКЦИИ (SFC)
ПРЕДВАРИТЕЛЬНО ЗАПРОГРАММИРОВАННЫЕ БЛОКИ
У вас нет необходимости программировать каждую функцию самостоятельно. CPU S7 предоставляют в ваше распоряжение заранее запрограммированные блоки, которые вы можете вызывать в своей пользовательской программе.
Дополнительную информацию можно найти в справочнике по системным блокам и системным функциям (перейдите к Описаниям языков и к Помощи по блокам и системным атрибутам).
СИСТЕМНЫЕ ФУНКЦИОНАЛЬНЫЕ БЛОКИ
Системный функциональный блок (SFB) – это функциональный блок, встроенный в CPU S7. SFB являются частью операционной системы и не загружаются как часть программы пользователя. Как и FB, SFB – это блоки "с памятью". Для SFB тоже нужно создавать экземплярные блоки данных и загружать их в CPU как часть программы.
CPU S7 предоставляют в распоряжение следующие SFB:
•для связи через проектируемые соединения;
•для встроенных специальных функций (например, SFB29 ”HS_COUNT" на CPU 312 IFM и CPU 314 IFM).
СИСТЕМНЫЕ ФУНКЦИИ
Системная функция – это заранее запрограммированная, оттестированная функция, встроенная в CPU S7. Вы можете вызвать SFC в своей программе. SFC являются частью операционной системы и не загружаются как часть программы. Как и FC, SFC являются блоками "без памяти".
23
CPU S7 предоставляют SFC для следующих функций:
•копирование и блочные функции;
•контроль программы;
•работа с часами и счетчиками рабочего времени;
•передача наборов данных;
•передача событий из CPU всем остальным CPU в мультипроцессорном
режиме;
•обработка прерываний по времени и с задержкой;
•обработка синхронных и асинхронных ошибок;
•информация о статических и динамических системных данных, например, диагностика;
•обновление образа процесса и обработка битовых массивов;
•адресация модулей;
•децентрализованная периферия;
•связь с помощью глобальных данных;
•связь через не спроектированные соединения;
•генерирование сообщений, относящихся к блокам.
7.ОРГАНИЗАЦИОННЫЕ БЛОКИ ДЛЯ ОБРАБОТКИ ПРОГРАММ, УПРАВЛЯЕМОЙ ПРЕРЫВАНИЯМИ
Предоставляя ОВ прерываний, CPU s7 обеспечивают следующие возможности:
•секции программы могут исполняться в определенные моменты времени или через определенные интервалы (управление по времени);
•ваша программа может реагировать на внешние сигналы от процесса. Циклическая программа пользователя не должна запрашивать,
произошли или нет события прерывания. Если прерывание происходит, то операционная система обеспечивает, чтобы программа исполнялась пользователя в ОВ прерываний, так что имеет место запрограммированная реакция на прерывание со стороны программируемого логического контроллера.
Типы и применения прерываний Следующая таблица показывает, как могут быть использованы различные
типы прерываний.
Тип прерывания |
|
ОВ прерываний |
Примеры применения |
Прерывание |
по |
OB10 − OB17 |
Расчет общего расхода жидкости в |
времени |
|
|
процессе смешивания к концу смены |
Прерывание |
с |
OB20 − OB23 |
Управление вентилятором, который |
24