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

МДК.04.02. Теоретические основы разработки и моделирования отдельных несложных модулей и мехатронных систем.

Раздел 3. Программирование ПЛК.

Тема 3. Проектирование структуры программы

Лекция №10

Особенности использования блоков и функций

Содержание

 

1. Компоненты S7-программы

2. Особенности создания экземплярных блоков данных

3. Глобальные блоки данных

 

Контрольные вопросы

Литература

Вопросы для самостоятельного изучения

 

 

Преподаватель_____________________ Г.В. Лунина

Компоненты S7-программы

Организационные блоки OB (Organization blocks).

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

Главная программа находится в организационном блоке OB1. Другие организационные блоки также имеют постоянные предназначенные номера, привязанные к определенным событиям.

Функциональные блоки FB (Function blocks).

Функциональные блоки являются частями программы и создаются для решения определенных задач. Они имеют область памяти для переменных (variable memory), которая расположена в блоке данных DB. Каждому функциональному блоку или, точнее, вызову функционального блока, предназначен свой блок DB. Таким образом, если один функциональный блок вызывается, например, пять раз, то будет создано пять экземпляров DB.

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

Функции FC (Functions).

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

Поскольку FC создается для формального параметра (некоторого образа), а обрабатывает фактические значения, то формальные параметры нужно сопоставить фактическим значением.

Если, например, формальному параметру "Start" отвечает фактический параметр "Е 3.6" (вход), то при вызове функции она заменит "Start" значением, установленным на входе Е 3.6. Иначе говоря, формальные входные и выходные параметры, используемые FC, сохраняются как указатели на фактические параметры логического блока, который вызвал FC.

Блоки данных DB (Data blocks).

Блоки данных содержат сведения о данных, которые принимают участие в выполнении программы. Существует два способа использования блоков данных – как блоки глобальных данных (global data blocks) и как экземплярные блоки данных (instance data blocks). Блоки глобальных данных в пользовательской программе не назначаются кодовому блоку. Экземплярные блоки данных, напротив, назначаются функциональному блоку и сохраняют часть локальных данных этого функционального блока. При программировании блока данных необходимо определить, в какой форме будут сохраняться данные.

Системные и стандартные блоки.

Системные и стандартные блоки являются компонентами операционной системы. Системные блоки (функции SFC и функциональные блоки SFB) могут содержать данные в системных блоках данных (SDB). Они обеспечивают важные системные функции, доступные пользователю, например, функции управления внутренними часами CPU или коммуникационные функции. При этом системные и стандартные блоки не занимают места в пользовательской памяти – они располагаются в операционной системе. Однако для системных блоков нужно создавать экземплярные блоки данных и загружать их в CPU как часть программы пользователя.

                          

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

Формальные и фактические параметры блоков данных

Фактические параметры и статические данные FB сохраняются в экземплярном DB. Экземплярные блоки данных назначаются каждому вызову функционального блока. При этом FB может быть описан формальными параметрами, а фактические параметры, которые он должен передать вызвавшему блоку, получить в блоке данных.

На рисунке 1 показаны формальные параметры FB, которые используют фактические параметры, сохраненные в экземплярном DB.

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

Во многих случаях нет необходимости назначать фактические параметры формальным параметрам FB. Однако для параметризованных типов данных, например, TIMER, COUNTER или POINTER фактические параметры должны быть назначены. При этом STEP 7 назначает или те фактические параметры, которые указаны в операторе вызова, или значения, сохраненные в экземплярном DB.

 

 

Рисунок 1 - Схема использования фактических параметров DB для формальных параметров FB

 

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

Несколько экземплярных DB для одного FB

Схема с отдельными экземплярами DB позволяет с помощью одного FB управлять несколькими однотипными устройствами. Так, например, FB, созданный для некоторого класса двигателей, может управлять разными двигателями, используя для каждого из них определенный набор экземпляров данных. При использовании этого метода для нескольких двигателей нужен только один функциональный блок (рис. 2).

 

 

Рисунок 2 - Несколько экземплярных блоков данных для одного FB

 

Один экземплярный DB для нескольких экземпляров FB

Экземпляры данных для нескольких двигателей можно одновременно передавать в один экземплярный DB. Чтобы сделать это, нужно запрограммировать вызовы для устройств управления двигателями еще в одном FB и описать статические переменные типа FB для отдельных экземпляров в разделе описаний того FB, который будет вызван.

На рисунке 3 вызов осуществляет блок FB12 "Privod", а переменные имеют тип данных FB13, т.е. блока, который вызывается. Экземпляр вызова определяется по помощи назначений Drive_1, Drive_2 и Drive_3.

 

 

Рисунок 3 - Использование одного экземплярного DB для нескольких экземпляров FB

 

В этом примере FB13 не имеет потребности в собственном экземплярном блоке данных, так как данные его экземпляров сохраняются в блоке данных DB20, который принадлежит FB12 – вызывающему блоку.

При использовании одного экземплярного DB для нескольких экземпляров FB экономится память и оптимизируется использование блоков данных.

Один экземплярный DB для нескольких экземпляров разных FB

В функциональном блоке можно вызвать экземпляры других FB. Экземплярные данные, необходимые для этих вызванных FB, можно назначить экземплярному блоку данных вызывающего FB.

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

В примере на рисунке 4 назначенные экземпляры данных сохраняются в общем экземплярном DB14.

 

Рисунок 4 - Пример создания общего блока данных DB14

 

Глобальные блоки данных

Глобальные блоки данных применяются для хранения пользовательских данных, к которым могут обратиться все другие блоки.

Каждый FB, FC или ОВ может читать данные из глобального блока DB или записывать данные в этот DB. Эти данные сохраняются в DB и после выхода из него. Глобальный и экземплярный DB могут быть открыты одновременно.

На рисунке 5 показаны разные методы доступа к блокам данных.

 

Рисунок 5 - Методы доступа к блокам данных

 

Итак, блоки данных DB необходимы для хранения значений переменных при вызове логических блоков. На время вызова логический блок должен занять место в области локальных данных, т.е. в L-стеке. В отличие от данных, которые находятся в L-стеке и удаляются при завершении работы блока, данные в DB не удаляются после завершения работы логического блока.

 

Контрольные вопросы.

1. Для чего используются организационные блоки в S7-программе?

2. Для чего используются функциональные блоки в S7-программе?

3. Для чего используются функции в S7-программе?

4. Для чего используются блоки данных в S7-программе?

5. Для чего используются системные и стандартные блоки в S7-программе?

6. Как используются формальные и фактические параметры блоков данных?

7. Как используются несколько экземплярных DB для одного FB?

8. Как используются один экземплярный DB для нескольких экземпляров FB?

9. Как используются один экземплярный DB для нескольких экземпляров разных FB?

10. Как используются глобальные блоки в S7-программе?

 

Литература

1. Программирование с помощью STEP 7 V5.3. Руководство A5E00261405-01. Редакция 01/2004. 602 с., ил.

2. Цифровые системы управления и обработки информации. Модуль 1. Современные комплексы программирования ПЛК. Конспект лекций. Сост. А.А. Сердюк. – Краматорск: ДГМА, 2007 – 84 с.

3. Цифровые системы управления и обработки информации. Модуль 2. Конфигурирование и программирование систем автоматизации SIMATIC. Конспект лекций. Сост. А.А. Сердюк. - Краматорск: ДГМА, 2008 - 217 с.


Дата добавления: 2022-06-11; просмотров: 47; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!