1882
.pdfлогической операции равен 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
Создание экземплярного DB .......................................................................... |
|
21 |
||
Один экземплярный DB для каждого отдельного экземпляра................... |
21 |
|||
Один |
экземплярный |
DB |
для нескольких экземпляров |
FB |
(мультиэкземпляры)............................................................................................. |
|
|
21 |
|
Один |
экземплярный DB |
для |
нескольких экземпляров различных |
FB |
(мультиэкземпляры)............................................................................................. |
|
|
22 |
|
5. СОВМЕСТНО ИСПОЛЬЗУЕМЫЕ БЛОКИ ДАННЫХ (DB)........................... |
22 |
|||
Совместно используемые блоки данных в программе пользователя............. |
22 |
|||
6. СИСТЕМНЫЕ ФУНКЦИОНАЛЬНЫЕ БЛОКИ (SFB) И СИСТЕМНЫЕ |
||||
ФУНКЦИИ (SFC)...................................................................................................... |
|
|
23 |
|
Предварительно запрограммированные блоки................................................. |
23 |
|||
Системные функциональные блоки................................................................... |
23 |
|||
Системные функции............................................................................................. |
|
|
23 |
7.ОРГАНИЗАЦИОННЫЕ БЛОКИ ДЛЯ ОБРАБОТКИ ПРОГРАММ,
УПРАВЛЯЕМОЙ ПРЕРЫВАНИЯМИ ................................................................... |
24 |
Организационные блоки прерываний по времени (OB10 − OB17) ................ |
25 |
Правила для прерываний по времени ................................................................ |
25 |
Запуск прерывания по времени........................................................................... |
26 |
Опрос прерываний по времени........................................................................... |
26 |
Деактивизация прерываний по времени............................................................ |
26 |
Приоритет ОВ прерываний по времени............................................................. |
26 |
Изменение установленного времени.................................................................. |
26 |
Реакция на изменение времени........................................................................... |
26 |
Организационные блоки прерываний с задержкой (OB20 − OB23)............... |
27 |
Правила для прерываний с задержкой.......................................................... |
27 |
Запуск прерывания с задержкой.................................................................... |
27 |
Приоритет ОВ прерываний с задержкой ...................................................... |
27 |
Организационные блоки циклических прерываний (OB30 − OB38).............. |
28 |
Правила для циклических прерываний......................................................... |
28 |
Запуск циклического прерывания ................................................................. |
28 |
Сдвиг фазы в циклических прерываниях...................................................... |
28 |
Приоритет ОВ циклических прерываний..................................................... |
29 |
Организационные блоки аппаратных прерываний (OB40 − OB47)............... |
29 |
Правила для аппаратных прерываний........................................................... |
30 |
Назначение параметров сигнальным модулям, способным к аппаратным |
|
прерываниям.................................................................................................... |
30 |
Приоритет ОВ аппаратных прерываний....................................................... |
30 |
Организационные блоки запуска (OB100 / OB101 / OB102)........................... |
30 |
Типы запуска.................................................................................................... |
30 |
Стартовые события для ОВ запуска.............................................................. |
31 |
Программа запуска.......................................................................................... |
31 |
Тип запуска после ручного рестарта............................................................. |
31 |
135
Тип запуска после автоматического рестарта.............................................. |
31 |
Очистка образа процесса................................................................................ |
31 |
Контроль существования и типа модулей.................................................... |
32 |
Времена контроля............................................................................................ |
32 |
Фоновый организационный блок (OB90) .......................................................... |
32 |
Приоритет фонового ОВ................................................................................. |
32 |
Программирование ОВ90 ............................................................................... |
32 |
Организационные блоки обработки ошибок (OB70 − OB87 / OB121 − |
|
OB122) ................................................................................................................... |
33 |
Типы ошибок.................................................................................................... |
33 |
Использование ОВ для синхронных ошибок............................................... |
34 |
Использование ОВ асинхронных ошибок .................................................... |
34 |
Маскирование стартовых событий................................................................ |
34 |
8. ЗАПУСК STEP 7.................................................................................................... |
35 |
SIMATIC Manager............................................................................................ |
35 |
Запуск STEP 7 со стартовыми параметрами, используемыми по |
|
умолчанию........................................................................................................ |
36 |
Установка параметров путем копирования и вставки................................. |
36 |
Пример параметров:........................................................................................ |
36 |
Замечания о структуре пути к проекту ......................................................... |
36 |
Замечания о структуре логического пути..................................................... |
37 |
Объекты и их иерархия........................................................................................ |
37 |
Объекты и их иерархия................................................................................... |
37 |
Объекты как носители свойств...................................................................... |
38 |
Объекты как папки.......................................................................................... |
38 |
Объекты как носители функций .................................................................... |
38 |
Объект Программируемый модуль................................................................ |
42 |
Объект Программа S7/M7............................................................................... |
43 |
9. АБСОЛЮТНАЯ И СИМВОЛИЧЕСКАЯ АДРЕСАЦИЯ.................................. |
48 |
Абсолютные адреса.............................................................................................. |
48 |
Символические адреса......................................................................................... |
48 |
Структура и компоненты таблицы символов.................................................... |
50 |
Структура таблицы символов ........................................................................ |
50 |
Столбцы O/M/C................................................................................................ |
50 |
Символическое имя (Symbol)......................................................................... |
50 |
Адрес (Address)................................................................................................ |
50 |
Тип данных (Data Type) .................................................................................. |
51 |
Комментарий (Comment) ................................................................................ |
51 |
Преобразование в переменные языка С........................................................ |
51 |
Адреса и типы данных, разрешенные в таблице символов............................. |
51 |
Общие советы по вводу символов...................................................................... |
53 |
10. СОЗДАНИЕ БЛОКОВ ....................................................................................... |
54 |
Типы данных, определенные пользователем (UDT) ........................................ |
54 |
136
Структура типа данных, определенного пользователем.................................. |
55 |
Свойства блоков................................................................................................... |
55 |
11. СОЗДАНИЕ БЛОКОВ ПРОГРАММЫ НА AWL ............................................ |
57 |
Что такое Список операторов?....................................................................... |
57 |
Язык программирования AWL....................................................................... |
57 |
Программный пакет ........................................................................................ |
57 |
12. СТРУКТУРА И КОМПОНЕНТЫ КОМАНД И ОПЕРАТОРОВ ................... |
58 |
Компоненты оператора................................................................................... |
58 |
Операнд команды............................................................................................ |
58 |
Биты слова состояния...................................................................................... |
58 |
Символическое имя......................................................................................... |
61 |
Блок данных и адрес в блоке данных............................................................ |
62 |
Идентификаторы операндов........................................................................... |
62 |
Работа со словом или двойным словом как с объектом данных................ |
63 |
Области памяти и их функции....................................................................... |
63 |
13. АДРЕСАЦИЯ....................................................................................................... |
65 |
13.1. Непосредственная адресация.................................................................... |
65 |
13.2. Прямая адресация....................................................................................... |
66 |
13.3. Косвенная адресация через память............................................................ |
66 |
Формат указателя............................................................................................. |
67 |
13.4. Адресные регистры................................................................................... |
67 |
13.5. Косвенная адресация внутри области через регистр............................... |
68 |
Вычисление адреса операнда......................................................................... |
68 |
Формат указателя............................................................................................. |
69 |
14. ОПЕРАЦИИ С АККУМУЛЯТОРАМИ И КОМАНДЫ, ИСПОЛЬЗУЮЩИЕ |
|
АДРЕСНЫЕ РЕГИСТРЫ ......................................................................................... |
70 |
Пояснения к некоторым командам..................................................................... |
72 |
Инкрементирование и декрементирование .................................................. |
72 |
+AR1 и +AR2: прибавление константы к адресному регистру 1 или |
|
адресному регистру 2...................................................................................... |
73 |
15. БИТОВЫЕ ЛОГИЧЕСКИЕ ОПЕРАЦИИ........................................................ |
73 |
15.1. Булева битовая логика................................................................................ |
73 |
Таблица истинности внутри булевой логической цепи .............................. |
74 |
Операнды основных функций........................................................................ |
74 |
15.2. Анализ условий с помощью И, ИЛИ и исключающего ИЛИ................. |
76 |
Отношение результата к 0 .............................................................................. |
76 |
15.3. Команды для оценки фронтов: FP, FN...................................................... |
77 |
15.4. Выход цепи булевых логических операций............................................. |
79 |
15.5. Команды установки и сброса: S и R.......................................................... |
79 |
15.6. Команда присваивания (=) ......................................................................... |
80 |
15.7. Отрицание, установка, сброс и сохранение RLO..................................... |
80 |
16. ТАЙМЕРНЫЕ КОМАНДЫ ............................................................................... |
80 |
Имеющиеся в распоряжении команды.......................................................... |
80 |
137
16.1. Размещение таймера в памяти и компоненты таймера........................... |
81 |
16.2. примеры таймеров....................................................................................... |
82 |
Таймер как формирователь импульса: SP..................................................... |
82 |
Таймер как формирователь удлиненного импульса: SE ............................. |
84 |
Таймер как формирователь задержки включения: SD ................................ |
85 |
Таймер как формирователь задержки включения с запоминанием: SS .... |
86 |
Таймер как формирователь задержки выключения: SF .............................. |
88 |
17. ОПЕРАЦИИ СО СЧЕТЧИКАМИ...................................................................... |
89 |
17.1. Установка, сброс и разблокировка счетчика............................................ |
90 |
Пример установки счетчика........................................................................... |
90 |
Сброс счетчика................................................................................................. |
90 |
Разблокировка счетчика для повторного пуска........................................... |
91 |
17.2. Прямой и обратный счет............................................................................. |
91 |
17.3. Загрузка значения счетчика в виде целого числа .................................... |
91 |
17.4. Загрузка значения счетчика в двоично-десятичном формате ............... |
92 |
17.5. Пример счетчика.......................................................................................... |
92 |
18. КОМАНДЫ ЗАГРУЗКИ И ПЕРЕДАЧИ........................................................... |
94 |
18.1. Загрузка и передача..................................................................................... |
94 |
Непосредственная адресация......................................................................... |
95 |
Прямая и косвенная адресация ...................................................................... |
96 |
18.2. Чтение слова состояния или передача в слово состояния ..................... |
96 |
18.3. Загрузка значений времени и счетчиков................................................... |
97 |
18.4. Загрузка и передача между адресными регистрами................................ |
97 |
18.5. Загрузка информации о блоке данных...................................................... |
98 |
19. АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ С ЦЕЛЫМИ ЧИСЛАМИ ..................... |
99 |
19.1. Основные арифметические операции....................................................... |
99 |
Связь между арифметическими операциями и аккумуляторами............... |
99 |
Анализ битов в слове состояния.................................................................. |
100 |
20. ОПЕРАЦИИ НАД ЧИСЛАМИ С ПЛАВАЮЩЕЙ ТОЧКОЙ...................... |
100 |
10.1. Основные арифметические операции..................................................... |
100 |
10.2. Образование абсолютной величины числа с плавающей точкой........ |
102 |
10.3. Расширенные арифметические операции............................................... |
102 |
21. ОПЕРАЦИИ СРАВНЕНИЯ.............................................................................. |
105 |
22. КОМАНДЫ ПРЕОБРАЗОВАНИЯ.................................................................. |
107 |
BCD в целое: BTI........................................................................................... |
108 |
BCD в двойное целое: BTD .......................................................................... |
109 |
Целое в BCD: ITB.......................................................................................... |
109 |
Целое в двойное целое: ITD ......................................................................... |
109 |
Двойное целое в BCD: DTB ......................................................................... |
109 |
Двойное целое в вещественное: DTR.......................................................... |
110 |
22.2. Преобразование чисел с плавающей точкой (32 бита) в целые числа (32 |
|
бита) ..................................................................................................................... |
110 |
22.3. Изменение последовательности байтов в аккумуляторе 1 ................. |
112 |
138
22.4.Образование дополнений и изменение знака чисел с плавающей
точкой.................................................................................................................. |
113 |
23. ЛОГИЧЕСКИЕ ОПЕРАЦИИ СО СЛОВАМИ............................................... |
115 |
24. КОМАНДЫ СДВИГА И ЦИКЛИЧЕСКОГО СДВИГА................................ |
116 |
Команды сдвига: числа без знака................................................................. |
116 |
Операции сдвига: числа со знаком.............................................................. |
117 |
Команды циклического сдвига .................................................................... |
118 |
25. ОПЕРАЦИИ С БЛОКАМИ ДАННЫХ ........................................................... |
120 |
26. КОМАНДЫ ПЕРЕХОДА................................................................................. |
120 |
26.1. Команды безусловного перехода............................................................. |
122 |
Перейти безусловно: JU................................................................................ |
122 |
Перейти по списку: JL................................................................................... |
122 |
26.2. Команды условного перехода, зависящие от результата логической |
|
операции.............................................................................................................. |
123 |
26.3. Команды условного перехода, зависящие от битов BR, OV или OS |
|
слова состояния .................................................................................................. |
124 |
26.4. Команды условного перехода, зависящие от значения битов CC 1 и CC |
|
0 слова состояния ............................................................................................... |
125 |
26.5. Циклическое управление.......................................................................... |
125 |
Метка перехода в качестве операнда .......................................................... |
126 |
27. КОМАНДЫ УПРАВЛЕНИЯ ПРОГРАММОЙ.............................................. |
127 |
27.1. Назначение параметров при вызове FC и FB........................................ |
127 |
Терминология................................................................................................. |
127 |
27.2. Вызов функций и функциональных блоков с помощью CALL ........... |
127 |
Формальные и фактические параметры...................................................... |
127 |
Задание фактических параметров................................................................ |
127 |
Вызов FB с экземплярным DB и параметрами блока................................ |
128 |
Вызов FC с параметрами блока.................................................................... |
129 |
Вызов FC, поставляющей возвращаемое значение.................................... |
129 |
27.3. Вызов функций и функциональных блоков с помощью CC и UC...... |
129 |
27.4. Завершение блоков.................................................................................... |
130 |
28. ПРИМЕРЫ ПРОГРАММИРОВАНИЯ ........................................................... |
130 |
28.1. Генератор тактовых импульсов............................................................... |
130 |
Достижение определенной частоты............................................................ |
131 |
28.2. Операции счета и сравнения.................................................................... |
132 |
Зона хранения со счетчиком и компаратором............................................ |
132 |
ЛИТЕРАТУРА......................................................................................................... |
133 |
ОГЛАВЛЕНИЕ........................................................................................................ |
134 |
139