Материал: Основы программирования микроконтроллеров на языке step 7. Слепокуров Ю.С

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

выхода из строя питания

появления неисправности или ошибки в программе

ВРЕМЯ ВЫПОЛНЕНИЯ ЦИКЛА

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

Время выполнения цикла (TC) не одинаково в каждом цикле. На следующих рисунках показаны различные времена выполнения циклов (TC1 TC2) для существующих и новых CPU:

Различные времена выполнения цикла для существующих CPU

 

Текущий цикл

Следующий цикл

Следующий

 

 

TЦ1

 

 

TЦ2

 

цикл

Обновление таб-

 

OB10

Обновление таб-

Обновление таб-

 

Обновление таб-

Обновление таб-

OB1

лицы образа про-

OB1

лицы образа про-

лицы образа про-

OB1

лицы образа про-

лицы образа про-

цесса на входах

OB1цесса на выходах

цесса на входах

цесса на выходах

цесса на входах

МАКСИМАЛЬНОЕ ВРЕМЯ ЦИКЛА

С помощью STEP 7 вы можете изменить максимальное время цикла, установленное по умолчанию. Когда это время истекает, или CPU переходит в режим STOP, или вызывается ОВ80, в котором вы можете определить, как CPU должен реагировать на эту ошибку.

МИНИМАЛЬНОЕ ВРЕМЯ ЦИКЛА

С помощью STEP 7 вы можете установить минимальное время цикла для S7-400 и CPU 318. Это полезно в следующих ситуациях:

если интервал, с которым запускается исполнение программы в ОВ1 (проход главной программы), всегда должен быть одним и тем же;

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

15

 

 

Время контроля цикла для существующих CPU

 

 

Текущий

 

 

 

 

Следующий

Тмах

 

 

 

 

 

 

 

 

 

Резерв

 

 

 

 

Тмin

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ТC

 

 

Тожи

 

 

 

PC16

 

 

 

 

 

OB40

 

 

PC07

 

OB10

 

 

OB10

 

 

 

Обновление

Обновление

 

 

Обновление

 

таблицы

об-

таблицы

об-

 

 

таблицы

об-

OB1

раза процесса OB1

OB1 раза процесса

 

 

раза процесса

PC01 на входах

 

на выходах

 

 

 

на входах

 

 

PC29

 

 

 

OB90

OB90

OB90

 

 

Тмах – максимальное время цикла, которое может быть установлено;

 

 

Тмin – минимальное время цикла, которое может быть установлено;

 

 

ТC – время исполнения текущего цикла;

 

 

 

 

 

 

Тожид – разность между Тмin и временем текущего цикла. В это время могут

 

 

обрабатываться произошедшие прерывания и фоновый ОВ ;

 

 

 

РС класс приоритета.

 

 

 

 

 

 

КОММУНИКАЦИОННАЯ НАГРУЗКА

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

Когда вы принимаете решение о нагрузке, добавляемой к циклу коммуникациями, помните, что время работы операционной системы дополнительно увеличивает время исполнения. Если вы устанавливаете коммуникационную нагрузку в 50 %, то это не удваивает, а более чем удваивает первоначальное время исполнения, дополнительное увеличение времени зависит от используемого CPU. Это иллюстрируется примером, основанным на наихудшей ситуации.

Случай 1:

Время работы операционной системы составляет 250 мс на 1 секунду времени цикла.

Программа пользователя имеет время исполнения 750 мс.

16

Нагрузка на цикл, вызванная коммуникациями, тестовыми функциями

иподготовительными функциями, составляет 0 %.

Цикл может быть представлен в упрощенной форме следующим образом:

0

 

1

 

2

 

3

 

 

 

 

 

 

t

Опс.

Прп.

O пс.

Прп.

Опс.

Прп.

с

250 мс

750 мс

250 мс

750 мс

250 мс

750 мс

 

 

время цикла 1000

 

 

 

 

Общеее время цикла = 1000 мс

 

 

 

 

Опс загрузка этапа выполнением функций операционной

 

Опс. = Загрузка этапа выполнения работой операционной системы

 

системы;

 

 

 

 

 

Прп. = Загрузка этапа выполнения программой пользователя

 

 

Случай 2:

Время работы операционной системы продолжает составлять 250 мс на 1 секунду времени цикла.

Программа пользователя продолжает работать 750 мс.

Нагрузка на цикл, вызванная коммуникациями, тестовыми функциями

иподготовительными функциями, теперь установлена на 50 %.

0

 

 

1

 

 

 

2

 

 

3

t

 

 

 

 

 

 

 

 

 

 

 

Опс.

Комм.

Прп.

Опс.

 

Комм.

Прп.

Опс.

Комм.

Прп.

с

250 мс

500 мс

250 мс

250 мс

500 мс

250 мс

250 мс

500 мс

250 мс

 

 

 

 

Общее

время цикла = 3000 мс

 

 

 

 

 

 

время цикла = 3000 мс

 

 

 

 

 

 

Коммуникации = 1500 мс

 

 

 

 

 

 

 

Коммуникации = 1500 мс

 

 

 

 

Опс загрузка этапа выполнением функций операционной системы;

 

 

Комм загрузка этапа коммуникационными операциями;

 

 

 

Опс.

= Загрузка этапа выполнения работой операционной системы

 

 

Комм. = Заг

 

в полнения коммуникациями

 

 

 

 

Прп загрузкаэтапа выполнением программы пользователя.

 

 

Прп.

= Загрузка этапа выполнения программой пользователя

 

 

 

Таким образом, загрузка этапа выполнения коммуникациями составляет 1500 мс на цикл.

В этом примере установка коммуникационной нагрузки на 50 % увеличивает время цикла с 1 секунды до 3 секунд, иными словами, общее время цикла утраивается.

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

ФУНКЦИИ (FC)

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

17

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

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

Применение

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

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

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

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

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

ФУНКЦИОНАЛЬНЫЕ БЛОКИ (FB)

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

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

ПРИМЕНЕНИЕ

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

18

ФУНКЦИОНАЛЬНЫЕ БЛОКИ И ЭКЗЕМПЛЯРНЫЕ БЛОКИ ДАННЫХ

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

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

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

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

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

Старт

INT

IN

IN

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

Скорость

INT

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

История DT IN_OUT

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

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

 

 

 

 

 

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

 

 

 

 

 

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

FB20: Двигатель

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

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

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

НАЗНАЧЕНИЕ ФАКТИЧЕСКИХ ПАРАМЕТРОВ ФОРМАЛЬНЫМ ПАРАМЕТРАМ

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

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

19

Смотрите также:

12
1673
271
2863
2994
3788
3857
54
5719
605