•выхода из строя питания
•появления неисправности или ошибки в программе
ВРЕМЯ ВЫПОЛНЕНИЯ ЦИКЛА
Время выполнения цикла – это время, необходимое операционной системе для выполнения циклической программы и всех программных секций, прерывающих цикл (например, выполнение других организационных блоков), и системных операций (например, обновления образа процесса). Это время контролируется.
Время выполнения цикла (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