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

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

логической операции равен 1;

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

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

Пример

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

CC FC12 (Вызвать FC12, если RLO равен 1);

UC FC12 (Вызвать FC12 независимо от значения RLO).

27.4.ЗАВЕРШЕНИЕ БЛОКОВ

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

Безусловный конец блока (BEU): Эта команда завершает обработку текущего блока и возвращает управление блоку, вызвавшему завершенный блок. Когда программа встречает команду BEU, она завершает текущий блок независимо от результата логической операции;

Условный конец блока (BEC): Эта команда завершает обработку текущего блока и возвращает управление блоку, вызвавшему завершенный блок. Когда программа встречает команду BEC, она завершает текущий блок только в том случае, если результат логической операции равен 1 (RLO = 1). Если RLO равен 0, то программа не выполняет оператор Условный конец блока (BEC). RLO устанавливается в 1, и обработка программы продолжается внутри текущего блока.

28. ПРИМЕРЫ ПРОГРАММИРОВАНИЯ

28.1. ГЕНЕРАТОР ТАКТОВЫХ ИМПУЛЬСОВ

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

При использовании S7–300 вы можете реализовать функцию генератора тактовых импульсов, применив управляемую временем обработку в специальных организационных блоках. Пример, показанный в следующей программе на языке Список операторов, иллюстрирует использование таймерных функций для генерирования тактовых импульсов.

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

130

длительность импульсов 1:1). Частота принимает значения, приведенные в таблице П1.

 

AWL

Объяснение

 

AN T1

Если таймер T 1 закончил работу, загрузить в Т 1

 

L S5T#250ms

значение времени 250 мс и запустить T 1 как

 

SE T1

формирователь продленного импульса.

 

NOT

Инвертировать результат логической операции.

 

BEC

Если таймер работает, завершить текущий блок. Если

 

L MB100

таймер завершил работу, загрузить содержимое байта

 

INC 1

памяти MB100, увеличить это содержимое на 1 и

 

T MB100

передать результат в байт памяти MB100.

Опрос сигнала таймера T 1 определяет результат логической операции.

1

0

250 ms

t(c)

Как только время таймера истекает, таймер запускается вновь. Поэтому опрос сигнала, который выполняется оператором AN T 1, выдает состояние сигнала "1" очень кратковременно.

Каждые 250 мс бит RLO становится равным 0. Тогда команда BEC не завершает обработку блока. Вместо этого увеличивается на 1 содержимое байта памяти MB100.

Содержимое байта памяти MB100 меняется каждые 250 мс следующим образом: 0 →1→2→3→ ... →254→255→0→1 ...

Достижение определенной частоты

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

 

 

 

Таблица П1

Биты MB100

Частота в герцах

 

Длительность

M 100.0

2.0

0,5 с (250 мс вкл./250 мс выкл.)

M 100.1

1.0

1

с (0.5 с вкл./0.5 с выкл.)

M 100.2

0.5

2

с (1 с вкл./1 с выкл.)

M 100.3

0.25

4

с (2 с вкл./2 с выкл.)

M 100.4

0.125

8

с (4 с вкл./4 с выкл.)

M 100.5

0.0625

16 с (8 с вкл./8 с выкл.)

131

M 100.6

 

0.03125

32 с (16 с вкл./16 с выкл.)

M 100.7

 

0.015625

64 с (32 с вкл./32 с выкл.)

 

 

 

 

 

 

 

AWL

 

 

 

Объяснение

 

A M10.0

 

 

M 10.0 = 1, когда появляется неисправность.

 

A M 100.0

 

 

 

= Q4.0

 

 

Лампа, сигнализирующая о неисправности, мигает с

 

 

 

 

частотой 1 Гц при ее появлении.

 

 

28.2. ОПЕРАЦИИ СЧЕТА И СРАВНЕНИЯ

Зона хранения со счетчиком и компаратором

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

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

Рис. 28.1. Зона хранения со счетчиком и компаратором

132

AWL

Объяснение

A I0.0

Каждый импульс, сгенерированный фотодатчиком 1,

CU C1

увеличивает значение счетчика С 1 на единицу, подсчитывая тем

 

самым количество пакетов, поступающих в зону хранения.

A I0.1

Каждый импульс, сгенерированный фотодатчиком 2, уменьшает

CD C1

значение счетчика С 1 на единицу, подсчитывая тем самым

 

количество пакетов, покидающих зону хранения.

AN C1

Если значение счетчика равно 0, загорается индикаторная лампа

= Q4.0

«Зона хранения пуста».

A C1

Если значение счетчика не равно 0, загорается индикаторная

= Q4.1

лампа «Зона хранения не пуста».

L +50

Если 50 меньше или равно значению счетчика, то загорается

L C1

<= I

индикаторная лампа «Зона хранения заполнена на 50%».

= Q4.2

 

L +90

Если значение счетчика больше или равно 90, то загорается

>= I

индикаторная лампа «Зона хранения заполнена на 90%».

= Q4.3

 

L C1

Если значение счетчика больше или равно 100, то загорается

L 100

индикаторная лампа «Зона хранения заполнена на 100%».

>= I

(Cледует также использовать выход Q 4.4 для блокировки

= Q4.4

конвейера 1.)

ЛИТЕРАТУРА

1.Ганс Бергер. Автоматизация посредством STEP 7 с использованием

STL и SCL и программируемых контроллеров SIMATIC S7 -300/400. SIEMENS, 2001. 776 с.

2.Программирование с помощью STEP 7 версии 5.0. Техническая документация. SIEMENS, 2001. 551 с.

133

ОГЛАВЛЕНИЕ

 

1. ЗНАКОМСТВО С ПРОДУКТОМ .........................................................................

3

Что такое STEP 7? ..................................................................................................

3

2. ОСНОВЫ ПРОЕКТИРОВАНИЯ СТРУКТУРЫ ПРОГРАММЫ.......................

4

Операционная система...........................................................................................

5

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

5

3. БЛОКИ В ПРОГРАММЕ ПОЛЬЗОВАТЕЛЯ.......................................................

5

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

5

Типы блоков............................................................................................................

6

Организационные блоки и структура программы..............................................

6

Приоритет организационного блока ....................................................................

7

Типы прерываний и классы приоритета..............................................................

7

Изменение приоритета...........................................................................................

9

Локальные данные..................................................................................................

9

Стартовая информация OB..................................................................................

10

Отмененные ОВ прерываний..............................................................................

10

Циклическая обработка программы...................................................................

10

Обработка программы, управляемая событиями..............................................

10

Иерархия вызовов в программе пользователя...................................................

11

Порядок и глубина вложения..............................................................................

11

Вызовы блоков......................................................................................................

12

4. ТИПЫ БЛОКОВ И ЦИКЛИЧЕСКАЯ ОБРАБОТКА ПРОГРАММЫ.............

13

Организационный блок для циклической обработки программы (OB1) .......

13

Последовательность циклической обработки программы...............................

13

Образ процесса .....................................................................................................

14

Программирование циклической обработки программы ................................

14

Прерывания...........................................................................................................

14

Время выполнения цикла ....................................................................................

15

Максимальное время цикла.................................................................................

15

Минимальное время цикла..................................................................................

15

Коммуникационная нагрузка..............................................................................

16

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

17

Применение......................................................................................................

18

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

18

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

18

Применение...........................................................................................................

18

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

19

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

19

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

19

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

20

Экземплярные блоки данных..............................................................................

21

134