Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
STEP7_V53_Programming_r.pdf
Скачиваний:
5
Добавлен:
29.05.2025
Размер:
5.18 Mб
Скачать

Основы проектирования структуры программы

Рекомендации

Если возможно, применяйте величины по умолчанию.

Увеличивайте эти величины, только если Вы используете CPU главным образом для соединения и время обработки для вашей пользовательской программы не критично.

Во всех других случаях только уменьшайте величину.

Установите режим обработки (только S7-300), и предел времени, необходимый для функций тестирования.

4.2.3.2Функции (FC)

Функции (FC) относятся к блокам, которые Вы программируете сами. Функция

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

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

Применение

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

для возврата значения функции в вызывающий блок (пример: математические функции)

для выполнения технологической функции (пример: отдельная функция управления с битовой логической операцией.

Назначение фактических параметров формальным параметрам

Формальный параметр – это макет для "фактического" параметра. Фактические параметры заменяют формальные параметры при вызове функции. Вы всегда должны ставить в соответствие фактические параметры формальным параметрам FC (например, фактический параметр "E3.6" формальному параметру "Start"). Входные, выходные параметры и параметры типа вход/выход, используемые FC, хранятся как указатели на фактические параметры логического блока, который вызвал FC.

Важные отличия между параметрами выхода FC и FB

В функциональных блоках (FB) при назначении параметров используется копия реальных параметров в экземпляре DB. Если параметр ввода не передается или параметр выхода не записывается при вызове FB, сохраняется старая величина в экземпляре DB /экземпляр DB = память FB), которая и будет использоваться.

Programming with STEP 7 V5.3

4-17

A5E00261405-01

Основы проектирования структуры программы

Функции (FC) не имеют памяти. Поэтому, в отличие от FB, назначение формальных параметров FC является обязательным и весьма существенным. Параметры FC доступны через адреса (указатели на объект за пределами области функции). Когда адреса области данных (блок данных) или локальная переменная вызывающего блока используется как актуальный параметр, копия актуального параметра сохраняется временно в области локальных данных вызывающего блока для передачи параметра.

Внимание:

Втаком случае, если данные не пишутся в выходной параметр FC, блок может выдать случайное значение!

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

Соблюдайте следующие пункты:

Если возможно, инициализируйте параметры OUTPUT.

Инструкции установки и сброса зависят от RLO. Когда эти инструкции используются для определения величины параметра OUTPUT, величина не задана, если результат предыдущей логической операции RLO=0.

Всегда убеждайтесь, что данные записаны в параметр OUTPUT - безотносительно к любому пути программы в блоке. Обратите особое внимание на команды переходов, выход ENO в LAD и FBD, а также BEC (условный конец блока) и зависимость от инструкций MCR (Master Control Relay).

Замечание

Несмотря на то, что параметры OUTPUT блока FB или параметры INOUT блока FC и FB не будут выводится как случайные величины (старое значение выхода –или значение входа как выходная величина – поддерживаются даже если данные не записаны в параметр), следует выполнять перечисленные выше пункты, для того чтобы избежать случайной обработки "старой" величины.

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

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

4-18

Programming with STEP 7 V5.3

A5E00261405-01

Основы проектирования структуры программы

Данные, сохраняемые в экземплярном DB, не теряются, когда исполнение FB завершено. Однако, данные, сохраняемые в стеке локальных данных, теряются, когда исполнение FB завершено.

Замечание

Во избежание ошибок при работе с FB прочтите раздел Допустимые типы данных при передаче параметров в Приложении.

Применение

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

Функциональные блоки и экземплярные блоки данных

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

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

На следующем рисунке показаны формальные параметры FB, который

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

Формальные параметры

Фактические параметры

 

Старт INT IN

 

 

Целое (16 бит): пуск

Скорость INT

IN

 

Целое (16 бит): скорость

История DT IN_OUT

 

 

 

Время_работы TIME

IN_OUT

Дата и время (48 бит):

 

 

 

 

 

 

указатель на адрес истории

 

 

 

Время (32 бита): время работы

FB20:Двигатель

 

 

DB202: Двигатель _2

 

 

 

Переменные, имеющие тип данных FB

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

Programming with STEP 7 V5.3

4-19

A5E00261405-01

Основы проектирования структуры программы

переменные и концентрировать экземпляры данных в одном блоке данных (мультиэкземплярном).

Назначение фактических параметров формальным параметрам

В STEP 7 в общем случае нет необходимости назначать фактические параметры формальным параметрам FB. Однако имеется исключение из этого правила. Фактические параметры должны быть назначены в следующих ситуациях:

для параметра вход/выход (in/out) сложного типа данных (например, STRING, ARRAY или DATE_AND_TIME)

для всех параметрируемых типов (например, TIMER, COUNTER или

POINTER)

STEP 7 назначает фактические параметры формальным параметрам FB следующим образом:

Если Вы указываете фактические параметры в операторе вызова:

команды FB используют предоставленные фактические параметры.

Если Вы не указываете фактические параметры в операторе вызова:

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

В следующей таблице показано, каким переменным FB должны быть назначены фактические параметры.

 

Тип данных

 

 

Переменная

Элементарный тип

Составной тип

Параметрируемый тип

 

данных

данных

 

Вход

Параметр не нужен

Параметр не нужен

Нужен фактический параметр

Выход

Параметр не нужен

Параметр не нужен

Нужен фактический параметр

Вход/выход

Параметр не нужен

Нужен фактический

 

 

параметр

 

Присвоение начальных значений формальным параметрам

Вы можете присвоить начальные значения формальным параметрам в разделе описаний FB. Эти значения записываются в экземплярный DB, связанный с FB.

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

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

Переменная Тип данных

 

Элементарный тип

Составной тип

Параметрируемый

 

данных

данных

тип

Вход

Начальное значение

Начальное значение

 

разрешено

разрешено

 

4-20

Programming with STEP 7 V5.3

A5E00261405-01