Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1882

.pdf
Скачиваний:
6
Добавлен:
15.11.2022
Размер:
978.4 Кб
Скачать

для всех параметрируемых типов (например, 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

Тип прерывания

ОВ прерываний

Примеры применения

 

задержкой

 

должен продолжать

работать в

 

 

течение 20 с после выключения

 

 

двигателя

 

 

Циклическое

OB30 OB38

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

прерывание

 

управления по замкнутому контуру

Аппаратное

OB40 OB47

Сообщение

о

достижении

прерывание

 

максимального уровня в резервуаре

ОРГАНИЗАЦИОННЫЕ БЛОКИ ПРЕРЫВАНИЙ ПО ВРЕМЕНИ (OB10 OB17)

CPU S7 предоставляют в распоряжение ОВ прерываний по времени суток, которые могут исполняться в указанный день или через определенные интервалы времени.

Прерывания по времени суток могут запускаться следующим образом:

однократно в определенное время (указанное в абсолютной форме с

датой);

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

ПРАВИЛА ДЛЯ ПРЕРЫВАНИЙ ПО ВРЕМЕНИ

Прерывания по времени могут исполняться только тогда, когда прерыванию были назначены параметры и в программе пользователя существует соответствующий организационный блок. Если это не так, в диагностический буфер вносится сообщение об ошибке и выполняется обработка асинхронной ошибки (ОВ80, см. Организационные блоки обработки ошибок (ОВ70 ОВ87 / ОВ121 ОВ122)).

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

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

ОВ прерываний по времени, отмененные при назначении параметров, не могут быть запущены. CPU распознает ошибку программирования и переходит в STOP.

После теплого рестарта прерывания по времени должны быть установлены заново (например, с помощью SFC30 ACT_TINT в программе запуска).

25

ЗАПУСК ПРЕРЫВАНИЯ ПО ВРЕМЕНИ

Чтобы дать CPU возможность запустить прерывание по времени, вы должны сначала установить, а затем активизировать это прерывание. Существуют три способа запуска этого прерывания:

автоматический запуск прерывания по времени путем назначения подходящих параметров с помощью STEP 7 (блок параметров ”time-of-day interrupts [прерывания по времени]")

установка и активизация прерывания по времени с помощью SFC28 SET_TINT и SFC30 ACT_TINT из программы пользователя

установка прерывания по времени interrupt путем назначения параметров с помощью STEP 7 и его активизация с помощью SFC30 ACT_TINT

впрограмме пользователя.

ОПРОС ПРЕРЫВАНИЙ ПО ВРЕМЕНИ

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

вызвать SFC31 QRY_TINT;

запросить список ”interrupt status [состояние прерываний]" из списка состояний системы.

ДЕАКТИВИЗАЦИЯ ПРЕРЫВАНИЙ ПО ВРЕМЕНИ Вы можете деактивировать еще не исполненные прерывания по времени

спомощью SFC29 CAN_TINT. Деактивированные прерывания по времени могут быть снова установлены с помощью SFC28 SET_TINT и активизированы

спомощью SFC30 ACT_TINT.

ПРИОРИТЕТ ОВ ПРЕРЫВАНИЙ ПО ВРЕМЕНИ

Все восемь ОВ прерываний по времени по умолчанию имеют один и тот же класс приоритета (2) и поэтому обрабатываются в порядке возникновения событий запуска. Однако вы можете изменить этот класс приоритета выбором подходящих параметров.

ИЗМЕНЕНИЕ УСТАНОВЛЕННОГО ВРЕМЕНИ

Вы можете изменить время, установленное для прерывания следующим образом:

мастер часов синхронизирует время для master- и slave-устройств;

для установки нового времени в программе пользователя может быть вызван SFC0 SET_CLK.

РЕАКЦИЯ НА ИЗМЕНЕНИЕ ВРЕМЕНИ

Следующая таблица показывает, как прерывания по времени реагируют на изменение времени.

26

Если...

 

 

 

 

То...

 

 

 

время было передвинуто вперед и

запускается

OB80,

и

пропущенные

одно или более прерываний по

прерывания по времени вводятся в

времени были пропущены

 

стартовую информацию OB80.

вы деактивировали пропущенные

пропущенные

прерывания

по времени

прерывания по времени в OB80

более не исполняются.

 

 

вы

не

деактивировали

первое пропущенное

прерывание по

пропущенные

прерывания

по

времени выполняется, а остальные

времени в OB80

 

 

 

игнорируются.

 

 

 

в результате сдвига времени назад

выполнение прерывания по времени не

какое-либо из

событий

для

повторяется.

 

 

 

прерываний

по

времени

 

 

 

 

происходит снова

 

 

 

 

 

 

ОРГАНИЗАЦИОННЫЕ БЛОКИ ПРЕРЫВАНИЙ С ЗАДЕРЖКОЙ (OB20 OB23)

CPU S7 предоставляют в распоряжение ОВ прерываний с задержкой, с помощью которых вы можете программировать отложенное исполнение частей своей пользовательской программы.

Правила для прерываний с задержкой

Прерывания с задержкой могут исполняться только при наличии соответствующего организационного блока в программе CPU. Если это не так, то в диагностический буфер вносится сообщение об ошибке и производится обработка асинхронной ошибки (ОВ80, Организационные блоки обработки ошибок (ОВ70 ОВ87 / ОВ121 OB122)).

ОВ прерываний с задержкой, отмененные при назначении параметров, не могут быть запущены. CPU распознает ошибку программирования и переходит в STOP.

Прерывания с задержкой запускаются, когда истекло время, указанное в

SFC32 SRT_DINT.

Запуск прерывания с задержкой

Для запуска прерывания с задержкой вы должны указать в SFC32 время задержки, по истечении которого вызывается соответствующий ОВ прерываний с задержкой. За информацией о максимально разрешенной величине задержки времени обратитесь к литературе "Программируемые контроллеры S7-300. Аппаратное обеспечение и руководство по монтажу" и "Система автоматизации S7-400, M7-400. Данные модулей. Справочное руководство".

Приоритет ОВ прерываний с задержкой По умолчанию для ОВ прерываний с задержкой установлены классы

27

приоритета с 3 по 6. Вы можете назначить параметры для изменения классов приоритета.

ОРГАНИЗАЦИОННЫЕ БЛОКИ ЦИКЛИЧЕСКИХ ПРЕРЫВАНИЙ (OB30 OB38)

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

Циклические прерывания запускаются через определенные интервалы. Временем, от которого начинается отсчет интервалов, является переход из режима STOP в RUN.

Правила для циклических прерываний

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

Если вы назначаете параметры для отмены ОВ циклических прерываний, то они не могут быть более запущены. CPU распознает ошибку программирования и переходит в STOP.

Запуск циклического прерывания

Для запуска циклического прерывания вы должны с помощью STEP 7 указать интервал в блоке параметров циклических прерываний. Этот интервал всегда представляет собой целое кратное от базового тактового интервала в 1 мс.

Интервал = n x базовый тактовый интервал в 1 мс.

Каждый из восьми доступных ОВ циклических прерываний имеет интервал по умолчанию (см. следующую таблицу). Интервал по умолчанию становится действенным, когда загружается назначенный ему ОВ циклических прерываний. Однако вы можете назначить параметры для изменения значений по умолчанию. Для получения информации о верхнем пределе обратитесь к руководствам "Программируемые контроллеры S7-300. Аппаратное обеспечение и руководство по монтажу" и "Система автоматизации S7-400, M7400. Данные модулей. Справочное руководство".

Сдвиг фазы в циклических прерываниях

Во избежание одновременного запуска циклических прерываний от различных ОВ и возможного при этом появления временной ошибки (превышение времени цикла) вы можете указать сдвиг фазы. Сдвиг фазы гарантирует, что исполнение циклического прерывания откладывается на определенное время после истечения интервала.

Сдвиг фазы = m х базовый тактовый интервал (где 0 m < n)

На следующем рисунке показано, как исполняется ОВ циклических прерываний с фазовым сдвигом (OB37) в сравнении с циклическим

28

прерыванием без фазового сдвига (OB38).

 

 

 

 

Тактовый

 

 

 

 

 

 

 

импульс

 

 

 

 

 

 

 

OB 38

 

 

 

 

 

 

 

(n=8, m=0)

 

 

 

 

 

 

 

OB 37

 

 

 

 

 

 

 

(n=16, m=5)

 

 

 

 

 

 

 

0

8

16

24

32

40

48

t [мс]

 

 

 

16 + 5

 

32 + 5

 

48 +5

 

Приоритет ОВ циклических прерываний

 

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

ОВ

Интервал в мс

Класс приоритета

циклических

 

 

прерываний

 

 

OB30

5000

7

OB31

2000

8

OB32

1000

9

OB33

500

10

OB34

200

11

OB35

100

12

OB36

50

13

OB37

20

14

OB38

10

15

ОРГАНИЗАЦИОННЫЕ БЛОКИ АППАРАТНЫХ ПРЕРЫВАНИЙ

(OB40 OB47)

CPU S7 предоставляет в распоряжение ОВ аппаратных прерываний, которые реагируют на сигналы от модулей (например, сигнальных модулей (SM), коммуникационных процессоров (СР), функциональных модулей (FM)). С помощью STEP 7 вы можете установить, какой сигнал от параметрируемого цифрового или аналогового модуля запускает ОВ. В случае СР и FM используйте соответствующие диалоговые окна для назначения параметров.

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

29

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]