Загрузил medyboy

Аппаратные средства и программное обеспечение промышленных контроллеров SIMATIC S7

Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«Магнитогорский государственный технический университет им. Г. И. Носова»
С.М. Андреев
М.Ю. Рябчиков
Е.С. Рябчикова
АППАРАТНЫЕ СРЕДСТВА
И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
ПРОМЫШЛЕННЫХ КОНТРОЛЛЕРОВ
SIMATIC S7
Утверждено Редакционно-издательским советом университета
в качестве учебного пособия
Магнитогорск
2017
УДК 681.518:004.3:004.436 (075)
ББК 32.965.8
А65
Рецензенты:
Проректор по учебной работе
ФГАОУ ВО «Южно-Уральский государственный университет»
(национальный исследовательский университет),
доктор технических наук, профессор
А.А. Радионов
Директор ЗАО «Консом СКС»,
доктор технических наук
Е.Н. Ишметьев
А65
Андреев, С.М.
Аппаратные средства и программное обеспечение промышленных контроллеров SIMATIC S7 : учеб. пособие / С.М. Андреев, М.Ю. Рябчиков, Е.С. Рябчикова. Магнитогорск : Изд-во
Магнитогорск. гос. техн. ун-та им. Г.И. Носова, 2017. 231 с.
ISBN 978-5-9967-0940-3
В пособии изложены основные принципы использования, область применения
и основы программирования логических контроллеров фирмы Siemens SIMATIC S7300/400. Рассмотрены вопросы монтажа модулей, подключения внешних цепей и использования интегрированного программного пакета SIMATIC MANAGER.
Изучается базовый набор языков программирования STEP 7, включающий
языки контакторного плана (LAD) и списка операторов (STL). Рассматриваются операции релейной логики, работы с целыми и вещественными величинами, а также использования различных типов программных блоков, включая блоки данных, системные функции и блоки, входящие в стандартную библиотеку. Большое количество
примеров и наличие заданий на самостоятельную работу по каждой теме позволяет
читателю последовательно осваивать материал, изложенный в пособии. Приведенный
в пособии основной справочный материал достаточен для выполнения всех заданий
без привлечения дополнительной литературы.
Рекомендуется для студентов, обучающихся по укрупненной группе специальностей 27.00.00 «Управление в технических системах» уровней бакалавриата и
магистратуры для изучения дисциплин, связанных с применением интегрированных
систем проектирования и управления для построения управляющих систем на базе
промышленных контроллеров.
УДК 681.518:004.3:004.436 (075)
ББК 32.965.8
ISBN 978-5-9967-0940-3
© Магнитогорский государственный
технический университет
им. Г.И. Носова, 2017
© Андреев С.М.,
Рябчиков М.Ю.,
Рябчикова Е.С. 2017
ОГЛАВЛЕНИЕ
Введение ...........................................................................................................7
1. Структура интегрированной системы управления
Simatic S7-300/400 ......................................................................................... 10
1.1. Полевой уровень – уровень датчиков и исполнительных
устройств ....................................................................................................12
1.2. Уровень контроллеров .......................................................................16
1.3. Уровень человеко-машинного интерфейса (HMI) .......................... 18
1.4. Вопросы для самостоятельной подготовки .....................................23
2. Аппаратные средства контроллеров Simatic S7-300/400.................. 23
2.1. Общая структура микропроцессорного контроллера
Simatic S7-300/400 ..................................................................................... 25
2.2. Процессорные модули (CPU) ............................................................ 30
2.2.1. Виртуальная структура процессорного модуля ........................ 45
2.2.2. Распределение памяти в процессорном модуле ........................ 46
2.2.3. Организация и обработка программы ........................................49
2.2.4. Программные блоки процессорного модуля ............................. 51
2.3. Сигнальные модули ........................................................................... 53
2.3.1. Типы сигнальных модулей .......................................................... 55
2.3.2. Монтаж сигнальных модулей ..................................................... 58
2.3.3. Схемы внешних соединений сигнальных модулей
различных типов .................................................................................... 60
2.4. Вопросы для самостоятельной подготовки .....................................74
3. Настройка и программирование технологических контроллеров
SIMATIC S7 ...................................................................................................74
3.1. Основные понятия языка технологического программирования
STEP ........................................................................................................... 74
3.2. Слово состояния. Результат логической операции (RLO) .............. 79
3.3. Скобочные операции. Скобочный стек. Действия И перед ИЛИ.......83
3.4. Создание проекта в пакете Simatic Manager ....................................85
3.4.1. Последовательность операций создания нового проекта .........85
3.4.2. Порядок создания проекта .......................................................... 85
3.4.3. Запуск Simatic Manager и создание нового проекта .................. 86
3.4.4. Конфигурирование аппаратной части ........................................88
3.4.5. Заполнение таблицы символов ................................................... 89
3.4.6. Редактирование программой части проекта .............................. 90
3.4.7. Загрузка и отладка проекта ......................................................... 91
3.5. Адресация переменных в областях системной памяти ................... 93
3
3.6. Работа с программным пультом-имитатором ..................................94
3.6.1. Порядок работы совместно с симулятором «PLC-Sim» ........... 95
3.7. Задание к самостоятельной работе ................................................... 97
Самостоятельная работа №1. Конфигурирование станции ................ 97
3.8. Вопросы для самостоятельной подготовки ...................................101
4. Программирование элементарных логических операций
на языке технологического программирования STEP 7 .................... 102
4.1. Алгоритм формирования релейной схемы ....................................105
4.2. Особенности реализации комбинаторной переключательной
схемы на языке LAD ............................................................................... 105
4.3. Использование битов маркерной памяти при реализации
комбинаторных схем ............................................................................... 106
4.4. Катушки с памятью. Триггеры ........................................................ 110
4.5. Команды выделения фронта ............................................................ 115
4.6. Задания к самостоятельной работе ................................................. 118
Самостоятельная работа №2. Синтез комбинаторной схемы
по заданной таблице истинности ........................................................ 118
Самостоятельная работа №3. Разработка программы
для управления слябовой тележкой ................................................... 120
Самостоятельная работа №4. Реализация последовательности
шагов в комбинаторной схеме ........................................................... 121
Самостоятельная работа №5. Реализация многотактной схемы
по заданной диаграмме включений .................................................... 121
4.7. Вопросы для самостоятельной подготовки ...................................123
5. Работа с многобитными значениями ................................................. 124
5.1. Команды работы с аккумулятором процессора ............................. 124
5.2. Команды реализации счетчиков ..................................................... 131
5.3. Команды работы с таймерами ......................................................... 135
5.4. Команды над числовыми величинами ............................................ 140
5.4.1. Команды арифметических операций ........................................141
5.4.2. Математические функции ......................................................... 142
5.4.3. Функции сравнения....................................................................143
5.4.4. Функции побитового сдвига ..................................................... 144
5.4.5. Функции преобразования форматов ......................................... 147
5.4.6. Функции поразрядных логических операций .......................... 150
5.5. Задания к самостоятельной работе ................................................. 151
Самостоятельная работа №6. Перемещение данных
в аккумуляторах процессора ............................................................... 151
4
Самостоятельная работа №7. Реализация многотактных схем
с использованием счетчиков ............................................................... 152
Самостоятельная работа №8. Изучение работы таймеров
и реализация временных зависимостей ............................................. 152
Самостоятельная работа №9. Работа с математическими
функциями ............................................................................................ 156
5.6. Вопросы для самостоятельной подготовки ...................................157
6. Структурное программирование ........................................................ 158
6.1. Блоки данных, функциональные блоки и функции....................... 158
6.1.1. Блоки данных ............................................................................. 158
6.1.2. Функции и функциональные блоки .......................................... 161
6.2. Организационные блоки (блоки OB) .............................................. 165
6.2.1. Стартовые организационные блоки (ОВ100-ОВ102).............. 168
6.2.2. Прерывания по времени дня (OB10-ОВ17) ............................. 169
6.2.3. Циклические прерывания (OB30-ОВ38) ..................................170
6.2.4. Прерывание от аппаратуры (OB 40–ОВ 47) ............................ 171
6.2.5. Прерывание с задержкой (OB20–ОВ23) ..................................172
6.2.6. Прерывания асинхронных ошибок (OB80–OB87) .................. 173
6.2.7. Прерывания синхронных ошибок ............................................ 175
6.3. Стандартные библиотеки. Использование системных функций .....175
6.3.1. Системные функции и функциональные блоки
(System Function Blocks) ......................................................................177
6.3.2. Создание блока данных DB (SFC 22) .......................................181
6.3.3. Запись сообщения в диагностический буфер (SFC 52) .......... 182
6.3.4. Считывание системного времени SFC 64 ................................ 184
6.4. Использование мультиэкземплярной модели данных для
организации программы управления однотипными объектами ......... 185
6.4.1. Пример использования модели мультиэкземпляров .............. 188
6.5. Стандартные блоки ПИД-регулятора ............................................. 192
6.5.1. Структура контура управления с ПИД-регулятором. Основные
особенности и характеристики ........................................................... 192
6.5.2. Библиотечные функции ПИД-регуляторов. Состав, назначение
и принцип использования ...................................................................197
6.5.3. Пример реализации ПИД-регулятора и проверка его работы на
имитационной модели ......................................................................... 202
6.6. Задания к самостоятельной работе ................................................. 207
Самостоятельная работа №10. Программирование функций
и функциональных блоков ..................................................................207
Самостоятельная работа №11. Реализация организационных
блоков обработки прерываний............................................................ 208
5
Самостоятельная работа №12. Использование системных функций ...209
Самостоятельная работа №13. Использование мультиэкземплярной
модели данных для организации программы управления
однотипными объектами .....................................................................210
Самостоятельная работа №14. Разработка замкнутого контура
регулирования непрерывным параметром технологического
процесса с использованием стандартного ПИД-регулятора ............ 212
6.7. Вопросы для самостоятельной подготовки ...................................213
7. Тесты для самопроверки ......................................................................214
БИБЛИОГРАФИЧЕСКИЙ СПИСОК ................................................... 224
ПРИЛОЖЕНИЕ. Дополнительные задания для выполнения
самостоятельной работы .......................................................................... 225
6
ВВЕДЕНИЕ
С начала 1950-х годов в промышленное производство начинают
повсеместно внедряться системы регулирования, призванные обеспечить
автоматическое ведение технологических процессов и снизить величину
отклонения процесса от технологического регламента.
С усложнением технологического оборудования, внедрением новых процессов и технологий системы управления, построенные с использованием аналоговых и релейно-контакторных схем, перестали удовлетворять условиям надежности и безопасности работы технологического
оборудования. Кроме того, разнообразие элементной базы значительно
усложняло наладку и ремонт таких систем.
Появление в 60-х годах программируемых логических контроллеров (ПЛК, program logic controller – PLC), построенных на базе недорогих микропроцессоров, позволило реализовать большинство функций
блокировок и переключений программно, значительно снизив объем используемых технических средств. Совершенствование микропроцессоров
позволило реализовывать сложные вычислительные алгоритмы и программные регуляторы.
В настоящее время ПЛК практически вытеснили релейные схемы
управления и локальные регуляторы. Быстродействие, объем оперативной памяти, развитые средства коммуникаций современных ПЛК позволили строить разнообразные системы управления и реализовать алгоритмы управления, используя только программные средства, а миниатюрность и дешевизна контроллеров позволила интегрировать их абсолютно
во все процессы промышленного производства, начиная от основного
процесса получения продукта и заканчивая вспомогательными (сервисными) процессами обслуживания.
Одним из крупнейших производителей ПЛК является концерн
Siemens, выпускающий семейство технологических контроллеров и
средств автоматизации под торговой маркой SIMATIC, которая широко
известна во всем мире как синоним программируемых логических контроллеров. Сегодня под именем SIMATIC представлены полностью интегрированные системы автоматизации (Totally Integrated Automation).
Такие интегрированные системы представляют качественно новый
метод унификации систем автоматизации мирового производства и технологии, в котором аппаратные и программные средства управления сливаются в единую систему SIMATIC.
Широкая номенклатура технических средств автоматизации, входящих в это семейство, позволяет создавать приемлемые по стоимости
системы – от простейших (два–три входа/выхода) до систем управления
целыми производствами.
7
Интегрированные системы семейства SIMATIC Totally Integrated
Automation включают в себя:
 Системы автоматизации SIMATIC S7 и SIMATIC C7.
 Системы распределенного ввода-вывода SIMATIC DP.
 Промышленное программное обеспечение SIMATIC MANAGER.
 Программаторы SIMATIC PG.
 Промышленные компьютеры SIMATIC PC.
 Системы компьютерного управления SIMATIC WinAC.
 Человеко-машинный интерфейс SIMATIC HMI WinCC.
 Средства связи SIMATIC NET.
 Системы управления производственными процессами SIMATIC PCS 7.
В настоящем учебном пособии будут рассмотрены средства построения систем автоматизации, в частности программируемые логические контроллеры семейства SIMATIC S7, программное обеспечение
SIMATIC MANAGER и основы программирования микропроцессорных
логических контроллеров на базовых языках технологического программирования семейства STEP 7.
Основное назначение промышленных контроллеров – контроль
состояния объекта управления и формирование управляющих воздействий на объект управления с целью компенсации отклонения хода технологического процесса от заданного. В общем виде замкнутый контур
системы управления представлен на рис. 1.
Объект управления
Исполнительное
устройство
Датчики
Регулирующий
орган
Исполнительный
механизм
Система управления
Устройство
сопряжения
Рис. 1. Структурная схема контура управления параметрами
технологического процесса
Датчики технологического процесса используются для получения
информации о параметрах технологического процесса, таких как температура, давление, уровень, вес и т.д.
8
Система регулирования, используя какой-либо регулирующий алгоритм, на основании информации от датчиков технологического процесса формирует управляющий сигнал, который реализуется исполнительным устройством на объекте управления.
Контроллеры семейства SIMATIC S7 имеют модульную конструкцию, что обеспечивает подбор таких модулей, свойства которых в наиболее полной мере отвечают задачам автоматизации конкретного технологического объекта.
Все контроллеры, входящие в семейство SIMATIC, несмотря на
конструктивные различия, объединены единой идеологией работы, эксплуатации и программирования. Это достигается за счет единого программного обеспечения, реализующего язык технологического программирования STEP 7. Единый пакет программ Simatic Manager позволяет
разработать управляющую программу для любого контроллера данного
семейства, выполнить отладку программы с помощью встроенных
средств, произвести документацию разработанного проекта, оперативно
вносить в него изменения.
Эффективному применению контроллеров способствует возможность использования нескольких типов центральных процессоров различной производительности, наличие широкой гаммы модулей вводавывода дискретных и аналоговых сигналов, функциональных модулей и
коммуникационных процессоров.
Возможность сетевых коммуникаций позволяет создавать распределенные системы управления производствами и интегрироваться в системы управления верхнего уровня – системы диспетчеризации и визуализации управления – SCADA-системы.
В данном учебном пособии изложены основные элементы аппаратного и программного обеспечения контроллеров SIMATIC семейств
S7-300/400. Дано назначение, описание и характеристики модулей контроллера, изложен порядок работы с программным обеспечением Simatic
Manager и Simatic Net, приведен список основных команд языков программирования Lader Diagramm (LAD) и Statament List (STL), их работа, приведены примеры использования команд и типовых программных
конструкций.
Учебное пособие может быть полезно студентам и аспирантам для
получения начальных знаний по использованию и программированию
микропроцессорных контроллеров SIMATIC, а также инженерам служб
автоматизации, осуществляющим наладку и обслуживание систем промышленной автоматики.
9
1. СТРУКТУРА ИНТЕГРИРОВАННОЙ СИСТЕМЫ
УПРАВЛЕНИЯ SIMATIC S7-300/400
Сложность технологических процессов, требование к безопасности
ведения процесса для технологического персонала, а также требования
к конечной стоимости системы автоматизации, включая стоимость владения, привели к тому, что большинство фирм-производителей оборудования для автоматизации технологических процессов начали разрабатывать и внедрять комплексные (интегрированные) решения по автоматизации всего процесса в целом, начиная от средств получения информации и
реализации управляющих воздействий – датчиков и исполнительных
устройств – до средств человеко-машинного интерфейса и диспетчерского управления процессом, объединенные единой средой передачи информации. Применение единых стандартов и типовых решений в проектировании такой интегрированной системы позволяет снизить издержки
на разработку, внедрение и обслуживание системы в целом, а комплексная подготовка специалистов из обслуживающего персонала позволяет
сократить сроки ремонтов оборудования и его настройку на процесс.
Проекты автоматизированных систем контроля и управления для
большого спектра областей применения технических средств SIMATIC
позволяет выделить обобщенную схему их реализации, представленную
на рис. 2.
На нижнем (полевом) уровне – уровне управляемого процесса –
располагаются интеллектуальные датчики и исполнительные устройства.
Основное назначение полевого уровня – объединение всех сигналов
устройств, расположенных непосредственно на объекте управления. В
качестве среды передачи информации используются промышленные сети
протоколов AS-Interface и PROFIBUS-DP.
Средний уровень интегрированной системы представлен программируемыми логическими контроллерами SIMATIC, реализующие основные алгоритмы управления локальными контурами отдельных элементов
технологического процесса. Получая данные с датчиков полевого уровня
по промышленной сети PROFIBUS, программируемые контроллеры
формируют сигналы управления исполнительными устройствами, которые передаются на нижний уровень также по сети PROFIBUS.
Вся информация с управляющих контроллеров передается на систему верхнего уровня, реализующего функции визуализации процесса и
человеко-машинного интерфейса. Этот уровень реализован с использованием средств SIMATIC HMI. Передача данных на этот уровень осуществляется с использованием сетей PROFIBUS и Ethernet.
10
11
A
D
2
5
8
B
E
3
6
9
C
F
K9
.
0
K 11
K3
K4
K12
K5
K 13
K6
K 14
K7
S H IF T
K 15
IN S
DE L
E NT E R
AC K
ESC
S HIF T
H E LP
O P 17
SIMATIC DP
HEL P
K 16
K8
S IM A T IC
SIMATIC NET
SIMATIC NET
1
4
7
K2
K 10
K1
SIMATIC HMI
SIEMENS
SIMAT IC
S7-200
SF
RUN
STOP
I0.6
I0.7
I0.0
I0.1
I0.2
I0.3
I0.4
I0.5
Q0.5
Q0.0
Q0.1
Q0.2
Q0.3
Q0.4
CPU 212
ASI
Рис. 2. Обобщенная схема использования средств SIMATIC
SV
FM
SIMATIC
Controller
PG 740
SIEMENS
SIMATIC PG
SIMATIC PC
PROFIBUS-DP
PROFIBUS
Industrial Ethernet
Сеть MPI
Отдельно можно выделить уровни средств разработки, которые
позволяют осуществить настройку контроллеров, включая их программирование, разработку интерфейсов оператора, «привязку» адресов сигналов с датчиков и на исполнительные устройства к адресам контроллера, через которые производится обработка сигналов процессора.
1.1. Полевой уровень – уровень датчиков
и исполнительных устройств
Для передачи сигналов от датчиков используется интерфейс цифровой связи AS-Interface (ASI). Интерфейс ASI является коммуникационной системой, предназначенной для использования на самом нижнем
уровне иерархии промышленного автоматизированного комплекса. Как
правило, по интерфейсу ASI передаются сигналы от дискретных датчиков (концевые, путевые выключатели, датчики предельных значений
и т.д.), однако существует и спецификация интерфейса для передачи аналоговых сигналов.
В настоящее время в SIEMENS SIMATIC реализована спецификация интерфейса v.2.1, что позволяет подключать различные типы
устройств – дискретные и аналоговые датчики и исполнительные устройства. В качестве кабеля для передачи данных и напряжения питания используется плоский двухпроводной кабель. Если требуется подвести дополнительное питание к датчику или исполнительному устройству, то
дополнительно используется второй плоский двухпроводной кабель.
В качестве примера схемы соединений полевого уровня на рис. 3
показана структурная схема подключения технических средств.
AS-интерфейс является открытым интерфейсом и построен как интерфейс с ведущим устройством. Это означает, что в сети AS-интерфейса
присутствует одно единственное ведущее устройство, которое управляет
обменом данными. Это устройство опрашивает поочерёдно все ведомые
устройства AS–i одно за другим, ожидая от каждого ответ. Время цикла
опроса не превышает 5 мс. Ведущее устройство также контролирует напряжение на кабеле, а также передаваемые данные. Оно распознаёт ошибки передачи и выход из строя ведомых устройств и передаёт сообщение на PLC.
Ведущее устройство поддерживает адресацию к 31 ведомому
устройству. За счет модулей с расширенной адресации возможно подключение до 62 ведомых устройств.
Адрес ведомого устройства AS-интерфейса является его идентификатором. Присвоение адреса происходит в системе AS-интерфейса
только один раз. Установку адреса можно выполнить либо с помощью
специального модуля задания сетевых адресов, либо с помощью ведущего устройства AS-интерфейса. Адрес постоянно хранится в ведомом
устройстве. При изготовлении в устройство по умолчанию всегда записывается адрес «0».
12
мм
мм
Сечение кабеля
AS-интерфейса
мм
Рис. 3. Пример структурной схемы подключения устройств
AS-интерфейса
В качестве ведомых устройств могут выступать как интеллектуальные устройства с AS-интерфейсом, так и специальные расширители с
AS-интерфейсом, которым могут быть подключены до 4-х стандартных
датчиков и исполнительных устройств.
Для построения сети передачи данных AS-интерфейса используются следующие технические средства:
1. Ведущее устройство AS-интерфейса.
2. Ведомые устройства AS-интерфейса, которые в зависимости от
конструкции разделяются на следующие устройства:
2.1. Модули AS-интерфейса.
2.2. Датчики/исполнительные механизмы со встроенным ASинтерфейсом.
3. Кабель AS-интерфейса.
4. Блок питания AS-интерфейса.
5. Прибор для задания адресов.
13
6. Программа для параметризации AS-интерфейса и задания адресов ведомым устройствам.
В качестве кабеля AS-интерфейса используется специальный
плоский кабель 2×1,5 мм2. По одному кабелю передаются одновременно
и данные, и напряжение питания. Профиль кабеля не позволяет произвести ошибочное подключение и нарушение полярности. Если для исполнительного требуется большая мощность, то используется дополнительный источник питания, напряжение от которого передается по дополнительному кабелю.
Подключение модулей AS-интерфейса осуществляется методом
прокалывания изоляции оболочки кабеля. Острые контакты в виде игл
прорезают резиновую изоляцию кабеля и соприкасаются с обеими жилами. В результате достигается хороший контакт и гарантируется надежная передача данных. Такой метод подключения позволит исключить
разрывы кабеля, с кабеля не требуется удалять изоляцию или использовать клеммно-блочные соединители. При отключении устройств от ASинтерфейса и извлечении контактов из кабеля оболочка восстанавливается, прорезанные в изоляции отверстия затягиваются.
Длина одного сегмента AS-интерфейса от ведущего устройства не
должна превышать 100 м. Если требуется удлинить сегмент, то для этой
цели используются повторители, которые добавляют сегмент длиной
100 м. Максимальная суммарная длина всех сегментов не должна превышать 300 м.
В качестве ведущих устройств для систем автоматизации, построенных на базе SIMATIC S7-300, используются модули CP 342-2 и
CP 343-2. Для организации прямой передачи данных между сетями ASI и
PROFIBUS DP могут использоваться шлюзы, например DP/ASI Link 20E.
Пример структуры сети со шлюзом представлен на рис. 4. Шлюз
организует передачу данных сети интерфейса AS-I в сеть уровня контроллеров – сеть PROFIBUS DP.
Внешний вид устройств CP 342-2 и DP/ASI Link 20E показан на
рис. 5.
Существуют модули и для систем, построенные на базе других
средств. Например, для системы сбора информации, построенной на базе
персонального компьютера, в качестве ведущего устройства AS-интерфейса
используется специальная коммуникационная плата CP 2413. Сигналы
датчиков полевого уровня могут быть использованы для обработки как в
персональном компьютере, так и переданы в другие сети передачи данных. Пример организации передачи данных с использованием коммуникационной платы СР 2413 показан на рис. 6.
14
Рис. 4. Пример конфигурации системы передачи данных из сети
полевого уровня AS-I в сеть уровня контроллеров – сеть PROFIBUS DP
а
б
Рис. 5. Внешний вид устройств, выступающих в качестве ведущих ASинтерфейса: а – шлюз DP/ASI Link 20E;
б – модуль коммуникационного процессора CP 342–2
15
EHERNET (или PROFIBUS DP)
Кабель
AS-интерфейса
К модулям
AS-интерфейса
Модуль
AS-интерфейса
Workstation
CP2413
Mainframe
Блок
питания
AS-интерфейса
Кабель
AS-интерфейса
Дискретные датчики и
исполнительные
механизмы
Рис. 6. Пример конфигурации системы сбора и передачи данных из сети
AS-I с использованием персонального компьютера
1.2. Уровень контроллеров
Уровень управляющих контроллеров – основной уровень всей системы автоматизации технологического процесса. Сигналы с датчиков
передаются в программируемые логические контроллеры (ПЛК – PLC),
обрабатываются по заданным алгоритмам, и формируется управляющий
сигнал на исполнительные устройства.
На этом уровне могут работать несколько контроллеров, представляющих распределенную систему управления, решающих одну задачу
управления. Передача данных между отдельными контроллерами осуществляется посредством промышленной сети PROFIBUS.
Общая структура уровня контроллеров показана на рис. 7.
Говоря о PROFIBUS, необходимо иметь в виду, что под этим общим названием понимается совокупность трех различных, но совместимых протоколов: PROFIBUS-FMS, PROFIBUS-DP и PROFIBUS-PA.
PROFIBUS-FMS. Этот протокол общего назначения разработан
для связи контроллеров и интеллектуальных устройств. Основное его
назначение – передача больших объемов данных.
PROFIBUS-DP используется для задач управления, которые
должны функционировать в так называемом реальном времени, где на
первое место встает такой параметр, как продолжительность цикла передачи данных. Протокол PROFIBUS-DP обеспечивает максимально возможную для используемых условий и применяемых технических средств
скорость передачи данных. Так, например, для передачи 512 бит данных
по 32 станциям требуется 6 мс.
16
SIMATIC
S7-300
M7-300
AS-интерфейс
17
SIMATIC C7-633/634
ЕТ 200
Удаленные станции
распределенной
периферии
SIMATIC
S7-400
M7-400
S7-300
M7-300
S5-95U c PROFIBUS
интерфейсом
Устройства
программирования
SIMATIC PG/PC
PG 740
SIEMENS
Удаленные
контроллеры
Удаленные
контроллеры
Рис. 7. Общая структура уровня контроллеров SIMATIC
Удаленные контроллеры
DP/ASI Link 20E
Приборы полевого
уровня
Операторские панели
SIMATIC OP
Ведомые устройства
Ведущие устройства
PROFIBUS-PA используется в устройствах, работающих в опасных производствах, требующих искробезопасного соединения и надежности в передаче сигнала.
Распределенная система управления может состоять из устройств,
реализующих все три типа стандарта.
В качестве контроллеров этого уровня могут быть использованы
различные типы ПЛК семейств S7-200/300/400, а также другие устройства, поддерживающие обмен данными по протоколу PROFIBUS. К таким устройствам относятся контроллеры семейств SIMATIC S5/M7/C7,
различные типы удаленных станций распределенного ввода-вывода Е200, устройства программирования PG/PC, операторские панели ОР и
множество других устройств.
Все устройства сети PROFIBUS можно разделить на ведущие и ведомые. В структуре сети допускается использовать до 122 устройств, из
которых до 32 могут быть ведущими. Ведущие устройства строго по порядку ведут опрос своих ведомых устройств. Время опроса одним ведущим устройством строго регламентировано. Протокол позволяет определять и исправлять ошибки, возникшие в процессе передачи.
Как правило, ведущими устройствами являются логические контроллеры и устройства программирования. В качестве ведомых устройств
могут выступать удаленные станции распределенного ввода-вывода,
сети приборов полевого уровня, передающие данные через шлюзы DP/ASI,
измерительные комплексы для контроля параметров, требующих дополнительной алгоритмической обработки, а также другие контроллеры сети.
В качестве основного средства настройки и программирования
элементов структуры уровня контроллеров SIMATIC используется программное обеспечение SIMATIC Manager, позволяющее осуществлять
настройку аппаратной части и программирование отдельных контроллеров, настраивать структуру сети PROFIBUS и устанавливать адреса
устройств сети.
1.3. Уровень человеко-машинного интерфейса (HMI)
Уровень человеко-машинного интерфейса (HMI – Human-Machine
Interface) включает, прежде всего, одну или несколько станций управления, представляющих собой автоматизированное рабочее место (АРМ)
диспетчера/оператора. Здесь же может быть размещен сервер базы данных, рабочие места (компьютеры) для специалистов и т. д.
Станции управления предназначены для отображения хода технологического процесса и оперативного управления. Специализированное
программное обеспечение этих станций ориентировано на обеспечение
интерфейса между диспетчером и системой управления, а также коммуникацию с внешним миром.
18
В качестве основного средства человеко-машинного интерфейса
в системах Siemens SIMATIC используется SCADA-система SIMATIC
WinCC (Windows Control Center), позволяющая создавать как однопользовательские автоматизированные рабочие места, так и сложные распределенные системы с несколькими серверами данных, имеющие собственную многоуровневую структуру, включая уровень представления данных
в глобальных сетях и в сети Интернет.
Однопользовательские системы АРМ находят применение в небольших приложениях, но могут также использоваться для управления
и контроля в самостоятельных частях технологического процесса. Однопользовательская система работает независимо, то есть она обеспечена
всеми необходимыми для производства средствами.
Связь с уровнем автоматизации или сетью осуществляется при
этом, например, через соединения точка-точка. Как правило, контроллер
ПЛК имеет шлюз для передачи данных в сеть Ehernet, к которой подключается станция оператора. В некоторых случаях интерфейсная плата подключения промышленной сети встраивается в станцию оператора. Примеры структур однопользовательской системы показаны на рис. 8.
Рабочая станция
WinCC
Локальная сеть
EHERNET
Рабочая станция
WinCC
Workstation
S7-300/400
Коммуникационный
процессор
CP 343-1 TCP
S7-300/400
Промышленная сеть
PROFIBUS-DP
Workstation
Коммуникационный
процессор
CP 5611
Промышленная сеть
PROFIBUS-DP
бб)
аа)
Рис. 8. Структура однопользовательской системы:
а – соединение через шлюз с сетью EHERNET;
б – соединение через модуль PROFIBUS
Многопользовательские системы АРМ позволяют управлять
технологическим процессом нескольким операторам, причем каждый
может как вести управление отдельным участком технологической цепочки, так и контролировать действия других операторов на других
участках технологической цепочки. Структура многопользовательской
системы показана на рис. 9.
19
Локальная сеть
EHERNET
Сервер
WinCC
Workstation
Workstation
Workstation
Рабочая станция
WinCC
Рабочая станция
WinCC
Рабочая станция
WinCC
Server
S7-300/400
Коммуникационный
процессор
CP 343-1 TCP
Удаленные
контроллеры
S7-300/400
S7-300/400
Промышленная сеть
PROFIBUS-DP
Рис. 9. Структура многопользовательской системы
с выделенным сервером данных WinCC
Также многопользовательские системы могут быть использованы,
когда требуется одновременно контролировать всю цепочку технологического процесса. В этом случае на каждом мониторе отображается часть
цепочки, а управление всем процессом может вестись одним оператором,
который переходит от одной части цепочки к другой.
Многопользовательские системы работают по принципу клиентсервер. Сервер берет на себя задачи связи с технологическим процессом
(уровнем контроллеров) и архивирование, а станции-клиенты получают
данные от сервера, используя стандартный протокол TCP/IP и локальную сеть EHERNET. Сервер многопользовательской системы, построенный на базе WinCC, может обслуживать одновременно до 16 станций-клиентов.
Распределенная система АРМ с несколькими серверами. Распределение задачи управления технологическим процессом на несколько
серверов обеспечивает высокую производительность системы в целом.
При этом принципиальное значение имеет распределение типов задач по
серверам, например, выделяются задачи архивирования, отображения
графиков, аварийных сообщений и т.д.
Структура распределенной системы с несколькими серверами показана на рис. 10.
20
Рабочая станция
WinCC
Workstation
Рабочая станция
WinCC
Рабочая станция
WinCC
Workstation
Workstation
Сервер
WinCC
(графическое
представление
данных)
Сервер
WinCC
(аварийные
сообщения)
Локальная сеть
EHERNET
Сервер
WinCC
(архивирование
процесса)
Server
Server
Сервер
WinCC
(визуализация
процесса)
Server
Server
CP 343-1 TCP
CP 343-1 TCP
CP 343-1 TCP
CP 343-1 TCP
S7-300/400
S7-300/400
S7-300/400
S7-300/400
Промышленная сеть
PROFIBUS-DP
Рис. 10. Распределенная система АРМ с несколькими серверами
Для повышения производительности используются несколько каналов передачи данных. Это обеспечивается применением нескольких
коммуникационных процессоров для передачи данных от уровня контроллеров в сеть EHERNET и её деления на несколько локальных подсетей.
Проектирование подобных систем требует не только распределить
задачи по отдельным серверам, но и минимизировать объем передаваемых
данных между отдельными контроллерами, серверами и подсетями, что
требует «правильного» распределения задач как между контроллерами, так
и между коммуникационными процессорами отдельных контроллеров.
Система АРМ с доступом через глобальную корпоративную
сеть и сеть Internet. Использование современных информационных технологий в интегрированных системах семейства SIMATIC Totally Integrated Automation позволяет создавать проекты, в которых доступ к
данным технологического процесса осуществляется удаленно, через сеть
предприятия или через глобальную сеть (Intranet / Internet).
21
В этом случае вся работа по представлению данных возлагается на
специализированное программное обеспечение Web Navigator, работающее совместно с Web-сервером и представляющего собой надстройку
над WinCC-сервером. В качестве рабочих мест могут использоваться любые устройства с Web-браузером.
Структура системы АРМ с доступом через Web-интерфейс показана на рис. 11.
Удаленные рабочие станции с WEB - браузером
Workstation
Workstation
Workstation
Корпоративная сеть предприятия Intranet / Internet
Web - сервер
WinCC Web Navigator
Локальные рабочие
станции
Server
OPC
Локальная сеть
EHERNET
Локальный
сервер
WinCC
Workstation
Workstation
Workstation
Рабочая станция
WinCC
Рабочая станция
WinCC
Рабочая станция
WinCC
Server
S7-300/400
Коммуникационный
процессор
CP 343-1 TCP
Удаленные
контроллеры
S7-300/400
S7-300/400
Промышленная сеть
PROFIBUS-DP
Рис. 11. Структура системы АРМ с доступом через Web-интерфейс
удаленных рабочих станций
Сервер WinCC Web Navigator базируется на информационном
сервере Microsoft Internet Information Server (IIS), что позволяет ис22
пользовать для передачи данных между этим сервером и серверами
WinCC стандартные механизмы передачи данных, например OPC.
Доступ через глобальную сеть может быть предоставлен системе
управления с любым типом АРМ оператора, начиная от однопользовательских АРМ и заканчивая распределенными.
Основным достоинством такой структуры системы управления
верхнего уровня является удаленный доступ к данным процесса и использование стандартных программных и технических средств на стороне клиента – рабочей станции АРМ.
Основной областью использования подобных систем АРМ является, как правило, удаленная диагностика процесса управления и контроль
состояния процесса. Хотя подобная структура системы также подразумевает и удаленное управление технологическим процессом, данная функция используется достаточно редко.
1.4. Вопросы для самостоятельной подготовки
1. Какие уровни управления имеет современная система управления? Дайте характеристику каждого уровня.
2. Поясните основное назначение AS-интерфейса связи.
3. Какие элементы системы управления входят в структуру уровня
контроллеров?
4. Какие основные структуры уровня HMI используются в современных системах управления?
5. Какие отличия однопользовательской системы АРМ от многопользовательской?
6. Какое назначение имеет распределенная система АРМ?
7. Какие типы протоколов PROFIBUS используются в системах
управления? Поясните область применения каждого протокола.
2. АППАРАТНЫЕ СРЕДСТВА КОНТРОЛЛЕРОВ
SIMATIC S7-300/400
В настоящее время наибольшее распространение получили следующие серии контроллеров семейства SIMATIC S7: S7-200, S7-300, S7-400.
Каждая серия имеет модульную конструкцию и предназначена для создания системы управления определенной сложности и быстродействия.
Серия программируемых контроллеров S7-200 предназначена для
построения относительно простых и дешевых систем автоматического
управления.
Серия программируемых контроллеров S7-300 предназначена для
решения задач автоматического управления средней степени сложности с быстрой обработкой оперативной информации.
23
Серия программируемых контроллеров S7-400 предназначена для
решения задач автоматического управления средней и высокой степени
сложности. Контроллеры данной серии обладают наименьшим временем
цикла обработки информации.
В табл. 1 приведены основные сравнительные характеристики
процессорных устройств некоторых моделей каждой серии.
Таблица 1
Основные сравнительные характеристики процессорных
устройств некоторых моделей серий S7-200/300/400
Наименование параметра
Объем памяти программ
и данных
Время выполнения
1000 логических команд
Количество счетчиков
Количество таймеров
Количество дискретных
входов/выходов
Количество аналоговых
входов/выходов
Коммуникационный
интерфейс
CPU 212
Тип процессора
CPU315-2DP
CPU 412-2DP
1,5 Кбайт
64Кбайт
144 Кбайт
1,2 мс
0,3–0,6 мс
0,2 мс
64
64
64
128
256
256
До 78
До 1024
До 4096
До8
До 128
До 256
PPI
MPI + DP
MPI + DP
SIMATIC S7-200/300/400 является модульным контроллером.
Каждый модуль или компонент контроллера является полностью законченным изделием и может компоноваться с другими модулями в любой
конфигурации в пределах доступной.
Отличие в сериях состоит в скорости выполнения операций процессорным блоком и объеме хранимой и обрабатываемой информации.
Языки и технология программирования для всех серий являются одинаковыми.
Несмотря на конструктивные различия серий, все контроллеры
имеют унифицированный интерфейс чтения и формирования электрических сигналов устройства связи с объектом (УСО), схему подключения,
протокол передачи цифровых данных и язык технологического программирования STEP 7.
Так как наиболее распространенными контроллерами для управления
технологическими процессами являются контроллеры серий S7-300/400, то
в дальнейшем будут рассматриваться только эти две серии.
24
2.1. Общая структура микропроцессорного контроллера
Simatic S7-300/400
На рис. 12 показана модульная конструкция контроллеров
S7-300/400. В качестве элементов модульной структуры контроллеров
S7-300/400 используются следующие компоненты и модули:
1. Стойки (Racks). Служат для размещения, крепления модулей и
соединения их между собой посредством шинных соединителей.
2. Источники питания (Power Supply, PS). Обеспечивают подачу
электроэнергии к внутренним устройствам и модулям.
3. Центральное процессорное устройство (Central Processing Unit,
CPU). Хранит и обрабатывает программу пользователя.
4. Интерфейсные модули (Interface Modules, IM). Соединяют
стойку с расположенными на ней модулями с другой стойкой, то есть
служат для расширения количества модулей контроллера или создания
сетевой структуры.
5. Сигнальные модули (Signal Modules, SM). Предназначены для
приема или формирования аналоговых и дискретных сигналов и их связь
с системной шиной контроллера. Сигнальные модули, в свою очередь,
подразделяются на модули дискретного ввода (SM DI – discrete input),
модули дискретного вывода (SM DO – discrete output), модули аналогового ввода (SM AI – analog input) и модули аналогового вывода (SM AO –
analog output).
6. Функциональные модули (Function Modules, FM). Выполняют
сложную или критичную по времени обработку сигналов независимо от
процессорного модуля, например счетчик импульсов, быстродействующий ПИД-регулятор и т.д.
7. Коммуникационные процессоры (Communications Processors,
CP). Устанавливают соединения со вспомогательными сетями (подсетями) или для обмена данными между контроллерами по промышленной
сети PROFIBUS.
8. Подсети (Subnets). Соединяют программируемые контроллеры
друг с другом и с другими устройствами в системах управления уровня
контроллеров, полевого уровня и уровня HMI.
9. Шинные соединители. Предназначены для организации системной шины для передачи команд и данных между отдельными модулями.
10. Шинные кабели. Предназначены для связи между отдельными
стойками контроллера.
Стойка с размещенным на ней процессорным модулем является
центральной стойкой. В центральной стойке могут располагаться до
8 модулей ввода-вывода (сигнальных модулей) для контроллеров S7-300.
Для контроллеров серии S7-400 общее количество модулей составляет
25
18 или 9 для разных типов стоек. На 13, 14 показаны примеры размещения модулей по стойкам и соединение их с помощью шинных соединителей для контроллера S7-300 и S7-400 соответственно.
PS
(не обязательно)
CPU
IM
SM:
(дополни- DI
тельно)
SM:
DO
SM:
AI
CP:
- Point-to-Point
- PROFIBUS
- Industrial Ethernet
SM:
AO
а
а)
б)
PS
CPU
SM:
DI
SM:
DO
SM:
AI
SM:
AO
CP
FM
SM
IM
б
Рис. 12. Модульная конструкция контроллеров S7:
а – S7-300; б – S7-400
Если одной стойки недостаточно для размещения всех модулей
контроллера, используются дополнительные стойки – стойки расширения, которые представляют физически объединенный набор требуемых
модулей, соединенных посредством шинных соединителей и имеющих
отдельный источник питания.
26
Для контроллеров серии S7-300 максимальное количество стоек
расширения составляет 3, для контроллеров серии S7-400 до 21. Соединение стоек между собой осуществляется с использованием интерфейсных модулей, соединенных, в свою очередь, между собой с помощью шинных соединителей. На 15 показана структура модульной конфигурации для контроллеров S7-300/400.
Шинный
соединитель
Стойка
Процессорный
модуль
Модули
контроллера
Рис. 13. Размещение модулей контроллера S7-300 на стойке
Стойка
Модуль питания
Шинные
соединители
Процессорный
модуль
Сигнальные модули
контроллера
Коммуникационные
процессоры
Рис. 14. Размещение модулей контроллера S7-400 на стойке
27
Стойки
расширения
IM 361
IM 360
До 10 метров между
стойками
IM 365
До 1 м между
стойками
аа)
бб)
IM 461-1
Центральная
стойка
вв)
IM 461-0
IM 461-3
г)
IM 461-1 до 1,5 м
IM 461-0 до 3 м
IM 461-3 до 100 м
IM 461-4 до 600 м
IM 461-4
IM 461-1
Стойки
расширения
IM 461-0
IM 461-3
IM 461-4
г
Рис. 15. Модульная конфигурация контроллеров S7-300/400:
а – одноуровневая S7-300; б – двухуровневая S7-300;
в – четырехуровневая S7-300; г – модульная S7-400
Максимальное расстояние между стойками зависит от типа используемых интерфейсных модулей и может составлять от 1 до 600 м.
Если требуется создать более сложную структуру с удалением стоек более чем на 600 м, то в этом случае требуется использовать станции
распределенной периферии, например ET-200M с интерфейсным модулем IM 153-3. В этом случае передача данных между удаленными стан28
циями и процессорным модулем будет осуществляться по сети PROFIBUS-DP. Общее количество удаленных станций ввода-вывода может достигать 127 во всей сети. Длина кабеля в одном сегменте сети зависит от
скорости передачи данных и составляет 100 м для скорости 12 Мбит/с и
1000 м – для скорости 9,6 Кбит/с. Длину сети можно увеличить с помощью повторителей или оптических модулей связи.
Структура системы с распределенной периферией показана на рис. 16.
Ведущий
S7-300/400
Распределенная периферия –
удаленные станции
(ведомые)
ЕТ 200М
Сигнальные модули
Промышленная сеть
PROFIBUS-DP
До 100 м (12 Мбит/сек)
ЕТ 200М
Сигнальные модули
Повторитель
До 100 м (12 Мбит/сек)
Рис. 16. Структура контроллера с распределенной периферией
Вне зависимости от структуры контроллера принцип его комплектации модулями, правила конфигурирования и программирования
остаются неизменными.
В общем случае контроллер с любой конфигурацией модулей и
типами соединений можно представить в виде структурной схемы, показанной на рис. 17.
Стойка 0 – центральная стойка, которая содержит процессорное
устройство и является ведущим устройством для всех остальных стоек.
Соединение отдельных модулей между собой осуществляется посредством двух шин, физически расположенных в шинных соединителях.
Р-шина – шина передачи сигналов между процессорным модулем и модулями ввода-вывода. По Р-шине (шина ввода-вывода или периферийная
шина) передаются сигналы с датчиков и на исполнительные устройства,
подключенные непосредственно к сигнальным модулям.
К-шина – коммуникационная шина, связывает процессорный модуль, интерфейс устройства программирования (MPI) с функциональными модулями и коммуникационными процессорами. Шина обеспечивает
управление модулями и передачу сигналов в подсети.
Интерфейсные модули, выполняющие функции устройства для передачи сигналов между стойками, передают сигналы с обеих шин, представляя их в соответствующем протоколе передачи данных при передаче
сигнала и производящего обратное преобразование при приеме.
29
Стойка 0
К-шина, Р-шина (шинный соединитель)
PS
CPU
SM, FM
(вх/вых)
IM
К устройству программирования (MPI)
Стойка 1
К другим контроллерам сети
К-шина, Р-шина
PS
Стойка 2
CP
IM
SM
(вх/вых)
SM
IM
SM
(вх/вых)
SM
К-шина, Р-шина
PS
К другим стойкам
Рис. 17. Общая физическая структура контроллеров Simatic S7-300/400
Так как подобные преобразования производятся на уровне модулей, то при программном конфигурировании аппаратной части указывается только тип соединения отдельных стоек между собой. При этом используется сквозная адресация всех модулей контроллера, которая не
зависит от используемой структуры, а зависит только от типов модулей,
используемых в контроллере в целом. Таким образом, при программировании контроллера нет никакой разницы, как соединены отдельные стойки контроллера; так программирование ведется уже на уровне адресов
устройств и модулей.
Рассмотрим подробно назначение и структуру модулей контроллера.
2.2. Процессорные модули (CPU)
Процессорный модуль является основной и самой дорогостоящей
частью программируемого контроллера, на который возлагается бόльшая
часть вычислительных операций. В настоящее время линейка процессоров серии SIMATIC S7-300/400 насчитывает более 20 моделей, отличающихся быстродействием, объемом памяти, наличием сетевых интерфейсов и встроенными модулями ввода-вывода. Такое большое разнообразие
30
процессорных модулей позволяет точно подобрать процессор для решения конкретной задачи автоматизации и тем самым минимизировать стоимость проекта в целом.
Несмотря на большое количество моделей, все процессоры обладают общими свойствами как по технической части, так и по возможностям программирования.
Постоянное расширение линейки процессорных модулей производится за счет добавления дополнительных управляющих и сервисных
функций и использования современной элементной базы, что позволяет
расширить области применения процессорных модулей и упростить их
обслуживание.
Серия процессорных модулей S7-300 предназначена для решения
задач автоматического управления средней степени сложности, в которых требуется быстрая обработка информации в темпе с технологическим процессом и малое время цикла выполнения программы. Контроллеры семейства S7-300 могут использоваться в составе сетевых распределенных систем управления и использовать сети передачи данных
Industrial Ethernet, Profibus, AS-interface.
Серия процессоров семейства S7-300 включает в себя модели,
предназначенные как для построения относительно простых систем
управления, так и достаточно сложных. В зависимости от степени сложности решаемой задачи в контроллерах семейства S7-300 можно выбрать
требуемый тип процессора, удовлетворяющий условиям процесса управления технологическим объектом. Рассмотрим некоторые, широко распространенные типы процессоров семейства S7-300. Некоторые виды
рассматриваемых типов процессорных модулей приведены на рис. 18.
CPU 312IFM. Компактный процессор со встроенными дискретными
входами-выходами, предназначенный для решения относительно простых
задач автоматизации, не требующих обработки аналоговых сигналов. Встроенные функции позволяют обслуживать скоростной счетчик, производить
измерение частоты, обрабатывать внешние аппаратные прерывания.
CPU 313. Процессор, предназначенный для экономичного решения относительно простых задач автоматизации с повышенными требованиями к времени выполнения программы. Допускает расширение памяти программ за счет установки субмодуля Flash EEPROM объемом до
512 Кбайт.
CPU 314IFM. Компактный процессор, оснащенный встроенными
дискретными и аналоговыми входами-выходами, предназначенный для
решения задач, требующих высокой скорости обработки информации.
Процессор оснащен расширенным набором встроенных функций, позволяющих обслуживать два скоростных счетчика, измерять частоту, осуществлять управление позиционированием и регулирование, обрабатывать аппаратные прерывания.
31
а
б
в
г
д
Рис. 18. Виды некоторых процессорных модулей семейства S7-300:
а – CPU 312IFM; б – CPU 315-2DP; в – CPU 315;
г – CPU 314IFM; д – CPU 318-2DP
CPU 315. Процессор, предназначенный для решения комплексных
задач автоматизации, оснащенный памятью программ большого объема и
позволяющий использовать расширенные конфигурации ввода-вывода.
CPU 315-2DP. Процессор с большим объемом памяти программ,
допускающий работу в конфигурациях с распределенным и централизованным
вводом-выводом.
Оснащен
встроенным
интерфейсом
PROFIBUS-DP.
CPU 318-2DP. Наиболее мощный центральный процессор семейства. Для хранения программ и данных может выделяться по 256 Кбайт.
Оснащен встроенным интерфейсом PROFIBUS-DP. Позволяет создавать
мощные сетевые конфигурации и выполнять функции ведущего и ведомого устройств PROFIBUS-DP.
Все процессоры семейства S7-300 имеют общие характеристики:
• Высокое быстродействие. Время выполнения логической команды составляет от 600 нс в CPU 314IFM до 100 нс в CPU 318-2.
32
• Подключение до 4-х стоек расширения.
• Встроенный MPI-интерфейс. Соединение по сети MPI до 31
станции со скоростью передачи информации до 187,5 Кбит/с.
• Использование съемного ключа для переключения режимов работы.
• Наличие диагностического буфера, сохраняющего сообщения о
последних 100 отказах и прерываниях. Содержимое буфера может быть
использовано для анализа работы системы.
• Встроенные часы реального времени и календарь.
• Встроенные коммуникационные функции. Операционная система
центральных процессоров поддерживает функции связи с программаторами и панелями оператора.
• Возможность сохранения программы и данных на карте Flash
EPROM. Возможность программирования карты Flash EPROM через
разъем центрального процессора.
• Встроенный интерфейс PROFIBUS-DP в CPU 315-2DP, CPU 316-2DP
и CPU 318-2.
Более подробно характеристики некоторых, наиболее распространенных типов центральных процессоров семейства S7-300 приведены в табл. 2.
Серия процессорных модулей S7-400 предназначена для решения
задач автоматизации средней и высокой сложности. Возможность подключения большого количества стоек расширения в совокупности с большим
количеством модулей в каждой стойке позволяет построить на микропроцессорном контроллере систему управления крупным объектом или иметь возможность постепенного расширения системы. Высокая скорость выполнения
операций, большой объем памяти, мощные коммуникационные возможности делают процессоры семейства S7-400 идеальным средством для решения практически любых задач автоматизации технологического процесса.
Рассмотрим некоторые широко распространенные типы процессоров семейства S7-400. Некоторые виды рассматриваемых типов процессорных модулей приведены на рис. 19.
Общие характеристики процессоров семейства S7-400:
• Высокая производительность. Время выполнения одной двоичной инструкции составляет не более 80 нс.
• Большой объем загружаемой памяти для хранения программ.
Подключение внешних карт памяти объемом до 64 Мбайт.
• Несколько процессорных модулей семейства S7-400 могут располагаться на одной центральной стойке контроллера.
• Возможно управление работой до 21 стойки расширения.
• Управление подключением до 4-х линий PROFIBUS-DP.
• Встроенный MPI-интерфейс. Соединение по сети MPI до 31
станции со скоростью передачи информации до 187,5 Кбит/с.
33
Таблица 2
Основные характеристики некоторых процессоров семейства S7-300
Параметр
34
Объем рабочей памяти
Объем загрузочной памяти:
 встроенная, RAM
 встроенная, EEPROM
 карта памяти, RAM
 карта памяти, EEPROM
Сохранение данных:
 без батареи
 с батареей
Часы реального времени
Максимальное количество
используемых блоков:
 OB
 FC
 FB
 DB
 SFC
 SFB
Тип процессорного модуля семейства S7-300
CPU 312IFM
CPU 313
CPU 314IFM
CPU 315
CPU 315-2DP CPU 318-2DP
6 Кбайт
12 Кбайт
32 Кбайт
48 Кбайт
64 Кбайт
512 Кбайт
20 Кбайт
20 Кбайт
-
20 Кбайт
4 Мбайт
40 Кбайт
48 Кбайт
4 Мбайт
80 Кбайт
4 Мбайт
96 Кбайт
4 Мбайт
64 Кбайт
2 Мбайт
4 Мбайт
72 байт
Нет
72 байт
+ DB
Есть
144 байт
+ DB
Есть
4 Кбайт
+ DB
Есть
4 Кбайт
+ DB
Есть
8 Кбайт
+ DB
Есть
3
32
32
63
25
2
13
128
128
127
44
7
13
128
128
127
48
7
13
128
128
127
48
7
14
128
128
127
53
7
19
1024
1024
2047
53
7
Продолжение табл. 2
Параметр
35
Организационные блоки:
 циклическое выполнение
 прерывание по времени дня
 циклические прерывания
 прерывания с задержкой
 рестарт
 аппаратные прерывания
 асинхронных ошибок
 синхронных ошибок
 фоновые
Время выполнения операций:
 логических
 со словами
 с таймерами и счетчиками
 сложения целых чисел
 сложения действительных чисел
Количество флагов:
 общее
 сохраняемых с батареей
 сохраняемых без батареи
CPU 312IFM
Тип процессорного модуля семейства S7-300
CPU 313 CPU 314IFM CPU 315 CPU 315-2DP CPU 318-2DP
ОВ1
ОВ10
ОВ35
ОВ100
ОВ40
-
ОВ1
ОВ10
ОВ35
ОВ100
ОВ40
-
ОВ1
ОВ10
ОВ35
ОВ100
ОВ40
-
ОВ1
ОВ10
ОВ35
ОВ100
ОВ40
-
ОВ1
ОВ10
ОВ35
ОВ100
ОВ40
-
0,6–1,2 мкс
2,0 мкс
15 мкс
3,0 мкс
60 мкс
0,6–1,2 мкс
2,0 мкс
15 мкс
3,0 мкс
60 мкс
0,3–0,6 мкс
1,0 мкс
12 мкс
2,0 мкс
50 мкс
0,3–0,6 мкс
1,0 мкс
12 мкс
2,0 мкс
50 мкс
0,3–0,6 мкс
1,0 мкс
12 мкс
2,0 мкс
50 мкс
0,1 мкс
0,1 мкс
0,1 мкс
0,1 мкс
0,6 мкс
1024
0–576
2048
0–576
0–576
2048
0–2047
0–1152
2048
0–2047
0–2047
2048
0–2047
0–2047
2048
0–8191
0–8191
ОВ1
ОВ10,11
ОВ32, 35
ОВ20,21
ОВ100
ОВ40,41
ОВ80-87
ОВ121,122
ОВ90
Продолжение табл. 2
Параметр
Счетчики:
 общее количество
 сохраняемых с батареей
 сохраняемых без батареи
36
Таймеры:
 общее количество
 сохраняемых с батареей
 сохраняемых без батареи
Адресное пространство
ввода-вывода
Отображение процесса
Количество дискретных
входов-выходов
Количество аналоговых
входов-выходов
Количество модулей в системе
Количество монтажных стоек
в системе:
 базовых
 расширения
CPU 312IFM
Тип процессорного модуля семейства S7-300
CPU 313 CPU 314IFM CPU 315 CPU 315-2DP CPU 318-2DP
32
0–31
64
0–35
0–35
64
0–63
0–63
64
0–63
0–63
64
0–63
0–63
64
0–511
0–511
64
-
64
0–35
0–35
128
0–71
0–71
128
0–127
0–127
128
0–127
0–127
512
0–511
0–511
64/64 байт
64/64 байт 128/128 байт 256/256 байт 256/256 байт 512/512 байт
16/16 байт
16/16 байт
64/64 байт 128/128 байт 128/128 байт 256/256 байт
128/128
128/128
512/512
1024/512
1024/1024
1024/1024
32/32
32/32
64/64
128/128
128/128
256/256
8
8
32
32
32
32
1
-
1
-
1
3
1
3
1
3
1
3
Продолжение табл. 2
Тип процессорного модуля семейства S7-300
Параметр
Количество DP-линий
на центральный процессор:
 встроенный интерфейс
 коммуникационный процессор
Количество DP-станций на
ведущий центральный процессор:
 встроенный интерфейс
 коммуникационный процессор
37
Адресное пространство
на одну станцию
Программное обеспечение
CPU 312IFM
CPU 313
CPU 314IFM
CPU 315
1
1
1
1
1
1
2
2
8
8
16
32
64
64
125
64
64 байт
64 байт
122 байт
122 байт
244 байт
244 байт
S7-FBD
S7-FBD
S7-LAD
S7-LAD
S7-STL
S7-STL
S7-SCL
S7-SCL
S7-GRAPH S7-GRAPH
S7-HiGRAPH S7-HiGRAPH
S7-CFC
S7-CFC
S7-FBD
S7-LAD
S7-STL
S7-SCL
S7-GRAPH
S7-HiGRAPH
S7-CFC
0,8 А/8,0 А 0,9 А/8,0 А
1,2 А/8,0 А
S7-FBD
S7-LAD
S7-STL
S7-FBD
S7-LAD
S7-STL
S7-FBD
S7-LAD
S7-STL
S7-SCL
Потребляемый ток / Пусковой 0,8А+0,5А
ток
на каждый 0,7 А / 8,0 А 1,0 А/8,0 А
выход / 8,0 А
CPU 315-2DP CPU 318-2DP
Окончание табл. 2
Тип процессорного модуля семейства S7-300
Параметр
Габариты, мм
Количество встроенных
дискретных входов-выходов
Количество аналоговых
входов-выходов / Разрядность
ЦАП
Дополнительные функции
CPU
312IFM
CPU 313
CPU 314IFM
CPU 315
CPU 315-2DP CPU 318-2DP
80×125×130 80×125×130 160×125×130 80×125×130
80×125×130 160×125×130
38
10/6
-
20/16
-
-
-
-
-
4/1/12 бит
-
-
-
Функция
счета и
измерение
частоты
через
встроенные
4 входа
с частотой
до 10 кГц
-
8 контуров 16 контуров 16 контуров 32 контура
программных программных программных программных
регуляторов; регуляторов регуляторов регуляторов
позиционный
регулятор с
энкодером;
функция счета и измерение частоты
через встроенные 4 входа с частотой
до 10 кГц
а
б
в
г
Рис. 19. Вид процессоров семейства Simatic S7-400:
а – CPU 416-2DP, CPU 414-2 DP, CPU 413-2DP; б – CPU417-4 со снятой
крышкой; в – CPU 412-1, CPU 413-1; г – CPU 417-4H
CPU 412-1. Дешевый центральный процессор для небольших
установок и задач автоматизации средней сложности.
CPU 413-1. Центральный процессор для больших установок и задач автоматизации средней сложности.
CPU 413-2 DP. Центральный процессор для больших установок и
задач автоматизации средней сложности. Имеет встроенный интерфейс
PROFIBUS-DP.
CPU 414-2 DP. Центральные процессоры для больших установок,
требующих расширенного программирования и скоростного выполнения
инструкций. CPU 414-2DP имеет встроенный интерфейс PROFIBUS-DP.
CPU 416-1, CPU 416-2 DP. Центральные процессоры для больших
установок и решения сложных задач автоматизации. CPU 416 – 2DP имеет встроенный интерфейс PROFIBUS-DP.
CPU 417-4. Центральный процессор для больших установок, требующих расширенного программирования и скоростного выполнения
инструкций. Имеет четыре встроенных интерфейса PROFIBUS-DP.
CPU 417-4Н. Центральный процессор для построения отказоустойчивых систем S7-400H. Оснащен двумя встроенными интерфейсами
PROFIBUS-DP, а также двумя интерфейсами для подключения субмодулей синхронизации.
Более подробно характеристики некоторых наиболее распространенных типов центральных процессоров семейства S7-400 приведены
в табл. 3.
39
Таблица 3
Основные характеристики некоторых процессоров семейства S7-400
Параметр
40
Объем рабочей памяти
Объем загрузочной памяти:
 встроенная, RAM
 карта памяти, EEPROM
Максимальное количество
используемых блоков:
 OB
 FC
 FB
 DB
 SFB
 SFC
 SDB
Время выполнения операций:
 логических
 со словами
 с таймерами и счетчиками
 сложения целых чисел
 сложения действительных чисел
CPU 412-1
96 Кбайт
Тип процессорного модуля семейства S7-400
CPU 412-2 CPU 413-2DP CPU 414-2DP CPU 416-3
144 Кбайт
72 Кбайт
256 Кбайт
3,2 Мбайт
CPU 417-4
4 Мбайт
256 Кбайт
64 Мбайт
256 Кбайт
64 Мбайт
8 Кбайт
15 Мбайт
8 Кбайт
15 Мбайт
16 Кбайт
15 Мбайт
256 Кбайт
64 Мбайт
18
256
256
511
24
55
512
18
256
256
511
24
55
512
18
256
256
511
24
58
512
31
512
1024
1024
24
58
512
44
2048
2048
4095
24
58
512
45
6144
6144
8192
24
58
512
0,2 мкс
0,2 мкс
0,2 мкс
0,2 мкс
1,2 мкс
0,2 мкс
0,2 мкс
0,2 мкс
0,2 мкс
1,2 мкс
0,2 мкс
0,2 мкс
0,2 мкс
0,2 мкс
1,2 мкс
0,1 мкс
0,1 мкс
0,1 мкс
0,1 мкс
0,6 мкс
0,08 мкс
0,08 мкс
0,08 мкс
0,08 мкс
0,48 мкс
0,1 мкс
0,1 мкс
0,1 мкс
0,1 мкс
0,48 мкс
Продолжение табл. 3
Параметр
41
Организационные блоки:
 циклическое выполнение
 прерывание по времени дня
 циклические прерывания
 прерывания с задержкой
 рестарт
 аппаратные прерывания
 асинхронных ошибок
 синхронных ошибок
 фоновые
Количество флагов
Счетчики
Таймеры
Адресное пространство
ввода-вывода
Отображение процесса, байт
Количество дискретных
входов-выходов
Количество аналоговых
входов-выходов
CPU 412-1
Тип процессорного модуля семейства S7-400
CPU 412-2 CPU 413-2DP CPU 414-2DP CPU 416-3
CPU 417-4
ОВ1
ОВ10,11
ОВ32,35
ОВ20,21
ОВ100,101
ОВ40,41
ОВ80–87
ОВ121,122
ОВ 90
ОВ1
ОВ10,11
ОВ32,35
ОВ20,21
ОВ100,101
ОВ40,41
ОВ80–87
ОВ121,122
ОВ 90
ОВ1
ОВ10,11
ОВ32,35
ОВ20,21
ОВ100,101
ОВ40,41
ОВ80–87
ОВ121,122
ОВ 90
ОВ1
ОВ10–17
ОВ32–38
ОВ20–23
ОВ100,101
ОВ40–43
ОВ80–87
ОВ121,122
ОВ 90
ОВ1
ОВ10–17
ОВ32–38
ОВ20–23
ОВ100,101
ОВ40–47
ОВ80–87
ОВ121,122
ОВ 90
ОВ1
ОВ10–17
ОВ32–38
ОВ20–23
ОВ100–102
ОВ40–47
ОВ80–87
ОВ121,122
ОВ 90
4096
256
256
4096
256
256
4096
256
256
8192
256
256
16384
512
512
16384
512
512
4/4 Кбайт
4/4 Кбайт
2/2 Кбайт
4/4 Кбайт
8/8 Кбайт
16/16 Кбайт
128/128
128/128
128/128
256/256
512/512
1024/1024
32768
32768
8192
32768
65536
12288
2048
2048
2048
4096
4096
8196
Окончание табл. 3
Параметр
Количество монтажных
стоек в системе:
 базовых
 расширения
Тип процессорного модуля семейства S7-400
CPU 412-1 CPU 412-2 CPU 413-2DP CPU 414-2DP CPU 416-3
CPU 417-4
42
1
21
1
21
1
10
1
16
1
22
1
22
0
4
0
4
1
4
4
4
4
4
4
10
32
-
32
125
64
125
64
125
96
125
125
125
Потребляемый ток, 5В/24В
1,4/0,15 А
1,4/0,15 А
2,5/0,3А
2,5/0,3А
2,5/0,3А
1,8/0,3А
Габариты, мм
25×290×210 25×290×210 50×290×210
Количество DP-линий
на центральный процессор:
 встроенный интерфейс
 коммуникационный процессор
Количество DP-станций на
ведущий центральный процессор:
 встроенный интерфейс
 коммуникационный процессор
50×290×210 50×290×210 50×290×210
Все элементы управления и контроля состояния процессорного
модуля расположены на лицевой панели. На рис. 20 в качестве примера
представлены лицевые панели процессорных модулей различных типов
семейств S7-300/400.
а) а
бб)
Рис. 20. Лицевые панели процессорных модулей:
а – CPU314; б – CPU 315-2DP
Лицевая панель процессорного модуля содержит ключ переключения режимов работы, светодиодные индикаторы режима работы модуля и
сетевых интерфейсов и разъем карты памяти. Также под крышкой лицевой панели располагаются разъемы сетевых интерфейсов процессорного
модуля (PROFIBUS-DP, MPI, Industrial Ethernet), клеммная колодка питания и заземления модуля, отсек для резервной батареи.
На лицевой панели расположен переключатель режимов работы
для перевода контроллера в режимы:
STOP – процессор остановлен, программа не выполняется, процессор доступен для программирования и конфигурирования.
RUN – циклическое выполнение программы, шаговое выполнение
программы, программирование и конфигурирование процессорного модуля недоступно.
RUN-P – циклическое выполнение программы, доступно программирование процессорного модуля (но не конфигурирование) и пошаговое
исполнение программы в режиме отладки.
M.RES – режим очистки памяти контроллера, удаляется программа и конфигурационные данные процессора, дальнейшее программирование возможно только через интерфейс MPI.
43
В последнее время выпускаются процессорные модули, в которых
не предусмотрен режим RUN-P, однако в режиме RUN модуль выполняет циклическую программу и доступно программирование процессорного
модуля и пошаговая отладка программы.
Ламповые индикаторы сигнализируют о состояниях процессорного модуля.
STOP – горит желтым светом, если процессор остановлен.
RUN – горит зеленым светом, если идет нормальное выполнение
циклической программы, мигающий зеленый – идет загрузка программы
в рабочую память процессора.
FRCE – горит желтым светом, если хотя бы одна переменная программы управления находится в принудительно установленном значении
– «форсирована».
DC5V – горит зеленым светом, если на процессорный модуль подано питающее напряжение +5 В.
SF – горит красным светом, если произошла программная ошибка,
например деление на ноль или зацикливание программы.
В старших моделях контроллеров могут быть добавлены дополнительные индикаторы, сигнализирующие состояния устройства, например:
SF DP – мигает красным светом, если произошла ошибка передачи
данных в сети PROFIBUS DP.
Кроме того, на лицевой панели процессорного модуля располагается слот для энергонезависимой карты памяти, для расширения загрузочной области памяти.
Под крышкой лицевой панели располагается разъем интерфейса
MPI – «MultiPoint interface» (или PPI «Point to Point Interface» – для процессоров семейства S7-200), предназначенный для программирования и
конфигурирования процессорного модуля. Кроме того, интерфейс MPI
может использоваться для создания простых сетевых конфигураций.
В качестве передающей среды MPI используется экранированная
витая пара. Длина сегмента составляет 50 м, на физическом уровне используется интерфейс RS-485. Скорость передачи данных составляет
187,5 Кбит/с.
Также под крышкой лицевой панели находится батарея для поддержания энергонезависимой загрузочной памяти, расположенной внутри контроллера, и клемная колодка для передачи напряжения питания на
процессорный модуль и организации защитного заземления.
На рис. 21 показан пример организации защитного заземления
процессорного модуля с заземленным опорным потенциалом.
Старшие модели контроллеров могут содержать дополнительные
сетевые интерфейсы, такие как PROFIBUS DP и EHERNET TCP/IP.
Например, на рис. 22 показан вид процессора CPU 317-2DP с открытой
крышкой лицевой панели, под которой расположены интерфейсные разъемы MPI и PROFIBUS.
44
Рис. 21. Пример организации защитного заземления процессорного
модуля (перемычку между клеммой «М»
и функциональной землей удалять нельзя)
Индикаторы
состояния
MPI
Переключатель
режимов
Клемная
колодка
PROFIBUS DP
Рис. 22. Вид процессорного модуля CPU317-2DP
с открытой крышкой лицевой панели
2.2.1. Виртуальная структура процессорного модуля
Процессорный модуль представляет собой микропроцессорное
устройство с программным выполнением команд. Система команд и
принцип выполнения программы спроектированы с расчетом выполнения программ по управлению технологическими процессами с требуемой
для таких целей надежностью и точностью.
45
Для снижения требований к уровню подготовки специалистов по
технологическому программированию и обслуживанию микропроцессорного контроллера в целом процессорный модуль содержит средства
виртуализации, представляющие элементы микропроцессорного контроллера в виде, традиционном для автоматизированных систем управления. Виртуальное представление происходит на внутреннем программном уровне процессорного модуля, который недоступен со стороны пользователя.
Такой подход традиционен для микропроцессорных систем управления технологическими процессами. Пользователю предоставляется
структура, позволяющая ставить и решать задачи по автоматическому
управлению технологическими процессами, причем при решении таких
задач пользователь оперирует терминами и понятиями, традиционными
для систем автоматического управления в целом. Основными элементами
процессорного модуля, которые представляются пользователю, являются:
 распределение памяти процессорного модуля;
 циклическое выполнение управляющей программы;
 команды языка программирования STEP 7.
2.2.2. Распределение памяти в процессорном модуле
Распределение памяти в процессорном модуле можно представить
в виде, показанном на рис. 23.
Вся область памяти, доступная со стороны пользователя, делится на
загрузочную, рабочую и системную память. Каждая область памяти физически изолирована от других областей. Как правило, для реализации областей памяти используются запоминающие устройства различных типов.
Загрузочная память – энергонезависимая и реализуется с использованием электрически перепрограммируемых постоянных запоминающих устройств (ЭППЗУ).
Рабочая память представляет собой оперативное запоминающее
устройство и, как правило, не имеет средств, обеспечивающих энергонезависимость.
Системная память чаше всего выполняется как энергонезависимая.
Энергонезависимость обеспечивается как использованием резервных
источников питания, так и использованием «быстрых» ЭППЗУ.
Рабочая управляющая программа находится в двух областях, которые называются загрузочная память (load memory) и рабочая память
(work memory).
Загрузочная память может быть интегрированной в процессорный модуль или подключаемой (plugin), используя при этом внешнюю
карту памяти. Загрузочная память энергонезависимая и используется для
хранения программы во время выключения процессора.
46
Программатор
(устройство
программирования)
Simatic Manager
Конфигурирование
аппаратуры
Программирование
Таблица символов
Процессорное устройство
Загрузочная
память
Блоки системных
данных (данные по
конфигурации
оборудования)
Блоки кода
Блоки данных
(программа
управления
оборудованием)
Сигнальные модули
Системная
память
Дискретные
входы / выходы
Входная таблица
образа процесса
Входная таблица
образа процесса
Выходная таблица
образа процесса
Входная таблица
образа процесса
Диагностический
буфер
Коммуникационный
буфер
Стек локальных
данных
Данные проекта
Стек блоков
Рабочая память
Стек прерываний
Блоки кода
Память маркеров
Функции таймера
Блоки данных
Функции счетчика
Рис. 23. Распределение областей памяти процессорного модуля
Рабочая память представляет собой оперативное запоминающее
устройство, расположенное на плате процессора. Рабочая память содержит исполняемый процессором код и необходимые для работы данные.
Программирующее устройство (программатор) переносит всю программу, включая данные конфигурации аппаратуры, в загрузочную память.
Затем операционная система процессорного модуля копирует программный код и пользовательские данные в рабочую память, где и происходит
выполнение кода процессором модуля. При обратной загрузке программы
в программирующее устройство выбранные из загрузочной памяти блоки
дополняются текущими значениями данных из рабочей памяти.
Системная память (system memory) содержит физические адреса
(переменные), к которым обращается программа. Адреса объединены в
области (области адресов). Объем каждой области адресов определяется
процессорным модулем при конфигурировании аппаратуры.
47
Системная память процессорного модуля содержит следующие
области адресов:
 Входы (Inputs, I). По адресам памяти входов содержится отображение данных с модулей дискретного входа.
 Выходы (Outputs, Q). По адресам памяти выходов содержится
отображение передаваемых данных на модули дискретного выхода.
 Память маркеров (Bit memory, M). Хранит промежуточные данные рабочей программы.
 Таймеры (Timers, T). Таймеры – это ячейки памяти, используемые для реализации интервалов ожидания.
 Счетчики (Counters, C). Счетчики – это организуемые на программном уровне ячейки памяти, используемые для ведения счета по
возрастанию и убыванию.
 Временные локальные данные (Temporary local data, L). Ячейки
памяти, используемые в качестве промежуточной во время обработки
блока программы. Временные локальные данные расположены в L-стеке,
который динамически используется процессором во время выполнения
программы.
Буквы, указанные в скобках после названия, представляют собой аббревиатуры, используемые для различных областей адресов при написании
программы. Также в программе можно присвоить символическое имя каждой переменной и затем использовать его вместо идентификатора адреса.
Системная память, кроме того, содержит служебные области адресов для подготовки передаваемых пакетов данных по сетям (коммуникационный буфер) и системных сообщений (диагностический буфер).
Наименование областей памяти, их условные обозначения и примеры
адресации сигналов приведены в табл. 4.
Таблица 4
Наименование областей памяти, их условные обозначения
и примеры адресации сигналов
Наименование
Условное
Примеры
области памяти обозначение обозначений сигналов
Входная таблица I, PI
IX – входной дискретобраза процесса
ный сигнал;
IB – входной байт
(8 бит)
IW – входное слово
(16 бит)
ID – входное двойное
слово (32 бит)
48
Примеры
адресации сигналов
I0.1 – входной
дискретный сигнал,
расположенный
в бите 1 байта 0
IB10 – входной сигнал
размерностью 8 бит,
расположенный
в 10 байте
IW5 – входное слово,
расположенное
в слове 5, состоящем
из 5 и 6 байта памяти
Окончание табл. 4
Наименование
Условное
Примеры
области памяти обозначение обозначений сигналов
Выходная табQ, PQ
QX – выходной дислица образа
кретный сигнал
процесса
QB – выходной байт
(8 бит)
QW – выходное слово
(16 бит)
QD – выходное двойное слово (32 бит)
Стек локальных
данных
Стек блоков
Память
маркеров
Память
счетчиков
Память
таймеров
C
С
Примеры
адресации сигналов
Q10.1 – входной
дискретный сигнал,
расположенный
в бите 1 байта 10
QB1 – входной сигнал
размерностью 8 бит,
расположенный
в 1 байте
ID0 – входное двойное
слово, расположенное
в двойном слове 0,
занимающего байты
с 0 по 3
L0.0 – бит
LW0 – слово, расположенное в байтах 0 и 1
FC1, FB3, DB 2
M0.0 – 0 бит в байте 0
MD2 – двойное слово
(32 бит), расположенное в байтах с 2 по 5
С1, С10
T
Т
Т0, Т1
L
LX, LB, LW, LD
(по аналогии с областями I и Q)
FC, FB, DB FC, FB, DB
M
MX, MB, MW, MD
2.2.3. Организация и обработка программы
Программное обеспечение процессорного блока состоит из операционной системы (operating system) и пользовательской программы (user
program).
Операционная система – это совокупность всех инструкций и
описаний, которые осуществляют управление всеми системными ресурсами и процессами, использующими эти ресурсы.
Операционная система включает в себя такие функции, как резервирование данных в случае сбоя электропитания, активация приоритетных классов и т.д. Операционная система является неотъемлемым компонентом процессора. У пользователя нет прямого доступа к функциям
операционной системы (доступ производится через системные блоки).
На уровне операционной системы организуется циклическое выполнение управляющей программы.
49
Пользовательская программа представляет собой совокупность
всех инструкций и описаний для обработки сигналов, с помощью которых осуществляется управление процессом в соответствии с определенной задачей автоматизации.
В общем случае пользовательская программа состоит из программных разделов, которые могут обрабатываться процессором в зависимости от определенных событий. Таким событием может быть запуск
системы автоматизации, прерывание или обнаружение программной
ошибки (рис. 24).
STOP ® RUN
Циклическая
программа ОВ1
Синхронные и
асинхронные прерывания
(блоки ОВ10-ОВ122)
Обработка
прерываний
(блоки ОВ10ОВ122)
Функции FC.
Функциональ
ные блоки FB
Функции FC
Функциональ
ные блоки FB
RUN ® STOP
Рис. 24. Упрощенная схема процесса обработки
пользовательской программы
50
Экземплярны
е блоки
данных DB
По порядку выполнения программных разделов, предназначенных
для обработки событий, все программы разделяются по приоритетным
классам (priority classes). При одновременном возникновении нескольких
событий сначала начинают выполняться программные разделы, имеющие
высший приоритетный класс, а затем последовательно-программные разделы, имеющие приоритетный класс ниже и т.д.
Программой с низшим приоритетом является главная программа
(main program), которая обрабатывается процессором циклически. Какие-либо внешние события могут прервать главную программу в любом
месте, после чего процессор выполнит связанный с этим прерыванием
программный раздел и вернет управление главной программе.
Каждому событию соответствует специальный организационный
блок (organization block – OB). Организационные блоки – это часть программы пользователя, которая реализует механизм приоритетных классов. При возникновении события процессор активизирует назначенный
этому событию организационный блок.
Главная программа располагается в организационном блоке ОВ1,
который всегда обрабатывается центральным процессором. По завершении обработки ОВ1 (конец программы) процессор передает управление
операционной системе, и после вызова различных функций операционной системы (таких как обновление образа процесса) центральный процессор снова вызывает ОВ1.
Процесс выполнения программы представлен на рис. 24.
Событиями, которые могут изменять работу программы, являются
прерывания (interrupts) и ошибки (errors).
Источником прерываний может быть сам процесс управления (аппаратные прерывания), или они могут формироваться процессором (циклические прерывания – watchdog interrupts, прерывания по времени суток
– time-of-day interrupts и др.).
Что касается ошибок, то различают синхронные и асинхронные
ошибки. Асинхронной является ошибка, которая не зависит от выполнения программы, к примеру отказ электропитания в устройстве расширения или замена модуля. Синхронные ошибки возникают при выполнении
программы. К ним относится, например, обращение к несуществующему
адресу или ошибка преобразования типа данных.
Типы и номера обрабатываемых событий и соответствующих организационных блоков определяются типом процессора; не каждый тип
процессора способен обработать все возможные события.
2.2.4. Программные блоки процессорного модуля
С целью повышения удобочитаемости и понимания программы её
можно разбить на произвольное число разделов. При этом каждая часть
программы или раздел должен быть независимым и выполнять закончен51
ную процедуру управления технологическим объектом. Такие разделы
программы называются «блоками» («Blocks»), каждый из которых обладает собственной функциональностью, структурой и областью решаемых
задач.
Все блоки делятся на типы. Тип блока определяется задачей, которую он выполняет. Различают следующие типы блоков:
1. Пользовательские блоки (user blocks). Эти блоки содержат пользовательскую программу и пользовательские данные и полностью программируются пользователем.
2. Системные блоки (system blocks). Эти блоки содержат системную программу и системные данные и являются, по сути дела, промежуточным буфером для обращения к функциям операционной системы.
3. Стандартные блоки (standard blocks). Готовые к непосредственному использованию (созданные заранее) блоки, такие как блоки управления функциональными модулями и коммуникационными процессорами (блоки ПИД-регулирования, счетчики, блоки передачи данных и т.д.).
Пользовательские блоки делятся на:
 Функциональные блоки (Function blocks – FB). Эти блоки являются частями программы (или подпрограммами). У функциональных блоков есть область памяти для хранения констант и переменных, используемых в этом функциональном блоке (variable memory), которая располагается в блоке данных (DB). Этот блок постоянно связан с функциональным блоком. Кроме того, с одним функциональным блоком может быть
связано несколько блоков данных с такой же структурой, но содержащих
другие значения. Такой блок данных называется экземплярным блоком
данных (instance data block), а совокупность вызова функционального
блока и экземплярного блока данных называется экземпляром вызова
(call instance) или просто «экземпляром» («instance»).
 Функции (Functions – FC). Функции используются для программирования часто повторяющихся или сложных функций автоматизации.
Для них могут быть определены параметры, которые передаются в функцию каждый раз при её вызове. Функции могут возвращать значение
(называемое значением функции) в вызывающий блок. Значение функции является необязательным параметром. Функции не сохраняют информацию и не имеют назначенного блока данных.
 Блоки данных (Data blocks – DB). Эти блоки содержат данные
пользовательской программы. При программировании блоков данных
определяется форма хранения данных (номер блока, структура данных и
какой при этом используется тип данных). Блоки данных используются
двумя способами:
1) в качестве глобальных блоков данных (global data blocks);
2) в качестве экземплярных блоков данных (instance data blocks).
52
Глобальный блок данных в пользовательской программе является,
так сказать, «свободным» блоком данных и не назначается функциональному блоку. Экземплярный блок данных назначен функциональному
блоку и хранит часть локальных данных этого блока.
Количество блоков определенного типа и размер блоков зависит от
типа процессора и объема его памяти.
Системные блоки. Системные блоки являются компонентами
операционной системы. Они могут содержать программы (системные
функции, SFC, или системные функциональные блоки, SFB) или данные
(системные блоки данных, SDB). Системные блоки предоставляют доступ к важным системным функциям, таким как управление внутренними
таймерами процессора или различные коммуникационные функции.
Системные блоки можно вызывать, но нельзя их изменять. Сами
блоки не занимают места в пользовательской памяти (user memory), а
данные этих блоков, хранящихся в экземплярных блоках данных, используют пользовательскую память.
Системные блоки данных (SDB) содержат информацию о таких
вещах, как конфигурация системы автоматизации или параметры модулей. Система STEP 7 сама генерирует эти блоки и управляет ими. Их содержимое определяется при конфигурировании станций. Как правило,
блоки SDB располагаются в загрузочной памяти (load memory). Из пользовательской программы доступ к ним получить нельзя.
Стандартные блоки. В дополнение к создаваемым функциям и
функциональным блокам можно использовать готовые к применению
блоки (называемые «стандартными блоками»). Они содержатся в библиотеках, входящих в состав пакета STEP 7. Как правило, стандартные блоки
реализуют какой-либо алгоритм, стандартно используемый в системах
автоматического управления, например ПИД-регулятор.
2.3. Сигнальные модули
Основное назначение сигнальных модулей – ввод и вывод аналоговых и дискретных сигналов. В своем составе, в зависимости от типа и
направления распространения сигнала, сигнальные модули содержат
аналого-цифровые, цифро-аналоговые, дискретно-цифровые и цифродискретные преобразователи. С одной стороны преобразователи подключены к электронным цепям задней шины контроллера, а с другой стороны выходные цепи выведены на клеммные колодки (фронтштекеры) с
лицевой стороны модуля.
Для синхронизации передачи данных между процессорным и сигнальным модулем используется ячейка памяти (регистры), расположенная в самом сигнальном модуле. В этих ячейках памяти храниться текущее состояние сигналов модуля (так называемая область I/O).
53
Выполняя роль буфера, ячейки памяти позволяют организовать
передачу данных в и из процессорного модуля без задержек, которые
возникают при выполнении процедур преобразования.
Сигналу каждой цепи при конфигурировании контроллера автоматически назначается адрес. Рабочая программа, обращаясь по этим адресам, фактически производит чтение с модулей ввода и формирует сигналы на модулях вывода. То есть организуется программная (виртуальная)
связь между электрическими сигналами с датчиков к исполнительным
устройствам и самой рабочей программой.
Поясним принцип адресации на примере чтения дискретного сигнала от кнопки КН, подключенной к модулю дискретного ввода (рис. 25).
Рис. 25. Принцип программной организации связи между
электрическими сигналами с датчиков
и рабочей управляющей программой
При конфигурировании в области I/О для ячеек памяти (регистров)
сигнального модуля системой были установлены адреса байт – байт 4 и
байт 5. Эти адреса являются уникальными для всего контроллера в целом.
В процессорном модуле в системной области отображения адресов
входов отводятся два байта, имеющих такие же адреса, что и установленные для модуля ввода и создается виртуальная связь между ячейками памяти модуля ввода и ячейками памяти области адресов входных сигналов.
54
При изменении состояния сигнала во входных цепях модуля изменяются значение ячеек памяти этого модуля и состояние ячеек памяти в
области адресов входных сигналов.
Перенос данных из ячеек памяти модуля в область отображаемой
памяти производится в начале каждого цикла выполнения программы и
называется сканированием. Обратный процесс переноса данных осуществляется в конце каждого цикла выполнения программы.
Например, при нажатии на кнопку КН плюс напряжения питания
поступает на вход 10 модуля ввода. Этот вход имеет виртуальную связь с
ячейкой памяти модуля, которая является битом 2, назначенного системой байта 5, и в этой ячейке появляется значение логической «1». Одновременно по этому же адресу значение отображается в области адресов
входных сигналов.
Для того чтобы рабочая программа считала этот сигнал, достаточно
обратиться по адресу I5.2, где I – обозначение области адресов входных
I 5 .2
сигналов, 5 – адрес байта и 2 – адрес бита в этой области. Например:   .
Перенос данных из ячеек памяти модуля в область отображаемой
памяти производится в начале каждого цикла выполнения программы и
называется сканированием. Обратный процесс переноса данных осуществляется в конце каждого цикла выполнения программы. Возможно и
прямое обращение к ячейкам памяти модуля. Однако использование
отображаемой памяти имеет следующие преимущества по сравнению с
непосредственным обращением к ячейкам памяти модуля:
 После сканирование входов и выходов доступ к данным может
осуществляться побитно (биты входов/выходов напрямую не адресуются).
 Сканирование входа и установка выхода происходит намного
быстрее, чем доступ к модулю. Не тратится время на переходное (динамическое) восстановление на шине входов/выходов и время отклика системной памяти короче, чем время отклика модуля. Поэтому программа
выполняется намного быстрее.
Сигнальное состояние входа на протяжении всего программного
цикла остается неизменным (сохраняется согласованность данных в течение программного цикла). Когда бит модуля входа меняется, изменение сигнального состояния передается на вход на старте следующего
программного цикла. Для выходных модулей изменение сигнального
состояния во время программного цикла не влияет на биты модуля выхода,
что исключает «дребезг» выходного сигнала при программных ошибках.
2.3.1. Типы сигнальных модулей
Требование к универсальности контроллеров S7-300/400 обеспечивается большим разнообразием типов используемых сигнальных модулей. Так как контроллер является проектно компонуемым изделием, ос55
новную часть компоновки составляет правильный выбор типов сигнальных модулей, обеспечивающих ввод-вывод всех сигналов с объекта
управления вне зависимости от типа сигнала и диапазона его изменения.
Так как число возможных сигналов, используемых в системах
управления, конечно и определено требованиями к системам управления
в целом, то набор типов сигнальных модулей, выпускаемых фирмой
Siemens, в составе системы управления Simatic полностью перекрывает
все требуемые по конфигурациям ввода-вывода.
Конструктивно все сигнальные модули семейства выполняются
в одинаковых корпусах стандартного типоразмера. Размер модуля семейства S7-300 (Ш×В×Г) составляет 40×125×120, а модуля семейства S7-400
25×290×210. На рис. 26 показано изображение сигнальных модулей семейств S7-300 и S7-400.
Внутренний состав сигнальных модулей, их характеристики и схемы подключения внешних цепей уникальны для каждого типа модулей.
В обозначении сигнального модуля присутствует информация о характеристиках сигнального модуля, типе и количестве сигналов, подключаемых к модулю. Эта информация выведена на лицевую панель модуля.
Как правило, в обозначении сигнального модуля используется пять
полей: номер семейства модулей, номер модуля, тип модуля, количество
сигналов, характеристика сигнала. На рис. 27 приведен пример обозначения сигнального модуля дискретного ввода семейства S7-300.
а
б
Рис. 26. Вид сигнальных модулей, выполненных в корпусе
стандартного типоразмера для семейств контроллеров:
а – S7-300; б – S7-400
56
SM 321 DI 16 ×x 24VDC
5
4
3
2
1
Рис. 27. Пример обозначения сигнального модуля дискретного
ввода семейства S7-300: 1 – семейство сигнальных модулей;
2 – номер сигнального модуля; 3 – тип сигнального модуля
(дискретный ввод); 4 – количество сигналов (входов);
5 – характеристика сигнала (24 В постоянного тока)
Однако модули, имеющие идентичное обозначение и идентичны
по типу и количеству сигналов, могут иметь различную внутреннюю организацию и различные схемы подключения внешних цепей. Более точную информацию по сигнальному модулю можно получить в каталоге
производителя по так называемому «каталожному номеру», указанному
на лицевой панели модуля.
Например, один из вариантов обозначения модуля дискретного
вывода с «каталожным номером» может выглядеть так:
SM 322 DO 3224V/0,5А (6ES7 322-1BL00-0AA0).
Возможное содержание полей, используемых при обозначении
сигнального модуля, приведены в табл. 5.
Таблица 5
Возможное содержание полей обозначения сигнальных модулей
Номер поля
1
2
Содержимое поля
SM 3
SM 4
21
22
23
31
32
33
Обозначение
Модуль семейства S7-300
Модуль семейства S7-400
Модуль дискретного ввода
Модуль дискретного вывода
Модуль дискретного ввода-вывода
Модуль аналогового ввода
Модуль аналогового вывода
Модуль аналогового ввода-вывода
57
Окончание табл. 5
Номер поля
Содержимое поля
3
2, 4, 8, 16, 32
DI
DO
4
AI
AO
DC 24 V
AC 120 V
AC 230 V
5
DC 0,5 A
DC 2 A
AC 2 A
8, 10, 13, 14,
16 bit
Обозначение
Количество цепей ввода вывода
Дискретный ввод
Дискретный вывод
Аналоговый ввод
Аналоговый вывод
Напряжение коммутации 24 В постоянного
тока
Напряжение коммутации 120 В переменного
тока
Напряжение коммутации 230 В переменного
тока
Ток коммутации 0,5 А постоянного тока
Ток коммутации 2 А постоянного тока
Ток коммутации 2 А переменного тока
Разрядность АЦП и ЦАП модулей аналогового ввода и вывода
2.3.2. Монтаж сигнальных модулей
Сигнальные модули семейства S7-300 имеют на корпусе специальный держатель, который позволяет навесить модуль на профильную
рейку. В нижней части корпуса модуля находится отверстие для резьбового соединения профильной рейкой. Корпус модуля со стороны профильной рейки имеет по бокам два разъема, предназначенных для соединения модулей между собой и организации задней шины с помощью
П-образных шинных соединителей. Пример монтажа модуля семейства
S7-300 показан на рис. 28. Подобный тип монтажа используется и для
других типов модулей семейства контроллеров S7-300.
Рис. 28. Пример монтажа модулей семейства S7-300
на профильную рейку
58
Между собой сигнальные модули могут устанавливаться в любом
порядке, но начиная только с позиции 4. С позиции 1 по 3 устанавливаются модуль питания, процессорный модуль и коммуникационный процессор.
Сигнальные модули семейства S7-400 устанавливаются в монтажную стойку и фиксируются в рабочих положениях винтами, встроенными
в корпус каждого модуля. Порядок установки модулей может быть произвольным. Подключение к внутренней шине контроллера производится
через разъемы монтажной стойки. Пример установки модуля на монтажную стойку показан на рис. 29.
Рис. 29. Пример монтажа модулей семейства S7-400
на монтажную стойку
Соединение модулей между собой осуществляется шиной, расположенной на монтажной стойке.
Подключение входных цепей производится к съемным фронтальным соединителям, которые закрываются защитными крышками. В паз
крышки вставляется этикетка, на которой наносится маркировка входных
цепей. Наличие фронтальных соединителей упрощает монтаж соединительных проводников и позволяет производить замену модулей без демонтажа их внешних цепей. Этикетка для маркировки внешних цепей
входит в комплект поставки модуля. Операции замены модулей могут
выполняться без отключения питания контроллера.
При первой установке фронтального соединителя на модуль автоматически выполняется операция его механического кодирования. В
59
дальнейшем фронтальный соединитель может быть установлен только на
модули такого же типа, что исключает возможность возникновения ошибок при замене модулей. Фронтальный соединитель не входит в комплект
поставки модуля и должен заказываться отдельно. Возможно использование различных фронтальных соединителей, обеспечивающих подключение внешних цепей через контакты под винт или через пружинные
контакты-защелки. Для ускорения монтажа для подключения внешних
цепей могут применяться модульные или гибкие соединители.
Большинство параметров сигнальных модулей настраивается программным путем с помощью HW Config пакета STEP 7. Эта утилита позволяет устанавливать времена фильтрации входных дискретных сигналов, диапазоны измерения входных аналоговых величин, параметры аналого-цифрового преобразования, поддержку прерываний, активизировать
диагностические функции и т.д.
2.3.3. Схемы внешних соединений сигнальных модулей
различных типов
Большое разнообразие типов сигнальных модулей позволяет использовать их в построении практически любого типа контура автоматического управления. Рассмотрим схемы подключения внешних цепей
некоторых наиболее распространенных типов сигнальных модулей.
Дискретные модули. Дискретные модули ввода позволяют вводить дискретные сигналы от датчиков, таких как концевые выключатели,
датчики предельных значений и аварийные датчики, сигналы от кнопок и
переключателей.
Как правило, внешние цепи модулей ввода объединены в группы.
Входные цепи группы гальванически изолированы от интерфейса задней
шины, а также от входных цепей другой группы. Внутри группы гальванической изоляции между цепями нет. Исключение составляют модули,
в которых в группе сигналов находится только одна цепь. В этом случае
все внешние цепи изолированы как друг от друга, так и от интерфейса
задней шины.
Сигналы внутри группы имеют общую точку подключения. Потенциал общей точки для различных моделей модулей может быть как
положительным, так и отрицательным (для модулей с напряжением коммутации 24 В), что позволяет интегрировать модули в уже существующие схемы локальных контуров управления без необходимости осуществлять развязку цепей для изменения полярности потенциала общей
точки подключения.
На рис. 30 показана схема подключения 32 внешних цепей модуля
SM 321 DI 32DC24V (6ES7 321-1ВL00-0AA0). Потенциал общего провода модуля для подключения дискретных датчиков составляет -24 В.
60
Модули дискретного вывода позволяют коммутировать дискретные цепи с током 0,5 или 2 А, в зависимости от типа модулей. Так же как
и модули ввода, внешние цепи разбиты на группы. Между группами
внешних цепей и интерфейсом внутренней (задней) шины имеется гальваническая развязка, между цепями внутри группы развязки нет.
На рис. 31 приведен пример подключения внешних цепей модуля
SM 322 DO 3224V/0,5А (6ES7 322-1BL00-0AA0), где показано подключение 32 внешних выходных цепей с током коммутации до 0,5 А. Потенциал
общего провода модуля для подключения нагрузок составляет +24 В.
Также существуют дискретные сигнальные модули, содержащие как цепи ввода, так и цепи вывода. Например, на рис. 32 показано
подключение внешних цепей, 16 из которых являются цепями дискретных датчиков с потенциалом общего провода модуля -24 В, а 16 –
цепями дискретных нагрузок с потенциалом общего провода модуля
+24 В. Как нетрудно заметить, все дискретные входные сигналы объединены в одну группу, а выходные разбиты на две. Это является отличительной особенностью модуля SM 323 DI16/DO16DC24V/0,5A
(SM323 6ES7 323 1BL00-0AA0).
Также на рис. 33, 34 показаны примеры подключения внешних цепей модуля дискретного ввода SM 321 DI 8AC 120/230 V ISOL (SM 321
6ES7321-1FF10-0AA0) и модуля дискретного вывода SM 322 DO
8Rel. AC 230 V (SM 322 6ES7-322 1HF01-0AA0) соответственно, питание внешних цепей которых осуществляется переменным током напряжением 120/230 В. Подобные модули используются для коммутации индуктивных нагрузок (например, соленоидов).
Как видно из схем подключения внешних цепей и внутренней
структуры модулей, для модуля дискретного ввода (см. рис. 33) особенностью является полная гальваническая изоляция входных цепей друг от
друга. Это повышает безопасность использования модуля и исключает
возникновение ложных контуров во входных цепях.
Для модуля дискретного вывода SM 322DO 8Rel. AC230V коммутация производится с помощью электромагнитных реле (модуль имеет
дополнительное обозначение Rel). Также в модуль встроен модуль тепловой защиты реле, что повышает надежность модуля.
Так как разнообразие модулей дискретного ввода и вывода достаточно велико, более подробную информацию о модуле и схеме его подключения можно получить непосредственно из технической документации на модуль, а при наличии модуля схема внешних цепей изображена
на внутренней крышке со стороны цепей.
Внешние цепи модулей семейства S7-400 имеют сходную организацию подключения. В этом семействе внешние цепи также разбиваются
на группы, которые гальванически изолируются от цепей задней шины.
61
62
Рис. 30. Схема подключения внешних цепей модуля ввода
дискретных сигналов SM 321 DI 32DC24V (6ES7 321-1EL00-0AA0)
63
Рис. 31. Схема подключения внешних цепей модуля вывода
дискретных сигналов SM 322 DO 3224V/0,5А (6ES7 322-1BL00-0AA0)
64
Рис. 32. Схема подключения внешних цепей модуля ввода-вывода дискретных сигналов
SM 323 DI16/DO16DC24V/0,5A (SM323 6ES7 323 1BL00-0AA0)
Рис. 33. Схема подключения внешних цепей модуля ввода
дискретных сигналов SM 321 DI 8AC 120/230 V ISOL
(SM 321 6ES7-321-1FF10-0AA0)
Рис. 34. Схема подключения внешних цепей модуля вывода дискретных
сигналов SM 322 DO 8Rel. AC 230 V (SM 322 6ES7-322 1HF01-0AA0)
(Характеристика REL – наличие релейной развязки)
65
В состав модулей входят модули с полной гальванической изоляцией всех цепей, а также модули, в которых гальваническая изоляция и
коммутация осуществляются с помощью электромагнитных реле.
Аналоговые модули. Аналоговые модули ввода имеют более
сложную организацию внешних цепей, так как в качестве входных сигналов могут быть: а) токовые сигналы в диапазонах 0–20, 4–20, 20 мА;
б) сигналы напряжения 0–2, 0–10, 10, 1, 2,5 В; в) сигналы с термометров сопротивлений различных градуировок с начальным сопротивлением
от 10 до 1000 Ом с 2-, 3- и 4-проводной схемой подключения; г) сигналы
с термопар различных градуировок.
Такое разнообразие типов сигналов привело к разделению модулей
на группы с ограниченным количеством типов аналоговых сигналов, а
настройка на диапазон изменения входного сигнала осуществляется программно при конфигурировании контроллера.
Например, на рис. 35 показаны внешние цепи модуля аналогового
ввода SM 331 AI 816 Bit 6ES7 331-7NF00-0AB0, позволяющего подключать датчики с выходным сигналом в виде напряжения. Однако в сам
модуль встроены шунты по 250 Ом, что позволяет подключать датчики и
с токовым сигналом. Настройка модуля на диапазон изменения входного
сигнала и выбор типа сигнала (токовый или напряжение) производится
при конфигурировании. Диалоговое окно конфигурирования модуля показано на рис. 36.
Рис. 35. Схема подключения внешних цепей к модулю ввода
аналоговых сигналов SM 331 AI 816 Bit 6ES7 331-7NF00-0AB0
66
Рис. 36. Диалоговое окно конфигурирования модуля
аналогового ввода SM 331 AI 816 Bit 6ES7 331-7NF00-0AB0
(входы 0–3 сконфигурированы как токовые с диапазоном 4–20 мA,
а входы 4–7 как напряжение с диапазоном 10 В)
Аналоговые модули вывода позволяют формировать сигналы тока
диапазонов 0–20, 4–20 мА и напряжения диапазонов 0–10, 10, 1–5 В.
Кроме того, предусмотрена установка начального смещения для
выходных
сигналов,
представленных
напряжением.
Пример
подключения внешних цепей для модуля аналогового вывода приведен
на рис. 37 на примере модуля SM 332 AO 412 Bit 6ES7 332-5HD010AB0, диалоговое окно конфигурирования модуля показано на рис. 39.
Также в состав аналоговых сигнальных модулей входят модули,
содержащие как цепи аналогового ввода, так и аналогового вывода.
Настройка подобных модулей происходит также программно, по
аналогии с модулями ввода и вывода, которые представлены выше. Как
правило, такие модули позволяют производить ввод-вывод только
сигналов напряжения и тока. Пример подключения внешних цепей
модуля аналогового ввода-вывода SM 333 AI 4/AO 2  8/8 Bit
представлен на рис. 38.
67
68
Рис. 37. Схема подключения внешних цепей к модулю
аналогового вывода SM 332 AO 412 Bit 6ES7 332-5HD01-0AB0
69
Рис. 38. Схема подключения внешних цепей к модулю ввода-вывода
аналоговых сигналов SM 333 AI 4/AO 2  8/8 Bit
Рис. 39. Диалоговое окно конфигурирования модуля аналогового
вывода SM 332 AO 412 Bit 6ES7 332-5HD01-0AB0
(выходы 0, 2 сконфигурированы
как сигналы напряжения 1–5 и 10 В,
выходы 1, 3 как токовые с диапазонами 4–20 и 0–20 мА)
Одной из важных характеристик модулей аналогового вводавывода является разрядность используемых АЦП и ЦАП. На модуле указывается разрядность для полного диапазона изменения входного сигнала
с учетом знака аналогового сигнала, поэтому один разряд отводится на
знак. Это следует помнить при работе с аналоговыми сигналами, полярность которых не меняется во время работы.
Несмотря на заявленную разрядность, слово, в котором содержится цифровое представление аналогового сигнала, содержит всегда 2 байта
(16 бит). Значение сигнала всегда располагается в старших битах. Младшие биты не участвуют в кодировании сигнала, но, тем не менее, всегда
все равны либо логической «1» при отрицательном значении сигнала,
либо логическому «0» при положительном.
Это сделано для того, чтобы в случае замены модуля на модуль с
другой разрядностью в управляющую программу не требовалось вносить
изменения. Работа программной части контура системы управления не
изменится, а изменится лишь точность представления аналогового сигнала. Если будет использоваться модуль с большей разрядностью, то точность представления увеличивается, а если с меньшей – уменьшается.
Представление аналогового сигнала в цифровом виде и размещение результата в слове (16 бит) показано на рис. 40.
70
Старший байт
7
6
5
4
3
Младший байт
2
1
0
7
Значащие разряды для модуля 10 bit
6
5
4
3
2
1
0
Незначащие
Не
значащиеразряды
разряды
Значащие разряды для модуля 14 bit
Не значащиеразряды
разряды
Незначащие
Знак сигнала
Рис. 40. Представление аналогового сигнала в цифровом виде
и размещение результата представления в слове данных
(два байта – 16 бит)
При этом необходимо учитывать особенности кодировки и масштабирования аналоговых сигналов, представленные в табл. 6, 7. Кодировка номинального диапазона зависит от типа сигнала. Примеры кодировок в зависимости от типа сигнала приведены в табл. 8, 9.
Таблица 6
Кодировка аналоговых входных сигналов
Род сигнала
Напряжение,
ток
Сопротивление
Температура
Диапазон
или тип датчика
Номинальный
диапазон сигнала
Кодирование
номинального
диапазона
Симметричный
диапазон
±80, ±250, ±500 мВ;
±1, ±2,5, ± 5, ±10 В;
±3,2, ±10, ±20 мА
от -27648 до
+27648
Асимметричный
диапазон
0...2, 1...5 В;
0...20, 4...20 мA
от 0 до +27648
–
0...150, 0...300,
0...600 Ом
от 0 до +27648
Pt 100
от -200 до + 850 ºC
от -2000 до +8500
Ni 100
от -60 до + 250 ºC
от –600 до +2500
Термопара тип K
от -270 до + 1372 ºC от –2700 до +13720
Термопара тип N
от -270 до + 1300 ºC от –2700 до +13000
Термопара тип J
от -210 до + 1200 ºC от –2100 до +12000
Термопара тип E
от –270 до +1000 ºC
71
от –2700 до +10000
Таблица 7
Преобразование аналогового выходного сигнала
Диапазон
Выходной
сигнал
Выходной сигнал
преобразуется в
Симметричный диапазон
от - 27648 до
+27648
± 10 В;
± 20 мА
Род сигнала
Напряжение,
ток
Переполнение
Асимметричный диаот 0 до +27648
пазон
0...10, 1...5 В;
0...20, 4...20 мA
Если величина, которая должна преобразовываться, достигает области переполнения, то выходные сигналы
аналогового выходного модуля блокируются (0 В, 0 мА)
Таблица 8
Примеры кодировок сигналов напряжения и тока
Диапазон
Переполнение
Превышение верхней границы
Напряжение
10 В
>=11,759
11,7589
.
.
10,0004
Номинальный диа10,00
пазон
7,50
.
.
-7,5
-10,00
Превышение нижней -10,0004
границы
.
.
-11,759
Переполнение
<=-11,76
Значение
32767
32511
.
.
27649
27648
20736
.
.
-20736
-27648
-27649
.
.
-32512
-32768
72
Ток
4..20 мA
Значение
>=22,815
22,810
.
.
20,0005
20,000
16,000
.
.
4,000
32767
32511
.
.
27649
27648
20736
.
.
0
3,9995
.
.
1,1852
<=1,1845
-1
.
.
-4864
-32768
Таблица 9
Примеры кодировок сигналов сопротивления и температуры
Сопротивление
Температура
Диапазон
10 В
Значение
4..20 мA
Значение
Переполнение
>=11,759
32767
>=22,815
32767
Превышение верхней 11,7589
32511
22,810
32511
границы
.
.
.
.
.
.
.
.
10,0004
27649
20,0005
27649
Номинальный диапа- 10,00
27648
20,000
27648
зон
7,50
20736
16,000
20736
.
.
.
.
.
.
.
.
-7,5
-20736
4,000
0
-10,00
-27648
Превышение нижней -10,0004
-27649
3,9995
-1
границы
.
.
.
.
.
.
.
.
-11,759
-32512
1,1852
-4864
Переполнение
<=-11,76
-32768
<=1,1845
-32768
Пример представления входного сигнала в цифровом коде
Рассмотрим представление входного аналогового сигнала в виде
напряжения величиной 2,5 В в цифровой форме. Сигнал вводится через
первый вход модуля аналогового ввода SM 331 AI 816 Bit (6ES7 3317NF00-0AB0), настроенного на номинальный диапазон 10 В. Максимальное значение входного сигнала для модуля составит 11,759 В.
Так, значащих разрядов будет 15 (один разряд отводится под знак
числа), можно определить максимальное значение числовой величины
цифрового кода при подаче на вход максимального значения напряжения
11,759 В (см. табл.3). Это значение составит:
215–1 = 32767.
Так как значение 2,5 В составляет 0,2126 части диапазона, то значение цифрового кода составит 6966. Выраженное в двоичной форме
значение будет представлено в слове данных, как показано на рис. 41.
Старший байт
Младший байт
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
Рис. 41. Цифровое представление аналогового сигнала 2,5 В модулем
SM 331 AI 816 Bit, настроенного на номинальный диапазон 10 В
73
2.4. Вопросы для самостоятельной подготовки
1. Какие модули входят в состав контроллера семейства
SIMATIC S7-300/400? Поясните назначение каждого типа модулей.
2. Приведите классификацию процессорных модулей. Поясните
область применения каждого типа процессорного модуля.
3. Поясните назначение полей сигнальных модулей. Приведите
примеры обозначения дискретных и аналоговых модулей и дайте расшифровки их свойств.
4. Как происходит кодирование аналогового сигнала?
5. Какие типы сигналов можно вводить в контроллер через аналоговые модули ввода?
6. Какие типы сигнальных модулей входят в состав микропроцессорного контроллера SIMATIC S7?
7. Как происходит организация и обработка программы в процессорном модуле?
8. Поясните распределение памяти в процессорном модуле.
Назначение областей памяти.
9. Какие типы программных блоков используются в SIMATIC S7?
3. НАСТРОЙКА И ПРОГРАММИРОВАНИЕ ТЕХНОЛОГИЧЕСКИХ
КОНТРОЛЛЕРОВ SIMATIC S7
3.1. Основные понятия языка технологического
программирования STEP
Все процедуры, связанные с настройкой и программированием
контроллеров, производятся с использованием программного пакета Simatic Manager [1, 2]. Пакет Simatic Manager является модульным пакетом,
то есть для выполнения каких-то определенных действий используется
отдельная программа.
В базовый комплект Simatic Manager входят языки программирования списка операторов (Statement List, STL), контактного плана (Ladder
Diagramm, LAD) и функционального плана или диаграммы функциональных блоков (Function Block Diagram, FBD). Кроме базового пакета
также доступны такие пакеты, как S7-SCL (Structured Control Language –
структурированный язык управления), S7-GRAPH (Sequence Planning –
последовательное планирование) и S7-HiGraph (State-Transition Diagram –
диаграммы состояний-переходов).
Группа языков технологического программирования STEP 7 позволяет реализовывать алгоритмы управления технологическими процессами, обладая при этом минимальными знаниями в области программирования и использования алгоритмических языков. Все языки этой группы соответствуют стандарту МЭК 61131-3 [3].
74
Большинство алгоритмов управления реализовываются с использованием программных элементов, выраженных в терминах и понятиях, свойственных системам автоматизации. Такой подход в разработке управляющих
алгоритмов микропроцессорного контроллера позволяет использовать графическое представление программы управления, что значительно повышает
читаемость программы и уменьшает количество ошибок.
В пособии будут рассмотрены примеры реализации элементов
программы управления на примере двух языков: S7-LAD (язык представления программы управления в виде релейных схем) и S7-STL (язык
представления программы управления в виде списка операторов).
Принципиальной разницы в возможностях реализации управляющих алгоритмов между этими языками нет, однако некоторые алгоритмы,
например такие, как алгоритмы, которые реализуют последовательные
схемы включения, традиционно реализовываются на языке S7-LAD, а
некоторые, например алгоритмы обработки целых и вещественных величин, на языке S7-STL.
В качестве пояснения принципа разработки программы рассмотрим примеры реализации некоторых релейных схем. Реализованные в
виде реальных элементов электрические схемы, реализующие основные
функции, представлены на рис. 42.
Для программного формирования функций этих релейных схем
проведем соответствие реальных элементов и их графических обозначений на языке LAD. На рис. 43 показаны соответствия элементов реальной
электрической релейной схемы с обозначениями элементарных действий
на языке LAD.
В соответствии с этими обозначениями программные аналоги
схем, представленные на рис. 42, будут иметь вид, показанный на рис. 44.
Как видно из рис. 44, на программной реализации релейных схем отсутствуют промежуточные элементы. На схеме указаны только необходимые для реализации логической функции элементы.
Более сложные операции являются комбинацией элементарных.
Однако при проектировании релейной схемы на языке LAD имеется ряд
ограничений:
1. Условное движение тока в цепи может происходить слева
направо (от условного «плюса» сигнала к «общему»).
2. Недопустимы цепи, в которых отсутствуют контакты. Пример
недопустимых релейных схем показан на рис. 45.
На языке STL релейные схемы описываются с помощью специального языка – списка операторов. Базовые операции языка STL описываются операторами:
А, AN – операция логического И, И с инверсией;
О, ON – операция логического ИЛИ, ИЛИ с инверсией;
X, XN – операция исключающее ИЛИ, исключающее ИЛИ с инверсией;
= – катушка реле.
75
+UПИТ
+UПИТ
КН
КН1
КН2
L
L
Р1.1
Р1.1
Р1
Р1
Р2
Р2.1
аа)
б б)
+UПИТ
КН1
КН2
L
Р1
Р2
Р1.1
Р2.1
в в)
Изображение
на
Изображение
в схем,
на электрических
Изображение
в реализующих основные
Рис.Изображение
42. Примеры
Наименование
Наименование
электрической
схеме
языка
LAD
электрической
схеме
языка
LAD
логические
релейных
схем:
а – отрицание (НЕ);
Изображениеоперации
на
Изображение
в
Наименование
Изображение
на схеме
Изображение
в – логическое сложение
б –электрической
логическое
умножение
(И); вLAD
языка
Наименование(ИЛИ)
Изображение
на
Изображение
в
электрической
схеме
языка
LAD в
Изображение
на
Изображение
Наименование
Нормально
- разомкнутый
Нормально
- разомкнутый
электрической схеме
языка LAD
Наименование
Изображение
электрической
схеме
языкаИзображение
LAD
Наименование
контакт
контакт
на электрической схеме
в языке LAD
Нормально - разомкнутый
Нормально - разомкнутый
контакт
Нормально
- разомкнутый
контакт
Нормально-разомкнутый
Нормально
- разомкнутый
контакт
контакт
контакт
Нормально
- замкнутый
Нормально
- замкнутый
контакт
контакт
Нормально - замкнутый
Нормально
- замкнутый
Нормально-замкнутый
контакт
Нормально
- замкнутый
контакт
контакт
Нормально
- замкнутый
контакт
контакт
Катушка
Катушка
реле реле
Катушка реле
Катушка реле
Катушка реле
Катушка реле
Катушка
реле
Рис. 43. Соответствие элементов реальной
электрической релейной схемы с их графическим программным
представлением на языке LAD
76
КН
L
(НЕ, отрицание)
а)
а
КН1
КН2
L
(И, конъюнкция)
б
б)
КН1
L
(ИЛИ, дизъюнкция)
КН2
в
в)
Рис. 44. Примеры релейных схем на языке LAD, реализующие
основные логические операции в соответствии с рис. 42
КН1
КН3
КН2
КН4
КН6
КН7
L
Недопустимое
движение тока
КН5
КН7
аа)
КН1
КН3
КН6
L
бб)
Рис. 45. Недопустимые релейные схемы в языке LAD:
а – недопустимое движение условного тока;
б – отсутствие контактов в цепи
Команды записываются по строкам в той же последовательности,
в которой происходит вычисление логического выражения.
77
Например, реализация основных логических операций на языке
STL (см. рис. 44) запишется так:
Отрицание (см. рис. 44, а):
AN
=
КН
L
Логическое И (см. рис. 44, б):
A
A
=
KH1
KH2
L
Логическое ИЛИ (см. рис. 44, в):
О
KH1
О
KH2
=
L
Операция «Исключающее ИЛИ» не является элементарной логической операцией, однако в языке STL для этой операции предусмотрена
команда. Реализация операции «Исключающее ИЛИ» на языке STL может быть записана следующим образом:
Х
Х
=
KH1
KH2
L
В языке LAD этой операции соответствует релейная схема, приведенная на рис. 46.
КН1
КН2
КН1
КН2
L
Рис. 46. Релейная схема на языке LAD,
реализующая операцию «Исключающее ИЛИ»
78
В качестве примера сложной релейной схемы на языках LAD и
STL, в которой используются элементарные логические операции, представлена схема на рис. 47.
КН1
КН2
L
КН3
O
ON
KH1
KH3
AN
KH2
O
KH4
=
L
КН4
аа)
бб)
Рис. 47. Пример релейной схемы на языках:
а – LAD; б – STL
3.2. Слово состояния. Результат логической операции (RLO)
При выполнении логических и арифметических операций промежуточные вычисления сохраняются в специальном регистре, который
называется «слово состояния». Регистр представляет собой слово памяти, биты которого сохраняют информацию об определенном типе операций. Структура слова состояния представлена на рис. 48.
215...
...29
28
27
26
25
24
23
22
21
20
BR CC 1 CC 0 OV
OS
OR STA RLO FC
Рис. 48. Структура слова состояния
FC – бит первичного опроса. Бит 0 слова состояния называется битом первичного опроса. Состояние сигнала 0 в бите FC указывает, что за
этой точкой в программе следующая логическая команда начинает новую
цепь логических операций (работа бита FC происходит с инверсией).
Каждая логическая команда опрашивает состояние сигнала бита
FC, а также состояние сигнала операнда, к которому она обращается.
Если бит FC равен 0, то команда сохраняет результат опроса состояния сигнала в бите результата логической операции слова состояния
(бит RLO) и устанавливает бит FC в 1. Этот процесс называется первичным опросом.
79
Если состояние сигнала бита FC равно 1, то команда логически
объединяет результат опроса состояния сигнала операнда, к которому она
обращается, со значением, хранящимся в предыдущем бите RLO.
Цепь логических команд всегда заканчивается командами вывода
(S, R или =), командой перехода, связанной с результатом логической
операции (JC) или одной из скобочных команд A(, O(, X(, AN(, ON( или
XN. Каждая такая команда сбрасывает бит FC в 0.
RLO – результат логической операции. Бит 1 слова состояния
называется битом RLO (result of logic operation – результат логической
операции). Этот бит хранит результат битовой логической операции или
операции сравнения.
Например, на рис. 49 вторая команда в цепи битовых логических
команд опрашивает состояние сигнала операнда и дает результат 1 или 0.
Затем эта команда логически сопрягает этот результат со значением, хранящимся в бите RLO слова состояния, в соответствии с правилами булевой логики. Результат этой логической операции сохраняется в бите RLO
слова состояния, заменяя предыдущее значение бита RLO. Каждая последующая команда в цепи выполняет логическую операцию с двумя
значениями: результатом, полученным при опросе командой операнда, и
текущим значением RLO.
Бит RLO можно устанавливать в 1 с помощью команды SET или
сбрасывать RLO в 0 с помощью команды CLR.
Код
программы
Состояние
сигнала
входа или
выхода
Результат
опроса
Бит RLO
Бит FC
Пояснение выполняемых
действий
0
Бит FC = 0 указывает, что
следующая команда начинает
логическую цепь
I 1.0
1
1
1
1
Результат первичного опроса
сохраняется в бите RLO. Бит FC
устанавливается в 1.
AN I 1.1
0
1
1
1
Результат опроса объединяется с
предыдущим RLO в соответствии с
логической операцией И
=
1
0
Значение RLO Присваивается
выходу. Бит FC сбрасывается в 0
A
Q 4.0
Рис. 49. Сохранение бита RLO и FC при выполнении
последовательности логических команд
STA – бит состояния. Бит состояния STA сохраняет значение бита, к которому происходит обращение. Состояние битовой команды, ко80
торая имеет доступ к памяти на чтение (A, AN, O, ON, X, XN), всегда
равно значению бита, опрашиваемого этой командой (то есть бита, с которым она выполняет логическую операцию).
Состояние битовой команды, которая имеет доступ к памяти на
запись (S, R, =), равно значению бита, в который команда производит
запись, или, если запись не производится, то оно равно значению бита, к
которому команда обращается. Бит состояния не имеет значения для битовых команд, не обращающихся к памяти. Такие команды устанавливают бит состояния в 1. Бит состояния не опрашивается командой. Он интерпретируется только при тестировании программы (статус программы).
OR – результат выполнения параллельной цепочки (операции
ИЛИ). Бит OR необходим, если вы используете команду O при выполнении логического И перед операцией ИЛИ. Функция И может содержать
следующие команды: A, AN A(, AN(, ) и NOT. Бит OR показывает этим
командам, что ранее выполненная функция И дала значение 1, предвосхищая тем самым результат логической операции ИЛИ. Любая другая
команда, обрабатывающая биты, сбрасывает бит OR.
OV – бит переполнения. Бит переполнения указывает на ошибку.
Он устанавливается арифметической командой или командой сравнения
чисел с плавающей точкой после возникновения ошибки (переполнение,
недопустимая операция, недопустимое число с плавающей точкой). Этот
бит устанавливается в соответствии с результатом следующей арифметической команды или команды сравнения.
OS – бит сохраняемого переполнения. Бит сохраняемого переполнения устанавливается вместе с битом OV, когда происходит ошибка. Так
как бит OS остается установленным после устранения ошибки, то он сохраняет состояние бита OV и указывает, появлялась ли ошибка в одной из ранее
выполненных команд: команды JOS (переход после сохраняемого переполнения), команды вызова блока и команды конца блока сбрасывают бит OS.
СС1 и СС0 – код условия 1 и код условия 0. Биты СС1 и СС0 содержат информацию о результатах выполнения операций. Биты контролируют такие характеристики полученного результата, как: значение относительно 0 (больше меньше или равна), равенство двух значений, переполнение результата в арифметической операции, значение бита слова
при циклических сдвигах.
Варианты состояния битов СС1 и СС0 для различных типов операций представлены в табл. 10.
BR – бит двоичного результата. Бит двоичного результата образует связь между обработкой битов и слов. Это эффективное средство
интерпретации результата операции со словами как двоичного результата
и встраивания этого результата в двоичную логическую цепь. С этой точки зрения бит BR представляет собой внутримашинный бит памяти, в
котором сохраняется RLO перед выполнением операции со словами, которые изменяет RLO.
81
Таблица 10
Состояния битов СС1 и СС0 для различных типов операций
СС1
СС0
Действия
После арифметических операций без переполнения
0
0
1
0
1
0
Результат = 0
Результат < 0
Результат > 0
После операций с целыми числами с переполнением
0
0
0
1
1
0
1
1
Переполнение отрицательного диапазона при +I, +D
Переполнение отрицательного диапазона при *I, *D
Переполнение положительного диапазона при +I, +D,
-I, -D, NEGI, NEGD
Переполнение положительного диапазона при *I, *D,
/D, /I
Переполнение отрицательного диапазона при +I, +D,
-I, -D
Деление на 0 в /I, /D и MOD
После операций с плавающей точной, с переполнением
0
0
1
1
0
1
0
1
Ступенчатая потеря значимости
Переполнение отрицательного результата
Переполнение положительного результата
Недопустимое число с плавающей точкой
0
0
1
1
0
1
0
1
Аккумулятор 2 = Аккумулятор 1
Аккумулятор 2 < Аккумулятор 1
Аккумулятор 2 > Аккумулятор 1
Аккумулятор 1 или Аккумулятор 2 – недопустимое
число с плавающей точкой
После операций сравнения
После операций сдвига и циклического сдвига
0
1
0
0
Последний выдвинутый бит = 0
Последний выдвинутый бит = 1
После цифровых логических операций
0
1
0
0
Результат = 0
Результат <> 0
82
Поэтому после операций со словами можно восстановить бит RLO
из BR и продолжить логическую цепочку.
Также бит BR дает возможность сохранить результат ошибки
выполнения функции или функционального блока и производить над
этим результатом логические действия. Если функция выполнилась с
ошибкой, то внутри функции необходимо биту BR присвоить 0, тогда в
релейной схеме результат выполнения функции можно отключить. Если
функция выполнилась без ошибок, то необходимо BR присвоить 1, что
позволит обработать результат вычисления функции средствами релейной логики.
3.3. Скобочные операции. Скобочный стек. Действия И перед ИЛИ
При выполнении логических операций на языке STL часто возникает необходимость изменить последовательность операций. Для изменения последовательности выполнения используются скобки. Правила
выполнения операций в скобках и последовательность выполнения операций полностью аналогична правилам арифметики.
При определении порядка выполнения операций надо помнить,
что считается, что логическое ИЛИ – логическое сложение «+», логическое И – логическое умножение «».
Для выполнения скобочных операций на языке STL используются
операторы со скобками А(, AN(, ON(, О(, Х(, XN(, а окончание скобочной
операции всегда заканчивается закрывающейся скобкой.
Например, на рис. 50 изображен листинг программы на STL, реализующий логический цепочку. Там же приведена логическая функция.
КН1
КН4
КН2
L
A(
O
O
)
A(
ON
КН3
а)
а
(KH1+KH4) ×(KH2+KH3)=L
б
б)
в)
KH1
KH4
KH2
ON
KH3
)
=
L
в
Рис. 50. Представление релейной схемы на языке STL с использованием
скобочных операций: а – релейная цепочка на LAD;
б – программа на STL; в – выражение логической функции
83
В приведенном примере сначала выполняется операция в первой
скобке, затем выполняется операция во второй скобке, а затем полученные результаты логически объединяются по схеме логического И (логическое умножение).
Сохранение промежуточных результатов, выполняемых в скобках,
а также сохранение вида логической операции, открывшей скобку, происходит в наборе специальных регистров, который называется скобочным стеком.
Скобочный стек содержит восемь последовательно расположенных регистров, каждый регистр имеет структуру, показанную на рис. 51.
27
26
25
24
23
0
0
BR RLO OR
22
21
20
Код функции
Рис. 51. Структура регистра (записи) скобочного стека
Скобочный стек работает по принципу «первым вошел – последним вышел», то есть операция открытия скобки, выполненная первой в
списке операторов, должна закончиться самой последней.
Глубина скобочного стека определяет количество вложенных скобок и составляет не более восьми.
Существуют ситуации, когда применение скобок не обязательно, а
выполнение выражения производится строго в соответствии с порядком выполнения операций. Примером такого выражения является релейная схема
на языке LAD, представленная на рис. 52, а. Логическое выражение, показанное на рис. 52, б, используется без скобок, так как операция логического
умножения всегда выполняется перед операцией логического сложения.
КН1
КН3
КН5
КН2
L
КН4
КН6
аа)
KH1 ×KH2 + KH3 ×KH4 + KH5 ×KH6 = L
А
АN
О
АN
KH1
KH2
АN
О
А
А
=
KH4
KH5
KH6
L
вв)
бб)
Рис. 52. Использования правила «И перед ИЛИ»
84
KH3
Для реализации такой операции на языке STL допускается использование операции логического ИЛИ «О» без операнда, как показано на
рис. 52, в.
Когда при выполнении программы процессор встречает такую
операцию, значение RLO переписываются в бит OR слова состояния
(см. раздел 3.2). Если бит OR равняется логической, то дальнейшее выполнение программы не приведет к его изменению, поэтому выполнение
текущей схемы до операции вывода прекращается, а выходной сигнал
релейной схемы будет равен логической «1».
3.4. Создание проекта в пакете Simatic Manager
3.4.1. Последовательность операций создания нового проекта
Создание нового проекта с использованием пакета утилит Simatic
Manager предполагает следующую последовательность шагов:
1. Запустить Simatic Manager.
2. Используя утилиту создания нового проекта, создать проект:
выбрать тип используемого CPU, тип организационного блока и язык
программирования и задать имя проекта.
3. Открыть созданный проект, выбрать в структуре проекта аппаратную часть, открыть утилиту конфигурирования и сконфигурировать
аппаратную часть станции.
4. Открыть таблицу символов и задать символические имена.
5. Выбрать или создать программный блок, открыть утилиту редактора языка STEP 7, произвести требуемое программирование.
6. Загрузить проект в контроллер и при необходимости протестировать его работу в режиме мониторинга.
Данная последовательность шагов по созданию рабочего проекта
не является жестко фиксированной. Может быть изменена последовательность проведения некоторых шагов, а при необходимости добавлены
и другие дополнительные шаги.
При выполнении лабораторной работы будем придерживаться
данной последовательности с обязательным выполнением каждого шага.
3.4.2. Порядок создания проекта
Рассмотрим порядок создания проекта. Программная часть проекта должна включать выполнение логической операции в соответствии с
релейной схемой, представленной на рис. 53.
85
«Вх1»
I1.0
«Вх3»
I1.2
«Вых1»
Q1.0
«Вх2»
I1.1
Рис. 53. Пример логической схемы на языке LAD:
Вых1 – выходной дискретный сигнал контроллера;
Вх1, Вх2, Вх3 – входные дискретные сигналы контроллера
3.4.3. Запуск Simatic Manager и создание нового проекта
Запуск Simatic Manager осуществляется из главного меню или с
помощью ярлыка, расположенного на рабочем столе. На рис. 54 показан
вид окна программы и метод запуска Simatic Manager.
Рис. 54. Запуск Simatic Manager
Для создания нового проекта в пункте меню <File> выберите команду <’New Project’ Wizard…>, которая запускает мастер создания
нового проекта. Создание проекта с помощью мастера состоит из четырех шагов.
Вид окон на каждом шаге показан на рис. 55. Там же показан выбор элементов проекта.
86
Рис. 55. Шаги создания проекта
На первом шаге предполагается рассмотреть структуру будущего
проекта (команда “Preview>>”). На втором шаге выбирается тип процессора, установленного в слот контроллера. В примере (см. рис. 55) выбирается CPU 412-2DP. На третьем шаге выбирается вид представления
логической программы: выбирается LAD. На четвертом шаге вводится
имя проекта. В качестве имени вводится номер группы и номер варианта
(например, “АМ02-15“).
После нажатия на кнопку “Finish“ создается проект и происходит
его запись на диск. Вид окна созданного проекта показан на рис. 56.
Рис. 56. Вид окна и структуры проекта
87
Окно проекта делится на три части. В левой части показана иерархическая структура проекта, в правой части – содержимое каждого элемента этой структуры. В заголовке окна показывается имя проекта и физическое расположение его на диске.
3.4.4. Конфигурирование аппаратной части
Для открытия утилиты конфигурирования аппаратной части необходимо в структуре проекта выбрать элемент “Hardware” (на рис. 56
показан выбор этого элемента) и открыть его. После этого происходит
запуск утилиты конфигурирования HW Config. Вид окна утилиты показан на рис. 57.
Окно разделено на три части. В верхней части показаны стойки
станции. Так как стойка одна и она центральная, то в верхней части
изображено только одно окно стойки, которое содержит выбранный
процессор.
В нижней части окна показан состав выбранной стойки, тип и позиция модулей. Кроме того, указан номер модуля (“Order number”),
версия (“Firmware”), адреса модуля в стойке.
Рис. 57. Вид окна утилиты конфигурирования станции
Сбоку (слева или справа) расположено окно каталога, в котором в
иерархическом виде по типам расположены модули семейства Simatic.
Для конфигурирования стойки необходимо выбрать нужный модуль из каталога, сверить его номер из каталога с номером, указанным
на самом модуле (в нижней части каталога), и, используя процедуру
«перетаскивания» с помощью указателя мыши, расположить его в тре88
буемом слоте. На рис. 57 показан пример конфигурирования блока питания контролера.
При конфигурировании аппаратуры появляются подсказки: зеленым цветом обозначаются слоты, в которые выбранный модуль может
быть установлен. Если в выбранный слот установить модуль нельзя, то
появляется сообщение об ошибке.
После полного конфигурирования аппаратной части требуется
провести проверку на непротиворечивость, путем вызова команды Station → Consistency Check. Если ошибок нет, требуется сохранить проект
и подготовить данные по конфигурированию аппаратной части контроллера к загрузке (Station → Save and Compile).
Проверить, что данные конфигурации проекта готовы к загрузке
можно путем просмотра ветви проекта “Blocks”. В этом разделе после компиляции командой «Save and Compile» появляется элемент “System Data”.
После создания конфигурации необходимо произвести загрузку
конфигурационной таблицы в контроллер командой «Download». Контроллер перед этим должен быть обнулен.
Процесс обнуления контроллера производится посредством выполнения следующей последовательности действий с переключателем
режимов процессора:
 из режима STOP перевести процессор в режим MRES и удерживать переключатель режима в этом положении в течение такого времени,
пока светодиод STOP на лицевой панели процессора не мигнет два раза;
 перевести переключатель режима в режим STOP и сразу (без задержки) перевести переключатель в режим MRES;
 если действия были выполнены правильно, то светодиод STOP
начнет мигать с частотой 2 Гц, а светодиод EXTD замигает (в некоторых
типах процессоров мигнет один раз);
 если этого не произошло, то действия по сбросу повторяются
заново.
3.4.5. Заполнение таблицы символов
Для установки символьных обозначений реальным адресам процессора используется таблица символов. Установка символических имен
может производиться непосредственно из утилиты конфигурирования
или путем запуска утилиты редактирования символических имен, элемент которой находится в ветви S7 Program. Для заполнения символьной
таблицы в сконфигурированном проекте для каждого модуля вызывается
команда редактирования символических имен “Edit-Symbols…”
Окно представляет собой таблицу, в которой для каждого адреса указывается символьное имя и тип. Для логических типов указывается “BOOL”.
После сохранения проекта можно провести проверку путем вызова
редактора символических имен из ветви проекта S7 PROGRAM.
89
Вид окна редактора символьных имен показан на рис. 58. Также
для более полного предоставления информации в поле “Comment” можно указать комментарий к символьному имени или адресу.
Рис. 58. Вид окна редактора символических имен
с именами переменных проекта
3.4.6. Редактирование программой части проекта
Основная циклическая программа располагается в организационном блоке OB1, расположенном в ветви Blocks. Открытие этого блока
приведет к запуску утилиты редактора программы.
Вид окна утилиты редактора программы при редактировании языка S7 LAD показан на рис. 59.
Рис. 59. Вид окна редактора программ
90
Общее окно программы разбито на четыре части. Центральная
часть содержит графические элементы самой программы управления
(Network).
Верхняя часть – заголовок блока. В нем указываются временные и
локальные переменные блока. Нижняя часть окна предназначена для вывода ошибок и предупреждений. Слева (в некоторых случаях справа)
располагается каталог графических элементов языка, разделенных по
категориям. Установка элемента языка в Network происходит «перетаскиванием» из каталога с помощью указателя мыши. В качестве дополнительной информации в программе можно указать комментарии к каждому блоку и по всей программе в целом. После установки всех элементов
программы необходимо сохранить блок ОВ1.
3.4.7. Загрузка и отладка проекта
Загрузка проекта в контроллер осуществляется командой «Download», расположенной в пункте меню PLC. Загрузка должна производится только тогда, когда процессор находится в режиме STOP.
После окончания загрузки для запуска программы необходимо перевести процессор в состояние RUN.
Для визуального просмотра хода выполнения операций в редакторе
программ можно включить режим “Monitor” из пункта меню “Debug”. В
этом случае производится оперативный обмен данными между Simatic
Manager и областью рабочей памяти контроллера. Наличие логической
«1» на релейном элементе и протекание тока обозначается в редакторе
сплошной линией, логический «0», или отсутствие тока, обозначается
штриховой линией. Вид окна редактора программ при включенном режиме
мониторинга показан на рис. 60. Состояние входных сигналов Вх1= «1»,
Вх2= «0», Вх3= «1». Выходной сигнал схемы Вых1= «0».
Вторым средством контроля переменных программы является
таблица переменных – VAT. Вызов таблицы из редактора программ
осуществляется командой Monitor/Modify Variables из меню утилиты
– PLC. В таблице переменных, вид которой представлен на рис. 61,
в столбец Address или Symbol заносят адрес или символическое имя
переменной, состояние которой необходимо контролировать, после
чего включают режим мониторинга (команда Variable → monitor).
В полях столбца Status value указывается текущие состояние переменной False – лог «0», True – лог «1».
Другим вариантом отладки программы, в случае если контроллер
отсутствует, является использование специальной программы эмуляции
процессора – PLCSIM. Запуск PLCSIM осуществляется командой Options / Simulate Modules из основного меню Simatic Manager. Вид окна
утилиты эмуляции показан на рис. 62.
91
Рис. 60. Вид окна редактора программ
с включенным режимом мониторинга
Рис. 61. Вид окна таблицы переменных
с включенным режимом мониторинга
Окна, через которые осуществляется ввод данных и контроль выходных сигналов, являются настраиваемыми. Для этого необходимо
92
указать тип памяти, переменные которой необходимо контролировать,
и адрес ячейки. Для изменения адреса элемента памяти необходимо
заменить число, соответствующее старому адресу, на новый адрес.
Например, на рис. 62 показана настройка адреса байтов области памяти
образа процесса.
Рис. 62. Вид окна программы эмуляции модулей контроллера
Для удобства можно использовать и программную модель пульта
имитатора процесса [4], работа с которой приведена в приложении.
Тип контролируемой памяти и открытие дополнительных окон
контроля осуществляется через меню программы PLCSIM (Insert) или с
помощью панели инструментов эмулятора. Режимы работы CPU переключаются в отдельном окне эмулятора.
Для удобства можно настроить окно эмулятора PLCSIM таким образом, чтобы в независимости от его активности окно располагалось всегда поверх всех остальных окон. Это действие осуществляется командой
меню программы эмуляции View/Always On Top.
После загрузки эмулятора все действия по загрузке и мониторингу программы производятся так же, как и при работе с реальным контроллером.
3.5. Адресация переменных в областях системной памяти
Разделение системной памяти в микропроцессорном контроллере на
отдельные области (см. рис. 23) позволят использовать каждую область
только для хранения переменных и сигналов определенного типа и, соответственно, вести с этими сигналами только определенные действия.
Сигналы в каждой из областей системной памяти имеют уникальную адресацию. Адрес сигнала начинается с условного обозначения области памяти. Кроме того, в обозначении адреса сигнала указывается и
его размер, то есть сколько элементов памяти требуется для хранения
этого сигнала.
93
3.6. Работа с программным пультом-имитатором
Пульт-имитатор предназначен для моделирования работы реального пульта, подключенного к станции. Он может функционировать в
двух основных режимах: в режиме взаимодействия с программой PLCSim (симулятор работы станции, входящий в пакет приложений
SIMATIC) и в режиме работы со специальной платой ввода-вывода данных, установленной в PC и подключенной к сигнальным модулям контроллера. Режим работы выбирается в меню «Соединение» ® «Тип соединения». Внешний вид пульта имитатора показан на рис. 63.
Рис. 63. Вид окна программы «Пульт-имитатор»
Рабочая область пульта содержит блоки «Дискретные входы», «Дискретные выходы», два числовых задатчика, два числовых индикатора и раздел работы с аналоговыми величинами. Ненужные в настоящий момент блоки можно отключить через меню «Вид» ® «Вкл./Выкл. панели».
Блок «Дискретные входы» содержит шестнадцать двухпозиционных кнопок с фиксацией. Кнопки объединены в две группы и над каждой
из групп указан номер байта области дискретных входов, с которым осу94
ществляется работа. Данный адрес можно изменить, установив курсор
в соответствующей области, набрав новый адрес и нажав Enter. Адреса, указанные рядом с кнопками, меняются автоматически при изменении адреса соответствующего байта.
Блок «Дискретные выходы» содержит шестнадцать ламп, объединенных в две группы. Адресация ламп и ее изменения осуществляются
способом, аналогичным дискретным входам.
Для каждого сигнала из блоков «Дискретные входы», «Дискретные
выходы» предусмотрена легенда, позволяющая указать предназначение
сигнала. Легенда сохраняется вплоть до последующих изменений.
Пульт содержит два числовых задатчика (см. рис. 63 адреса IW4 и
IW6), моделирующих работу реальных задатчиков, подключенных к дискретным входам контроллера. Для изменения текущего значения предусмотрены восемь кнопок, расположенных над и под цифровым индикатором.
Для работы с дискретными выходами предусмотрены два числовых индикатора (см. рис. 63 адреса QW4 и QW6).
Адреса областей дискретных входов-выходов, с которыми работают числовые задатчики и индикаторы, можно изменять аналогично адресам в блоках «Дискретные входы», «Дискретные выходы».
Пульт предусматривает возможность работы с двумя аналоговыми
входами и двумя выходами. Текущее значение выбранного аналогового
сигнала отображается на стрелочном индикаторе. Для выбора отображаемого сигнала предназначен переключатель «AI1-AI2-AO1-AO2», где
AI1 – первый аналоговый вход, AI2 – второй аналоговый вход, AO1 –
первый аналоговый выход, AO2 – второй аналоговый выход.
Для установки значений аналоговых входов предназначены две
ручки, расположенные справа и слева от переключателя. Поворот ручки
по часовой стрелке увеличивает значение сигнала, наоборот – соответственно, уменьшает.
Если работа ведется с симулятором «PLC-Sim», то передавать реальные аналоговые величины нет возможности. В таком случае следует
зайти в раздел программы «Опции» ® «Настройка AI/AO» и задать
адреса области дискретных входов-выходов, которые будут использоваться для моделирования работы c аналоговыми величинами.
3.6.1. Порядок работы совместно с симулятором «PLC-Sim»
При работе с симулятором «PLC-Sim» пульт и сам симулятор могут находиться на разных PC, объединенных в сеть. Если это так, то для
организации взаимосвязи между ними следует использовать дополнительно специальную программу «I/O Server». Для случая, когда симулятор «PLC-Sim» и пульт-имитатор находятся на одном PC, порядок работы рассмотрен ниже.
95
Порядок работы для случая, когда и симулятор PLC-Sim
и пульт-имитатор находятся на одном PC
Следует придерживаться следующей последовательности:
1. Запустить Simatic Manager.
2. Запустить симулятор PLC-Sim.
3. Запустить пульт-имитатор.
4. Установить связь между симулятором и пультом-имитатором
путем нажатия кнопки «Connect local».
5. Загрузить проект в симулятор PLC-Sim.
6. Перевести симулятор PLC-Sim в режим работы переключателем на пульте или в самом PLC-Sim.
7. Выполнить задание по лабораторной работе, контролируя состояние входов-выходов на пульте.
8. Завершить работу пульта-имитатора.
9. Завершить работу PLC-Sim и т.д.
Порядок работы для случая, когда симулятор PLC-Sim
и пульт-имитатор соединены по сети через программу “I/O Server”
Программа «I/O Server» является промежуточным звеном при обмене данными между удаленной моделью процесса или «пультомимитатором» и PLC-Sim. «I/O Server» должен быть запущен на том же
PC, где расположен PLC-Sim. Внешний вид программы «I/O Server» показан на рис. 64.
Рис. 64. Вид программы «I/O Server»
Обмен данными по сети между «I/O Server» и удаленной моделью
ведется по протоколу UDP. При настройке параметров соединения «I/O
Server» следует указать IP-адрес удаленной модели (IP-адрес пульта),
порт, используемый моделью для приема данных (порт пульта), а также
96
порт, используемый «I/O Server» для передачи данных (порт сервера).
После изменения параметров следует нажать кнопку “set”.
Далее необходимо сконфигурировать параметры соединения модели (пульта). Для этого в главном меню программы «Пульт-имитатор» в
разделе «Опции» выбрать параметр «Настройка UDP». Необходимо указать IP-адрес сервера и порты. Порты должны быть те же, что и заданные
при настройке сервера.
Программы следует запускать в следующем порядке: PLC-Sim,
«I/O Server», модель (пульт-имитатор). После запуска «I/O Server» нужно нажать кнопку “connect” (см. рис. 64). Для подключения пультаимитатора нужно нажать кнопку «connect UDP» (см. рис. 64).
Программа «I/O Server» передает в PLC-Sim дискретные входные
(I) параметры, полученные от модели (пульта-имитатора), с любыми адресами. Однако обратная передача дискретных выходов (Q) осуществляется только для специально заданных в «I/O Server» адресов. Для добавления нового выходного адреса в графе «адрес» (см. рис. 52) нужно указать числом номер первого байта считываемой с PLC-Sim переменной и
нажать кнопку «add». Можно считывать переменные размером BYTE и
WORD. Если переменная имеет тип WORD, то перед нажатием на «add»
следует установить параметр «W». Для удаления адреса следует в списке
выбрать нужную строку и нажать кнопку «del». В списке могут повторяться одинаковые адреса, например “0 – byte” и “0 – word”.
При работе с пультом-имитатором в сетевом режиме порядок работы в основном не отличается от порядка работы в локальном режиме.
Отличия заключаются только в моменте запуска и настройки «I/O
Server». Настройку «I/O Server» следует проводить после загрузки симулятора PLC-Sim (то есть до запуска пульта-имитатора), а завершение работы после завершения работы пульта-имитатора.
3.7. Задание к самостоятельной работе
Самостоятельная работа №1
Конфигурирование станции
Задание. Для заданного варианта создать проект для реализации
логической функции. После загрузки проекта в контроллер проверить
правильность выполнения контроллером вычислений путем сравнения
результата выполнения с таблицей истинности заданной функции.
Порядок выполнения работы:
1. Для заданной релейной схемы составить таблицу истинности.
2. Создать проект для заданной станции с именем «Номер группы
– номер варианта» (например, АМ03_6).
3. Для станции, на которой осуществляется выполнение проекта,
произвести конфигурирование модулей. Для пустых модулей, расположенных в стойке контроллера, слоты должны оставаться пропущенными.
97
4. Составить логический блок вычисления заданной функции и
заполнить Network в организационном блоке ОВ1.
5. Используя реальный контроллер или программу симуляции
PLCSIM, произвести сброс памяти контроллера. Загрузить проект в контроллер в режиме STOP и перевести контроллер в режим RUN и проверить правильность конфигурирования модулей по ламповым индикаторам лицевой панели CPU.
6. Перевести проект в режим мониторинга и, задавая кнопками
пульта (или эмулятора) входные сигналы в соответствии с таблицей истинности, контролировать выходные сигналы. При обнаружении несоответствия произвести поиск ошибок и их устранение.
7. По выполнении самостоятельной работы подготовить отчет,
который должен содержать:
7.1.Заданную вариантом релейную схему и ее таблицу истинности.
7.2. Таблицу конфигурирования аппаратуры станции с указанием
адресации каждого модуля и таблицу символических имен и соответствующие им адреса ячеек памяти.
7.3. Результаты проверки работы релейной схемы в соответствии с
таблицей истинности.
Вариант 1
«Вх1»
I1.0
«Вых1»
Q1.0
«Вх2»
I1.1
«Вх4»
I1.3
«Вх3»
I1.2
98
Вариант 2
«Вх1»
I1.0
«Вх2»
I1.1
«Вх3»
I1.2
«Вых1»
Q1.0
«Вх4»
I1.3
Вариант 3
«Вх1»
I1.0
«Вых1»
Q1.0
«Вх2»
I1.1
«Вх4»
I1.3
«Вх3»
I1.2
99
Вариант 4
«Вх1»
I1.0
«Вх2»
I1.1
«Вх3»
I1.2
«Вых1»
Q1.0
«Вх4»
I1.3
Вариант 5
«Вх1»
I1.0
«Вх3»
I1.2
«Вх2»
I1.1
«Вх4»
I1.3
«Вых1»
Q1.0
100
Вариант 6
«Вх1»
I1.0
«Вх2»
I1.1
«Вх3»
I1.2
«Вх4»
I1.3
«Вых1»
Q1.0
3.8. Вопросы для самостоятельной подготовки
1. Поясните последовательность шагов при создании проекта интегрированной системы с использованием контроллера Simatic S7-300/400.
2. Какие языки программирования реализуются в базовом пакете
Simatic Manager?
3. Как определить адреса ввода-вывода для сигнальных модулей?
Как изменить адресацию сигнальных модулей в проекте?
4. Поясните назначение скобочного стека. В каких случаях реализация логических операций на языке STL записываются без скобок?
5. Поясните назначение бита RLO «слово состояния». Приведите
работу этого бита на примере релейной схемы, реализованной в самостоятельной работе №1.
6. Каким образом определяется начало новой релейной цепочки?
Какие биты «слово состояния» используются?
7. Как реализовывается логическая операция «Исключающее
ИЛИ» на языках LAD и STL?
8. Какое назначение символических имен переменных? С помощью каких средств задаются символические имена переменных?
101
9. Какое назначение имеет блок OB1? Поясните принцип выполнения циклического блока OB1.
10. Поясните последовательность действий при конфигурировании аппаратной части логического контроллера?
11. Каким образом контролируется состояние переменных в процессе выполнения программы?
12. Что означает понятие действия «форсирование» переменных?
В каких случаях применяется «форсирование» переменных?
13. Поясните назначение областей системной памяти контроллера?
Какие области системной памяти используются при реализации основных
логических операций и в каком качестве используются эти области?
14. Поясните порядок загрузки проекта в контроллер, запуска и
остановки программы.
15. Каким образом и для чего используются симулятор контроллера
PLCSIM? Поясните последовательность запуска и настройки симулятора.
16. Поясните работу правила «И перед ИЛИ».
17. В каких состояниях может находиться процессорный модуль
и каким образом определяются эти состояния по ламповым индикаторам?
18. Каким образом и с помощью каких программных средств
можно проконтролировать характеристики процессорного модуля (объем
загрузочной и рабочей памяти, организационные блоки и т.д.)?
4. ПРОГРАММИРОВАНИЕ ЭЛЕМЕНТАРНЫХ ЛОГИЧЕСКИХ
ОПЕРАЦИЙ НА ЯЗЫКЕ ТЕХНОЛОГИЧЕСКОГО
ПРОГРАММИРОВАНИЯ STEP 7
К элементарным логическим операциям относят отрицание (НЕ),
логическое сложение (ИЛИ) и логическое умножение (И). Все остальные
логические операции реализовываются как комбинация этих основных.
Схемы, реализующие логические операции комбинацией основных, называются комбинационными или комбинаторными.
Комбинаторная переключательная схема предназначена для преобразования входной комбинации дискретных (двоичных) сигналов в
однозначно определенную выходную комбинацию.
Для синтеза комбинаторных переключательных схем используют
различные методы. Цель синтеза состоит в том, чтобы составить из соответствующих двоичных элементов оптимальную (с определенной точки
зрения) переключательную схему, которая реализовывала бы заранее
заданное соотношение между входами и выходами.
Так как выходные сигналы комбинаторной схемы непосредственно зависят от входных сигналов, они могут быть представлены переключательными формулами, которые непосредственно дают всю информацию о поведении системы.
102
Для исследования операций и формирования релейных схем распространение получили таблицы, в которых указывается все состояние
входных сигналов и соответствующие этим состояния – состояние выходных сигналов. Такие таблицы получили название таблиц истинности.
Для релейных схем, реализующих основные логические операции
(см. рис. 44) таблицы истинности приведены на рис. 65.
Логическое ИЛИ
Логическое
исключающее ИЛИ
Логическое И
Логическое НЕ
KH1
KH2
L
KH1
KH2
L
KH1
KH2
L
KH
L
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
Рис. 65. Таблицы истинности для релейных схем,
реализующих основные логические операции
Наиболее часто таблицы истинности применяют для описания не
очень сложных схем, в которых количество входных комбинаций ограничивается несколькими десятками. В таблице истинности в первых
столбцах обычно содержатся кодовые слова, соответствующие комбинациям входных переменных, расположенных в порядке роста десятичных
эквивалентов. Наиболее просто это делается простановкой отдельных
битов в соответствующих столбцах. Для каждого двоичного выходного
сигнала предусмотрены свои столбцы, в которых для каждой комбинации
входных сигналов содержатся значения 0 или 1 или, если не требуется
определенного значения, знаки  или d (don’t cure – безразлично).
Как правило, в практике разработки систем управления с релейными схемами требуется по таблице истинности разработать релейную
схему. Существует несколько методов подобных действий. Однако все
эти методы направлены на обеспечение минимизации полученной релейной схемы. Так как в нашем случае релейная схема реализуется программно, то минимизация элементов релейной схемы является хоть и желательной, но не обязательной операцией. Кроме того, некоторые релейные
схемы специально не подвергают сокращениям, для того чтобы не терять
представления по выполняемым технологическим действиям, которые
выполняет эта релейная схема.
Поэтому для реализации релейной схемы допускается пользоваться упрощенной методикой её составления. Суть этой методики продемонстрируем на примере реализации релейной схемы, исходная таблица
истинности которой представлена на рис. 66, а.
103
X1
X2
X3
Y
X1
X2
X3
Y
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
а)
а
X1
X2
б
б)
X3
X1
X2
X3
X1
X2
X3
X1
X2
X3
Y
Y
1
1
г
г)
1
в)
в
X1
X2
X2
X3
Y
X3
д
д)
Рис. 66. Шаги реализации релейной схемы по таблице истинности:
а – исходная таблица истинности; б – сокращение исходной таблицы
истинности; в – замена сигналов релейной таблицы истинности
на контакты релейной схемы; г – первоначальная релейная схема;
д – возможные сокращения релейной схемы
104
4.1. Алгоритм формирования релейной схемы
1. Из исходной таблицы истинности для одного выхода вычеркиваются строки, которые приводят к результату «0». Получается сокращенная таблица истинности, все состояния одного выхода которой равны
«1». Пример сокращенной таблицы истинности приведен на рис. 66, б.
2. Каждый вход сокращенной таблицы истинности представляем
контактом реле, причем если состояние входа представлено в таблице значением «1», то контакт реле нормально-разомкнутый, если состояние входа
представлено как «0», то контакт нормально-замкнутый (рис. 66, в).
3. Контакты, расположенные в одной строке таблицы, соединяются последовательно, а последовательно соединенные цепочки – параллельно, как показано на рис. 66, г. Полученная релейная схема уже может
быть реализована на контроллере и её работа будет в точности соответствовать исходной таблице истинности.
4. По возможности можно сократить полученную релейную схему
по следующему правилу: если в двух параллельных цепочках все контакты, кроме одного, идентичны, то этот контакт удаляется, а параллельные
цепочки заменяются одной (рис. 66, д).
4.2. Особенности реализации комбинаторной
переключательной схемы на языке LAD
Для реализации комбинаторной переключательной схемы на языке
релейной логики следует придерживаться следующих правил:
 Каждая переключательная функция, реализующая один выходной сигнал переключательной схемы, помещается в отдельном блоке
(Network).
 Каждая дизъюнкция (логическое сложение) образует параллельную цепочку из контактов реле.
 Каждая конъюнкция образует цепочку последовательно соединенных контактов реле.
 Входной сигнал в переключательной функции, к которому применена операция отрицания, представляется нормально-замкнутым контактом, иначе – нормально-разомкнутым.
Пример реализации логического блока на языке LAD в среде
SIMATIC MANAGER при условии, что адреса входных сигналов
Х1=I0.0; Х2=I0.1; Х3=I0.2, а адрес выходного сигнала Y=Q0.0, приведен
на рис. 67.
105
Рис. 67. Реализованный логический блок на языке LAD
в среде SIMATIC MANAGER
4.3. Использование битов маркерной памяти
при реализации комбинаторных схем
Область маркерной памяти расположена в системной области памяти процессора и доступна как для записи, так и для чтения. Элементы
маркерной памяти предназначены для хранения промежуточных результатов вычислений и использования этих результатов в дальнейшем.
Результат вычисления, выведенный на катушку маркерной памяти,
помещается в нее сразу и становится доступным для считывания уже в
следующей строке. В релейной логике STEP 7 биты маркерной памяти
используются одновременно для вывода результата на катушки реле и
для ввода значений с контактов этих катушек.
Основное назначение битов маркерной памяти:
 сохранять промежуточный результат при разбиении длинных
релейных цепочек или в некоторых командах;
 организовывать обратные связи или проверку условий в тактируемых схемах (в многотактных схемах).
Например, на рис. 68 показан вариант сохранения и использования
промежуточного результата при разбиении длинной релейной цепочки.
106
I0.1
I0.2
I0.3
Q0.0
I0.1
I0.2
I0.3
I0.1
M0.0
M0.1
I0.1
M0.0
I0.2
Q0.0
I0.2
M0.1
I0.3
I0.3
а
б
а) Разбиение длинной релейной цепочки
б) на короткие цепочки:
Рис. 68.
а – исходная схема; б – после разбиения на три цепочки
Разбиение релейной схемы на ряд более коротких схем улучшает
читабельность схемы и её лучшее понимание.
Вторым назначением маркерных битов в релейных схемах служит
организация обратной связи для хранения результата.
Например, на рис. 69 приведен пример, в котором релейная схема
реализует запоминание нажатия на кнопку «КН1». Сброс памяти осуществляется при нажатии на кнопку «КН2». Вывод результата осуществляется на катушку реле LH.
При нажатии на кнопку «КН1» катушка реле М0.0 принимает единичное значение, а контакт этой катушки через замкнутый контакт кнопки «КН1» «подхватывает» свою же катушку и не дает ей обесточиться,
даже если кнопка «КН1» отпускается. При нажатии на кнопку «КН2»
цепь подхвата разрывается, и реле выключается.
M0.0
“KH1”
“KH2”
M0.0
A
O
A
AN
=
“KH1”
M0.0
“KH2”
M0.0
A
=
M0.0
”LH”
LH
M0.0
а
бб)
а)
Рис. 69. Релейная схема для запоминания нажатий на кнопку «КН1»:
а – на языке LAD; б – на языке STL
Возможность реализации обратных связей позволяет реализовывать релейные схемы включения оборудования в строго определенной
107
последовательности. Каждый следующий механизм оборудования может быть включен только после отработки действий предыдущим и
формирования требуемых условий включения.
Рассмотрим пример разработки программы на языке LAD для многотактной схемы по заданной таблице истинности. Таблица истинности
для последовательной реализации состояний приведена в табл. 11.
Таблица 11
Таблица истинности для примера
последовательной реализации состояний
Номер
состояния
1
2
3
4
К1
К2
К3
L1
L2
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
Так как выходных сигнала два (L1 и L2), то система будет содержать два блока реализации этих состояний. Для реализации состояния
выходного сигнала L1 релейная схема приведена на рис. 70.
«К1»
«К2»
«К3»
«К1»
«К2»
«К3»
М0.0
«К1»
«К3»
М0.0
б б)
а)а
Рис. 70. Схема реализации состояния сигнала L1:
а – полная схема; б – упрощённая схема
Релейная схема реализации состояния сигнала L2 приведена на
рис. 71.
«К1»
«К2»
«К3»
«К1»
«К2»
«К3»
М0.1
«К2»
аа)
«К3»
бб)
Рис. 71. Схема реализации состояния сигнала L2:
а – полная схема; б – упрощённая схема
108
М0.1
Промежуточные результаты состояний L1 и L2 были сохранены
соответственно в маркерной области памяти M0.0 и М0.1. Реализация
последовательности шагов по заданным входным сигналам приведена на
рис. 72.
М0.0
М0.1
М1.1
М1.0
а
М0.0
М0.1
М1.0
М1.0
М1.1
М1.2
М0.0
М0.1
М1.1
М1.0
М1.2
М1.3
М0.0
М1.0
М1.0
М0.1
М1.2
а)
М1.1
б
б)
М1.2
M0.0
M0.1
A
A
A
O
AN
A
AN
=
M0.0
M0.1
M1.0
в
в)
A
AN
A
O
AN
A
AN
=
г
г)
AN
AN
A
O
AN
A
=
М1.3
М1.3
AN
A
O
A
AN
=
M1.0
M1.1
M1.0
M1.0
M1.1
M1.2
M1.1
M0.0
M0.1
M1.1
M1.0
M1.2
M1.3
M1.2
M0.0
M0.1
M1.2
M1.0
M1.3
M1.3
Рис. 72. Реализация последовательности включения шагов:
схемы а–г соответственно для шагов 1–4
Так как включение первого шага разрешено всегда, то маркер М1.0
взводится, когда выполняется первая комбинация, то есть L1=0, L2=1,
после чего маркер М1.0 встает на самоподхват (рис. 72, а).
Условие второго шага (рис. 72, б) формируется тогда, когда был
выполнен первый (проверка маркера М1.0) и сформировалась входная
109
комбинация, при которой L1=1, L2=1. Формирование маркера выполнения второго шага (то есть М1.1=1) сбрасывает первый шаг (М1.0=0), и
формирует цепочку самоподхвата.
Условие третьего шага (рис. 72, в) формируется в случае формирования входной комбинации L1=1 и L2=0 и при включенном втором шаге.
Установленный в «1» маркер М1.2 разрывает цепь обратной связи второго шага и устанавливает цепь самоподхвата.
По аналогии, цепь четвертого шага формируется при L1=0 и L2=0
и наличии условия выполнения третьего шага. Реализация четвертого
шага М1.3 разрывает цепь самоподхвата в третьем шаге и устанавливает
в четвертом (рис. 72, г).
Так как первый шаг по условию может выполняться всегда в любой момент, то в обратные связи (цепи самоподхвата) всех шагов введено
условие сброса шага, если формируется первый шаг.
Таким образом, задача последовательной реализации состояний
свелась к комбинаторной задаче, где входными сигналами являются промежуточные маркеры реализации состояний, а выходными сигналами –
заданная последовательность без учета необходимости последовательной
реализации. Таблица истинности для такой задачи будет выглядеть следующим образом (табл. 12).
Таблица 12
Таблица истинности получившейся комбинаторной задачи
M1.0
1
0
0
0
M1.1
0
1
0
0
M1.2
0
0
1
0
M1.3
0
0
0
1
L1
0
1
1
0
L2
1
1
0
0
Релейные схемы, реализующие полученную таблицу истинности,
приведены на рис. 73.
M1.1
L1
M1.0
L2
M1.1
M1.2
Рис. 73. Релейная схема реализации выходных сигналов
4.4. Катушки с памятью. Триггеры
В отличие от обычной катушки реле катушка с памятью может сохранять свое состояние и при отключении сигнала на её входе. Катушка с
110
памятью имеет два вида входов: вход установки (S – set) и вход сброса (R
– reset). Состояние катушки определяется тем, на какой вход был подан
сигнал. При подаче сигнала на вход установки (S) бит памяти, определяющий состояние катушки, устанавливается в единицу, при подаче сигнала на вход сброса (R) происходит его сброс. Изменение состояния выходного бита происходит по переднему фронту входного сигнала. В качестве выходного бита памяти могут быть использованы как биты маркерной памяти, так и памяти выходного образа процесса.
На рис. 74, а показана релейная схема использования катушки с
памятью.
I0.0
Q0.0
S
I0.1
Q0.0
R
а
A
S
I0.0
Q0.0
A
R
I0.1
Q0.0
в
I0.0
t
I0.1
t
Q0.0
t
б
Рис. 74. Релейная схема (a), листинг на языке STL (в)
и временная диаграмма работы катушек с памятью (б)
В качестве входных сигналов используются сигналы с модуля дискретного ввода с адресами I0.0 и I0.1, а в качестве выходного сигнала
катушки – сигнал на модуль дискретного вывода Q0.0. На рис. 74, б показана временная диаграмма включения катушки. На рис. 74, в листинг
программы реализации катушки с памятью на языке STL.
Из диаграммы видно, что по переднему фронту сигнала I0.0 бит
Q0.0 устанавливается в 1 (взводится), а по переднему фронту сигнала I0.1
111
устанавливается в 0 (сбрасывается). При одновременной подаче сигналов
на вход сброса и вход установки выходной сигнал катушки устанавливается в состояние логического нуля, то есть приоритетной является команда сброса.
Основное назначение катушек с памятью – реализовывать комбинаторные схемы, состояние которых изменяется в момент изменения состояния входной цепочки. Причем в схеме должны быть реализованы как
минимум две цепочки: одна – на включение, а другая – на отключение.
Типовым примером использования катушек с памятью является управление каким-либо механизмом перемещения.
Например, на рис. 75 показан механизм перемещения слябов со
склада до рольганга (так называемая слябовая тележка), управление которой происходит по нажатию двух кнопок на посту оператора: кнопка
«вперед» – к рольгангу, кнопка «назад» – на склад.
Пост оператора
Вперед
Назад
Слябы
Рольганг
Склад
KB
CH
CB
KH
Рис. 75. Структурная схема управления механизмом
перемещения слябов – «слябовой тележкой»
Ограничение движения осуществляется путевыми выключателями
(обычно фотоэлектрическими или ультразвуковыми): «стоп вперед – СВ»
и «стоп назад – СН». Их кратковременное замыкание должно приводить
к отключению сигнала управления, подающегося на электродвигатель
тележки, и тележка, пройдя по инерции еще какой-то заранее определенный путь, останавливается. Конечное положение тележки контролируется концевыми «вперед – КВ» и «назад – КН». Наличие пути остановки
(который может составлять от 1 до 3 м) делает использование только
концевых выключателей проблематичным, из-за ограниченного их хода
(обычно от 1 до 15 см).
На рис. 76 показана релейная схема управления механизмом перемещения и листинг программы на языке STL. На рис. 77 приведена часть
временной диаграммы её работы.
112
«Вперед»
«СВ»
«КВ»
Тележка
вперед
A «Вперед»
AN «СВ»
AN «КВ»
S «Тележка вперед»
S
Тележка
вперед
«СВ»
О
O
R
R
«СВ»
«КВ»
«Тележка вперед»
«КВ»
«Назад»
«СН»
«КН»
A «Назад»
AN «СН»
AN «КН»
S «Тележка назад»
Тележка
назад
О
О
R
S
Тележка
назад
«СН»
«СН»
«КН»
«Тележка назад»
R
«КН»
Рис. 76. Релейная схема и листинг программы
на языке STL программы управления работой тележки
Кнопка
«Вперед»
«СВ»
«КВ»
Команда
«Вперед»
Движение
Торможение
Кнопка
«Назад»
«СН»
«КН»
Движение
Команда
«Назад»
Торможение
Рис. 77. Часть временной диаграммы работы схемы управления
слябовой тележкой
113
Срабатывание путевого выключателя «стоп назад – СН» при движении тележки от склада к рольгангу и «стоп вперед – СВ» при движении от рольганга к складу объясняется прохождением тележки через них
(см. рис. 75). Несмотря на это, включение этих путевых выключателей не
влияет на движение тележки.
Также использование катушек с памятью позволяет реализовывать
заданную последовательность включений механизмов. Например, для
примера реализации многотактной схемы, приведенного в разделе 4.3 на
рис. 72, релейная схема с использованием катушек с памятью выглядит,
как показано на рис. 78.
"К1"
М0.0
"К3"
AN «K1»
A
«K3»
=
M0.0
"К2"
M0.0
AN «K2»
A
«K3»
=
M0.1
М0.1
"К3"
М1.0
M0.1
S
М1.1
R
М1.2
R
AN
A
S
R
R
R
M0.0
M0.1
M1.0
M1.1
M1.2
M1.3
A
A
S
R
M0.0
M0.1
M1.1
M1.0
A
AN
S
R
M0.0
M0.1
M1.2
M1.1
AN
AN
S
R
M0.0
M0.1
M1.3
M1.2
М1.3
R
M0.0
M0.1
M1.0
М1.1
S
М1.0
R
M0.0
M0.1
M1.1
М1.2
б б)
S
М1.1
R
M0.0
M0.1
M1.2
М1.3
S
М1.2
R
а a)
Рис. 78. Релейная схема: а – листинг программы на LAD;
б – реализации последовательного включения шагов на STL
114
4.5. Команды выделения фронта
В некоторых случаях выполнение логической операции (включение
или отключение катушки реле) должно происходить не по установке требуемого состояния входных сигналов, а по факту изменения их состояния.
Момент времени, в который происходит изменение состояния сигнала, называется фронтом сигнала: изменение с 0 на 1 – передний фронт
(или положительный positive); изменение с 1 на 0 – задний фронт (или
отрицательный negative).
Для выделения фронта команды битовой логики содержат специальные катушки: катушка –(Р) – для выделения переднего фронта; катушка –(N) – для выделения заднего. Пример программы выделения переднего и заднего фронтов входного сигнала и временная диаграмма состояния битов показана на рис. 79.
"К1"
М1.0
М0.0
P
"К1"
М1.1
М0.1
N
A
FP
=
«K1»
M0.0
M1.0
A
FN
=
«K1»
M0.1
M1.1
б
аа)
1 2 3 4
12 13 14 15
“K1”
M0.0
M0.1
Время цикла
M1.0
M1.1
в в)
Рис. 79. Пример программы выделения переднего
и заднего фронтов сигнала: а – LAD; б – STL;
в – временная диаграмма состояния используемых битов
115
б)
Из диаграммы работы команд выделения фронта видно, что сигнал
фронта (биты М1.0 и М1.1) формируется на время, равное времени цикла
выполнения программы. Промежуточные маркеры полностью повторяют
состояние входного сигнала, сдвинутого во времени на один цикл выполнения программы.
Рассмотрим алгоритм работы процессора при выделении переднего фронта.
Сначала (обозначен как цикл сканирования 1) состояние входа К1
и маркера фронта М0.0 соответствуют уровню лог. «0». Маркер импульса
М1.0 также сброшен, то есть уровень его сигнала равен лог. «0».
На 2-м цикле сканирования состояние входа К1 изменяется с «0»
на «1». CPU обнаруживает это изменение при сравнении текущего значения RLO с состоянием маркера М0.0. Если К1 равен «1», а маркер М0.0
равен «0», то значение маркера фронта М1.0 устанавливается «1».
На 3-м цикле сканирования маркер М0.0 устанавливается на значение, равное значению входного сигнала К1 в предыдущий цикл сканирования, то есть «1». При сравнении текущего значения RLO с состоянием маркера М0.0 CPU обнаруживает, что они имеют один уровень. Поэтому он устанавливает для маркера фронта М1.0 значение «0».
С 4-го по 12-й цикл сканирования входной сигнал К1 равен «1»,
маркер М0.0 следует за этим сигналом и также равен «1». Значение маркера фронта М1.0 установлено «0».
На 13-м цикле сканирования входной сигнал К1 устанавливается в
«0», а маркер М0.0 содержит предыдущее значение входного сигнала и
равен «1» до 14-го цикла. Хотя значение входного сигнала и маркера М0.0
не равны, команда выделения переднего фронта никак не реагирует на это
изменение. (На такое состояние реагирует команда выделения заднего
фронта). Поэтому значение маркера фронта М0.1 остается равным «1».
На 15-м цикле восстанавливается исходное состояние рассматриваемых битов, и в дальнейшем опять может быть выделен передний фронт.
Так как промежуточные маркеры выделения фронта используются для хранения предыдущего состояния входного сигнала, то для правильного выполнения команды выделения фронта они должны использоваться в программе только один раз.
Основное назначение команд выделения фронта в битовой логике – реализация релейных многотактных схем.
Реализация многотактных схем
Если выходные состояния релейной схемы зависят не только от
входных состояний (как в комбинаторной схеме), но и от предыдущего
состояния релейной схемы, то такую схему называют многотактной.
Обычно работу многотактной схемы представляют в виде таблицы
включений, в которой состояния входных и выходных сигналов отобра116
жаются во времени и разбиваются на такты. Например, на рис. 80 приведена таблица включений релейной схемы с одним входом и одним выходом. Состояние выхода меняется на противоположное на каждом такте
при изменении входного сигнала с лог. «0» на «1».
0
Такт
1
2
3
4
5
6
7
X
Y
Рис. 80. Пример таблицы включений многотактной схемы
Существует несколько методов реализации многотактных схем. Во
всех них предполагается, что в релейной схеме будет использоваться
элемент памяти, в котором происходит запоминание переднего или заднего фронта входного сигнала или их логической комбинации.
Например, для приведенной таблицы включений реализация на
языках LAD и STL приведена на рис. 81.
"Х"
"FRONT"
"PR1"
P
"FRONT"
М0.1
M0.1
R
“PR2”
A
FP
=
«X»
«PR1»
«FRONT»
A
A
R
S
«FRONT»
M0.1
M0.1
«PR2»
A
AN
AN
S
«FRONT»
«PR2»
M0.1
M0.1
A
R
«FRONT»
«PR2»
A
=
M0.1
«Y»
S
"FRONT"
“PR2”
M0.1
М0.1
S
"FRONT"
“PR2”
R
бб)
М0.1
“Y”
аa)
Рис. 81. Реализация заданной таблицы включений
на языках LAD (a) и STL (б)
117
4.6. Задания к самостоятельной работе
Самостоятельная работа №2
Синтез комбинаторной схемы
по заданной таблице истинности
Задание. По заданной таблице истинности реализовать релейную
схему в программируемом контроллере SIMATIC S7 и проверить её работу.
Порядок выполнения работы:
1. Создать проект с именем АМYY_ХХ, где ХХ – номер варианта,
YY – номер группы.
2. По заданной таблице истинности и по переключательной формуле составить схему релейной логики.
3. Произвести конфигурирование аппаратной части проекта (по
варианту из самостоятельной работы №1). Подготовить данные конфигурации к загрузке. Загрузить в контроллер.
4. Заполнить таблицу истинности обозначениями входных и выходных сигналов. Входными и выходными сигналами выбрать соответствующие адреса.
5. Запрограммировать блок OB1, загрузить проект в эмулятор
контроллера PLCSIM.
6. C помощью пульта-имитатора в соответствии с таблицей истинности подать входные сигналы и проконтролировать выходные.
7. Сравнить полученный результат с заданными условиями. В
случае ошибки произвести исправления и повторить проверку.
8. После отладки на эмуляторе загрузить проект в контроллер и
произвести проверку работы релейной схемы с помощью пульта.
9. Подготовить отчет о проделанной работе, сделать выводы. Отчет должен содержать:
9.1. Основные понятия комбинаторной переключательной схемы.
9.2. Разработанную в соответствии с заданием релейную схему на
языке LAD.
9.3. Таблицу выходных сигналов для каждой комбинации входных
сигналов, полученную с помощью пульта-имитатора.
9.4. Выводы по работе, в которых отразить возможность упрощения полученной релейной схемы и исследование упрощенной схемы на
соответствие заданию.
Вариант 1
Х1
1
0
1
1
Х2
0
1
1
0
Х3
Х4
0
1
1
1
0
0
1
1
Остальные
118
Х5
0
0
1
1
Y1
0
1
1
1
0
Y2
1
0
1
0
0
Вариант 2
Х1
1
0
1
0
1
1
1
Х2
Х3
0
0
1
1
1
0
1
0
1
1
0
0
0
1
Остальные
Х4
1
1
1
1
0
0
0
Y1
1
0
1
1
0
0
1
0
Х1
0
0
0
1
1
Х2
Х3
0
1
1
0
1
1
0
0
1
1
Остальные
Y1
1
0
0
1
1
0
Y2
0
1
0
0
1
0
Y2
1
1
0
0
1
1
1
0
Y3
0
1
1
0
0
1
1
0
Вариант 3
Y3
0
0
1
1
0
0
Вариант 4
Х1
1
0
0
1
1
Х2
1
1
0
0
1
Х3
Х4
0
0
1
0
1
1
0
1
1
0
Остальные
Х5
1
0
0
1
0
Y1
1
0
1
0
1
0
Y2
1
1
0
1
1
0
Y2
1
0
0
1
1
1
1
0
Y3
0
1
1
0
1
0
1
0
Y4
0
1
0
1
0
1
1
0
Вариант 5
Х1
0
0
0
1
1
1
1
Х2
Х3
0
1
1
0
1
1
0
0
0
1
1
0
1
1
Остальные
Y1
1
0
1
1
0
0
1
0
119
Y3
0
1
1
0
1
0
Вариант 6
Х1
0
0
1
1
0
Х2
Х3
1
1
0
1
1
0
0
1
1
0
Остальные
Х4
0
1
0
1
1
Y1
0
1
1
0
0
0
Y2
0
0
0
1
1
0
Y3
1
1
0
0
1
0
Самостоятельная работа №3
Разработка программы для управления слябовой тележкой
Задание. Реализовать релейную схему примера управления движением тележки. Проверить правильность работы с помощью пультаимитатора или модели объекта.
Порядок выполнения работы:
1. Модель управления реализует функции имитации динамики
движения тележки. Адреса входных и выходных сигналов системы
управления указаны рядом с обозначениями датчиков и исполнительных
устройств. Вид модели слябовой тележки показан на рис. 82. Заполненная таблица символов с указанием адресов источников и приемников
сигналов показана на рис. 83.
Рис. 82. Вид имитационной модели слябовой тележки
Рис. 83. Таблица символов проекта управления слябовой тележкой
120
2. Построить полную диаграмму работы схемы управления тележкой.
3. Модифицировать схему управления тележкой для исключения
одновременного формирования команд управления «Вперед» и «Назад».
Самостоятельная работа №4
Реализация последовательности шагов
в комбинаторной схеме
Задание. В соответствии с вариантом самостоятельной работы №2
реализовать релейную схему, выполняющую последовательное включение шагов. За шаги считать последовательность строчек таблицы истинности сверху вниз. Каждая следующая строка (кроме первой) может быть
выполнена только после выполнения условия в предыдущем шаге. В качестве образца использовать пример реализации последовательности
включения шагов, приведенный в разделе 4.3.
Самостоятельная работа №5
Реализация многотактной схемы
по заданной диаграмме включений
Задание. По заданной (по вариантам) временной диаграмме реализовать релейную схемы её реализации. Проверить работу разработанной
программы реализации многотактной схемы путем экспериментального
определения временной диаграммы и сравнения её с заданной.
Порядок выполнения работы:
1. Изучить работу катушек с памятью. Рассмотреть пример реализации и описание работы многотактной схемы по рис. 81.
2. Создать новый проект. Заполнить конфигурацию станции, таблицу символов и сохранить созданный проект на диск.
2. Реализовать многотактную схему в соответствии с вариантом
задания и экспериментально, с использованием эмулятора PLCSIM и/или
пульта-имитатора, определить таблицу (диаграмму включений). Сравнить полученную таблицу включений с исходной.
3. По выполненной работе подготовить отчет, в котором привести
краткие сведения о работе катушек выделения фронта, временные диаграммы их работы и листинг программы, реализующий многотактную
схему по заданному варианту.
121
Вариант 1
Такт
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
X
Y
Вариант 2
Такт
X
Y
Вариант 3
Такт
X
Y
Вариант 4
Такт
X
Y
122
Вариант 5
Такт
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
X
Y
Вариант 6
Такт
X
Y
4.7. Вопросы для самостоятельной подготовки
1. Какое назначение команд выделения фронта? Приведите примеры реализации этих команд.
2. Как используются биты маркерной памяти при реализации логических схем?
3. Для каких целей используются промежуточные биты в катушках выделения фронта. Состояние промежуточных битов в моменты выделения переднего и заднего фронтов.
4. Приведите временную диаграмму работы релейной схемы выделения фронта. Поясните порядок логику работы команд выделения
фронта.
5. Поясните основное назначение катушек с памятью. Приведите
примеры их использования.
6. Какие еще команды релейной логики реализуют триггеры?
7. Какой приоритет имеют команды управления катушками с памятью?
8. В чем отличие RS-триггера от SR-тригера? Поясните на примере работы триггеров в логической программе.
9. Каким образом реализовываются заданные временные последовательности включений? Приведите пример и поясните работу про123
граммы, реализующей последовательность включений на примере выполнения самостоятельной работы.
10. Поясните алгоритм формирования релейной схемы.
11. Приведите пример формирования релейной схемы и обоснуйте порядок упрощения.
12. Что такое многотактные схемы? Поясните порядок формирования многотактной схемы на языке LAD.
13. Приведите примеры реального использования многотакнтых
схем в реальных системах управления промышленными объектами.
14. Приведите пример изменений в программе управления слябовой тележкой, чтобы не допустить формирование команд управления при
одновременном нажатии на кнопки «Вперед» - «Назад».
15. Как, используя многотактные схемы, реализовать задержку
включения на один такт работы программ?
5. РАБОТА С МНОГОБИТНЫМИ ЗНАЧЕНИЯМИ
Многобитные значения используются для хранения передачи и
действия над величинами, принимающими множество состояний. В качестве таких величин выступают значения счетчиков, таймеров, данные с
аналого-цифровых преобразователей. Многобитные значения используются в математических операциях, операциях сравнения, сдвига. Результатом действий над многобитными значениями могут быть как многобитные значения, так и биты релейной логики.
Все действия над многобитными значениями происходят в специальных 32-разрядных регистрах – аккумуляторах. Любой процессорный
модуль контроллеров Simatic S7 поддерживает работу не менее двух аккумуляторов.
Важно помнить, что большинство действий над могобитными значениями не оказывают влияния на результат логической операции (бит
RLO), за исключением случаев, когда результатом действий является логическое значение (битовая величина).
Также при выполнении операций над многобитными значениями
никак не контролируется тип данных. Он определяется самой операцией,
что усложняет работу с многобитными значениями и является дополнительным источником ошибок.
5.1. Команды работы с аккумулятором процессора
Аккумулятор процессора представляет собой специальный регистр
(область памяти), расположенный непосредственно в процессоре и выполняющий функции промежуточного буфера. Размер аккумулятора составляет 32 бита, что соответствует 4-м байтам (по 8 бит) или двум словам (по 16 бит).
124
В зависимости от расположения слов и байт в аккумуляторе различают младший и старший байты и старшее и младшее слово. На рис. 84
показано распределение байт и слов в аккумуляторе.
Старшее Слово
7
0
7
Младшее Слово
0
7
0
Старший
Байт
7
31
7
24 23
0
7
16
0
7
0
15
8
0
Двойное слово
Младший Байт
7
0
Слово
7
0
Байт
7
0
Аккумулятор 1
7
0
Байт
7
0
7
0
Слово
7
0
7
0
Двойное слово
Рис. 84. Распределение слов и байт информации в аккумуляторе
Основными командами на языке STL, которые производят обмен
информации через аккумулятор, являются команды загрузки L (load) и
выгрузки T (transfer) аккумулятора.
Кроме основного аккумулятора (обычно обозначаемого как АК1 или
аккумулятор 1), с которым работают команды загрузки и выгрузки, процессор содержит второй аккумулятор – АК2 (или аккумулятор 2), предназначенный для хранения данных, передаваемых из первого аккумулятора.
Команда загрузки (L) записывает (загружает) содержимое своего
исходного адреса или константу в аккумулятор 1, сдвигая всю уже содержащуюся в нем информацию в аккумулятор 2. Старое содержимое
аккумулятора 2 при этом заменяется.
Команда выгрузки (Т) только копирует содержимое аккумулятора
1 и записывает его в соответствующую целевую (назначенную) область
памяти.
На рис. 85 показаны изменения, происходящие в аккумуляторах
при выполнении команды загрузки.
Команды загрузки (L) и передачи (Т) аккумулятора можно использовать для обмена данными следующих размеров: байт (В, 8 бит); слово
(W, 16 бит); двойное слово (D, 32 бита). Идентификаторы размера (B, W,
D) используются для определения объема памяти, занимаемой этими
данными.
125
L (load)
Аккумулятор 1
Старшее Слово
31
24 23
Младшее Слово
16
15
8
7
0
Старший
Младший
Старший
Младший
Байт
Байт
Байт
Байт
Аккумулятор 2
Старшее Слово
31
24 23
Младшее Слово
16
15
8
7
0
Старший
Младший
Старший
Младший
Байт
Байт
Байт
Байт
Рис. 85. Передача данных из аккумулятора 1 в аккумулятор 2
при выполнении команды загрузки
Если данные для обмена с аккумулятором составляют слово или
двойное слово, то необходимо знать и четко представлять, как эти данные будут располагаться в области памяти. На рис. 86 показано, как располагаются слова и двойные слова в маркерной области.
7
0 7
MB10
MB11
15
15
31
0 7
MW10
0
7
MB12
MB13
MW11
0
0
MW12
15
MD10
0
0
0
Рис. 86. Расположение данных в маркерной области памяти
Адрес памяти, на который ссылаются при загрузке и выгрузке аккумулятора, всегда представляет собой адрес байта, в котором расположены самые старшие биты слова или двойного слова. Остальные биты
располагаются в следующих за ним байтах памяти. Поэтому при реализации функций работы с аккумуляторами необходимо следить, чтобы не
произошло наложение информации при выгрузке информации в соседние
ячейки.
126
Загрузка данных в аккумулятор может происходить из констант и
адресов памяти. Для наглядности и удобства программирования загрузка
констант может производиться в нескольких форматах. В табл. 13 приведены операнды команд загрузки констант в зависимости от их представления. В табл. 14 приведены варианты загрузки информации из адресов
памяти.
Таблица 13
Операнды команд загрузки констант
±
Пример команды загрузки
Описание команды
константы в аккумулятор
Загрузка 16-битовой целой константы
L +27
В#(..,..)
L B#(100,12)
Операнд
в АКК1, представленной десятичным
числом
Загрузка двух байт в АКК1 (число
100 – в старший байт, число 12 – в
младший байт)
L B#(1,10,5,4)
L ‘ABCD’
2#...
L#...
(B,W,D)
16#...
L 2#10011011
L 2#10011111_10101011
L 2#10101010_10101010
_01010110_10101011
L L#+5
L B#16#EF
L W#16#FA6F
C#...
L DW#16#1FAE56AE
L C#100
S5T#...
T S5T#1H23M46S250MS
L 1.0E+5
127
Загрузка четырех байт в АКК1 (число
5 – в старший байт младшего слова,
число 4 – в младший байт младшего
слова, 1 и 10 соответственно в старший и младший байт старшего слова)
Загрузка 4-байтной символьной константы
Загрузка 8-, 16- и 32-битовых констант, представленных двоичным
числом
Загрузка 32-битовой целой константы, представленной десятичным числом
Загрузка 8-, 16- и 32-битовых констант, представленных шестнадцатеричным числом
Загрузка 16-битового счетного значения
Загрузка 16-битовой константы времени
Загрузка 32-битовой константы с
плавающей точкой
Таблица 14
Примеры команд загрузки из адресов памяти
Размерность
данных
В
W
D
Пример команды
Описание команды
загрузки
Загрузка байта данных из маркерного
L MB10
байта
MB10 и байта таблицы входного
L IB0
L MW11
L IW2
L C0
L MD0
L ID0
образа процесса IВ0
Загрузка слова данных из маркерного
слова MW11, слова таблицы входного образа процесса IW2 и ячейки счетчика С0
Загрузка двойного слова из маркерной
области MD0 и таблицы входного образа
процесса ID0
Над данными, расположенными в аккумуляторе 1, могут быть проведены команды по перемещению байт и слов информации внутри аккумулятора 1. На рис. 87 представлено действие команд по перемещению
данных внутри аккумулятора 1: CAW – обмен местами байт младшего слова аккумулятора 1; CAD – обмен местами всех байт в аккумуляторе 1.
Байты аккумулятора 1 до выполнения операции
n
Функция CAW
n+1
n+2
n+3
Байты аккумулятора 1 после выполнения операции
n
n+1
n+3
n+2
Байты аккумулятора 1 до выполнения операции
n
Функция CAD
n+1
n+2
n+3
Байты аккумулятора 1 после выполнения операции
n+3
n+2
n+1
n
Рис. 87. Обмен байтов в аккумуляторе АК1
В некоторых типах процессоров дополнительно имеется еще два аккумулятора, обозначаемых АК3 и АК4. На рис. 88 приведено перемещение информации в аккумуляторах при действии команд TAK, PUSH,
POP, ENT, LEAVE.
128
Аккумулятор 4
Аккумулятор 3
Аккумулятор 4
Аккумулятор 3
Аккумулятор 4
Аккумулятор 3
Аккумулятор 2
Аккумулятор 4
Аккумулятор 2
Аккумулятор 3
Аккумулятор 2
Аккумулятор 1
Аккумулятор 3
Аккумулятор 2
Аккумулятор 2
Аккумулятор 1
Аккумулятор 1
Аккумулятор 2
Аккумулятор 1
Аккумулятор 1
TAK
PUSH
POP
ENT
LEAVE
Рис. 88. Действие команд пересылки данных
между аккумуляторами процессора
Рассмотрим пример выполнения действий над аккумулятором процессора. Требуется произвести перемещения данных между аккумуляторами
процессора и маркерным двойным словом по следующей схеме.
Двойное слово: (3с_54_1а_23Н)  (АК1=23_1а_54_3сН);
(АК2=1а_23_3с_54); (MW10=3c_54H); (MW12=1а_23Н).
Исходную константу, представленную в шестнадцатеричном виде (3с_54_1а_23Н), используя команды обмена с аккумуляторами процессора, разместить в аккумуляторе 1 в виде (23_1а_54_3сН), в аккумуляторе 2 – в виде (1а_23_3с_54), в маркерное слово MW10 выгрузить
часть константы (3c_54H), в маркерное слово MW12 выгрузить часть
константы (1а_23Н).
Первый вариант выполнения
Программа на языке STL с использованием только команд загрузки и передачи с пояснением каждого действия приведена в табл. 15.
Последовательность работы программы следующая:
1) Исходная константа загружается в аккумулятор 1.
2) Аккумулятор АК1 выгружается в маркерное двойное слово
MD10. Расположение байт в маркерном двойном слове будет иметь вид
MD10=3с_54_1а_23h,
в
маркерных
словах
MW10=3с_54h;
MW12=1а_23h, в маркерных байтах – MВ10=3сh, MB11=54h, MB12=1ah,
MB13=23h.
3) Аккумулятор 1 загружается из маркерного байта MВ13.
4) Выгружается АК1 в маркерный байт MВ20, который является
старшим байтом двойного слова МD20 (MD20=23000000h).
5) Аккумулятор 1 загружается из маркерного байта MВ12.
6) Выгружается АК1 в маркерный байт MВ21 (MD20=231a0000h).
7) Аккумулятор 1 загружается из маркерного байта MВ11.
129
8) Выгружается АК1 в маркерный байт MВ22 (MD20=231a5400h).
9) Аккумулятор 1 загружается из маркерного байта MВ10.
10)
Выгружается
АК1
в
маркерный
байт
MВ23
(MD20=231a543ch).
После выполнения всех этих действий маркерное двойное слово
MD20 содержит требуемую в соответствии с заданием последовательность байт.
11, 12) Для того чтобы поменять местами слова маркерного двойного слова MD10, перенесем слово МW10 в слово MW14.
13) Загрузим аккумулятор 1 из двойного слова MD12.
14) Для переноса этих данных в соответствии с заданием в аккумулятор 2 загрузим АК 1 данными из двойного слова MD20.
Таблица 15
Пример первого варианта программы
обмена данными с аккумуляторами
№
п/п
1
2
L
T
DW#16#3C541A23
MD 10
3
4
5
6
7
8
9
10
11
12
13
14
L
T
L
T
L
T
L
T
L
T
L
L
MB
MB
MB
MB
MB
MB
MB
MB
MW
MW
MD
MD
Команда на STL
13
20
12
21
11
22
10
23
10
14
12
20
Действия
АК1=3с541а23h
MD10=3с541а23h (MW10=3с54h;
MW12=1а23h)
AK1=23h
MB20=23h (MD20=23000000h)
AK1=1аh
MB21=1аh; (MD20=231а0000h)
АК1=54h
MB22=54h (MD20=231а5400h)
АК1=3сh
MВ=3сh; (MD20=231а543сh)
AK1=MW10=3с54h
MW14=3с54h; (MD12=1а233с54h)
АК1= MD12=1а233с54h
АК2=АК1; АК1=231а543сh
Второй вариант выполнения
Программа на языке STL с использованием команды перемещения
данных внутри аккумулятора с пояснением каждого действия приведена
в табл. 16.
130
Таблица 16
Пример второго варианта программы обмена данными
с аккумуляторами
№
п/п
1 L
2 T
3
4
5
6
7
Команда на STL
Действия
DW#16#3C541A23
MD 10
АК1=3с_54_1а_23h
MD10=3с_54_1а_23h (MW10=3с_54h;
MW12=1а_23h)
AK1=3c_54h
MW14=3c_54h
AK1=1а_23_3c_54h
АК1=3с_54_1а_23h AK2=1а_23_3c_54h
АК1=23_1а_54_3сh
L MW
T MW
L MD
L MD
CAD
10
14
12
10
Последовательность работы программы следующая:
1) Загрузка аккумулятора 1 константой 3с_54_1а_23h.
2) Аккумулятор АК1 выгружается в маркерное двойное слово MD10.
Расположение байт в маркерном двойном слове будет иметь вид
MD10=3с_54_1а_23h,
в
маркерных
словах
MW10=3с_54h;
MW12=1а_23h.
3) Аккумулятор 1 загружается из маркерного слова MW 10.
4) Выгружается в маркерное слово MW 14.
5) Аккумулятор 1 загружается из маркерного двойного слова
MD12=1а_23_3c_54h.
6) Значение АК1 переносится в АК2. Аккумулятор 1 загружается из
маркерного двойного слова MD10=3с_54_1а_23h.
7) В аккумуляторе 1 происходит перемещение байт. Результат содержащийся в АК1=23_1а_54_3сh.
5.2. Команды реализации счетчиков
Счетчики позволяют реализовывать вычислительные задачи по
подсчету каких-либо событий, происходящих в системе. Счетчики могут
вести прямой счет (счет по возрастанию – инкрементирование) и обратный счет (счет по убыванию – декрементирование). Счетчики располагаются в системной памяти CPU в области Counter – C.
Счетчик занимает ячейку памяти размером 16 бит, которая называется словом счетчика и которая хранит счетное значение в двоичнодесятичном формате (BCD) в диапазоне от 000 до 999. Размещение счетного значения в слове счетчика показано на рис. 89.
131
15
12 11
8
7
Сотни
4
3
Десятки
0
Единицы
Рис. 89. Расположение счетного значения
по тетрадам ячейки счетчика
Ячейки памяти счетчиков нумеруются, начиная с нуля. Максимальное число счетчиков, реализуемое в системе, определяется типом
используемого CPU. Например, CPU 315-2DP содержит 64 счетчика с
диапазоном ячеек счетчиков от С0 до С63.
Для управления счетчиками используются следующие команды:
1. Установка счетчика (задание начального счетного значения).
2. Прямой счет.
3. Обратный счет.
4. Сброс счетчика.
5. Чтение состояния счетчика.
6. Чтение числового значения счетчика в двоичном и двоичнодесятичном формате.
Установка счетчика производится через аккумулятор процессора
АК1, в который до выполнения команды установки заносится число в
счетном формате. Пример начальной установки счетчика на языках LAD
и STL показан на рис. 90.
«КН1»
С0
SC
С#10
а) а
A
L
S
“KH1”
C#10
C0
б)б
Рис. 90. Пример использования команды первоначальной
установки счетчика на языках: а – LAD; б – STL
Установка счетчика производится по переднему фронту RLO, который в примере на рис. 86 реализовывается нажатием на кнопку КН1.
Прямой и обратный счет реализовывается командами: CU – увеличение счетчика на 1 (Counter Up) и CD – уменьшение счетчика на 1
(Counter Down). Пример схемы реализации команд на языках LAD и STL
приведен на рис. 91.
Команда сброса обнуляет содержимое счетчика. Пример выполнения команды сброса на языках LAD и STL приведен на рис. 92.
132
«КН2»
С0
CU
«КН3»
A
CU
“KH2”
C0
A
CD
“KH3”
C0
С0
CD
а) а
б) б
Рис. 91. Реализация команд прямого и обратного счета
на языках LAD и STL
«КН4»
С0
R
а а)
A
R
“KH4”
C0
б
б)
Рис. 92. Реализация команды сброса счетчика на языках LAD и STL
Хотя счетчик представляет собой слово в системной памяти
(16 бит), для него можно выполнить логическую операцию – опрос (чтение) состояния счетчика, то есть, например, на языке LAD состояние
счетчика можно представить в виде нормально замкнутого контакта реле.
Контакт считается замкнутым, если состояние слова счетчика отличается
от нуля. Контакт размыкается, если счетчик обнуляется в результате обратного счета или сброса.
Значение слова счетчика можно загрузить в аккумулятор командой
L (Load). В этом случае значение счетчика будет автоматически преобразовано из двоично-десятичного формата представления в двоичное и загружено в аккумулятор. Для сохранения двоично-десятичного формата
представления счетного значения при загрузке служит команда загрузки
LC (Load Counter).
Например, если счетчик содержит счетное значение, равное 10, то
команда L C0 загрузит аккумулятор двоичным значением АК1=00001010,
а команда LС C0 загрузит АК1=00010000.
После загрузки слова счетчика в аккумулятор и последующей выгрузки аккумулятора в слово памяти (например в маркерное слово) над
битами слова счетчика могут быть проведены логические или арифметические операции. Это позволяет использовать счетчики не только в вычислительных операциях по подсчету событий, но и позволяет создавать
схемы шагового или циклического управления оборудованием. Учитывая
133
особенности работы счетчиков, могут быть реализованы самые разнообразные алгоритмы циклического управления.
Например, рассмотрим поведение счетчика при инкрементировании значения от 0 до 7. Слово счетчика при получении команды увеличения (CU) счетного значения будет последовательно принимать следующие значения:
0: 00000000
1: 00000001
2: 00000010
3: 00000011
4: 00000100
5: 00000101
6: 00000110
7: 00000111
Работая с каждым битом слова и применяя к ним логические операции, можно получить практически любую циклическую последовательность. Так, используя нулевой бит счетчика, можно реализовать делитель на 2, используя первый бит, – делитель на 4 и т.д.
Также можно реализовать циклический сброс счетчика при возникновении заданной комбинации бит слова. На рис. 93 представлена
программа реализации многотактного автомата – делителя на два.
«Вх»
C0
A «Вх»
CU C0
CU
L
T
C0
MW0
A
=
M1.0
«Вых»
A
R
M1.2
C0
MOVE
C0
M1.0
EN
ENO
IN
OUT
MW0
«Вых»
б
M1.2
С0
R
а
Рис. 93. Пример
а) реализации делителя на два на счетчике:
б)
а – на языке LAD; б – на языке STL
134
Так как количество тактов, в течение которого происходит полный
цикл, составляет 4, то в приведенном примере осуществляется сброс
счетчика при достижении значения счета, равного четырем (или при
установке бита 2). Также можно использовать несколько счетчиков, которые производят счет разных последовательных событий и, логически
комбинируя их биты, реализовывать более сложные циклические последовательности.
Например, используя счетчики можно реализовывать многотактные
схемы. В качестве примера на рис. 94 приведена реализация многотактной схемы (см. рис. 80). Номер такта выводится через выходное слово
QW2 на индикатор.
1)
«Сброс»
M0.4
5)
С0
«Y»
Q0.0
M12.0
R
M11.0
С1
R
2)
«X»
I0.0
«PR1»
M0.0
6)
«F_P»
M0.1
M11.2
M13.2
«Сброс»
M0.4
P
«PR2»
M0.2
«F_N»
M0.3
7)
N
3)
«F_P»
M0.1
C0
CU
4)
«F_N»
M0.3
C1
L
T
C0
MW10
L
T
C1
MW12
L
L
+I
T
MW10
MW12
QW2
CU
Рис. 94. Пример реализации многотактной схемы
5.3. Команды работы с таймерами
Таймеры позволяют программно реализовать заданную выдержку
времени от момента возникновения события запуска таймера. В зависимости от требуемого поведения таймера на событие запуска используются следующие типы таймеров:
1. Импульсный таймер (Pulse timer).
2. Расширенный импульсный таймер (Extended pulse timer).
3. Таймер задержки включения (On-delay timer).
135
4. Таймер задержки включения с запоминанием (Retentive on-delay
timer).
5. Таймер задержки выключения (Off-delay timer).
Таймеры располагаются в системной памяти CPU в области Timer
(T). Таймер занимает ячейку памяти размером 16 бит (таймерное слово),
в которой хранится длительность работы таймера.
Длительность работы таймера представляет собой интервал времени, в течение которого таймер ведет отсчет времени («таймер работает»).
Структурно значение длительности работы состоит из двух значений: количества временных интервалов и временной базы (или длительности одного интервала). Таким образом, длительность работы таймера
определяется так:
Длительность: = Число временных интервалов  Временная база.
На рис. 95 приведена структура таймерного слова и указаны возможные варианты временной базы.
Значения длительности заносятся в таймерное слово через аккумулятор процессора командой запуска таймера. Занесение значения времени в аккумулятор процессора должно быть произведено командой загрузки аккумулятора. Допускается использование двух вариантов занесения значения длительности: 1) с помощью шестнадцатеричной константы
с соблюдением структуры таймерного слова; 2) с использованием специального формата для определения временных интервалов.
Рис. 95. Структура таймерного слова
В первом варианте можно определить временную базу и число
временных интервалов самостоятельно, во втором варианте расчет временной базы и числа временных интервалов происходит автоматически
из значения, заданного в единицах времени (часах, минутах, секундах,
миллисекундах).
Например, для задания длительности времени в одну секунду, возможно занесение в таймерное слово константы в следующих вариантах:
136
2001h:
1010h:
0100h:
S5T#1s:
один отсчет, временная база 1 секунда;
10 отсчетов, временная база 100 миллисекунд;
100 отсчетов, временная база 10 миллисекунд;
одна секунда.
Для более точного отсчета времени предпочтительнее использовать как можно меньшее значение базы времени. При автоматическом
определении таймерного слова временная база выбирается исходя из
наименьшего возможного значения. Так, например, в приведенном выше
примере два последних значения таймерного слова будут идентичны.
Общий диапазон отсчета времени таймером составляет от 10 ms до
9990 s (2 часа 46 минут 30 секунд).
В зависимости от требуемого поведения таймера используются
следующие команды запуска: (SP) – импульсный таймер; (SE) – расширенный импульсный таймер; (SD) – таймер задержки включения; (SS) –
таймер задержки включения с запоминанием; (SF) – таймер задержки
выключения.
Запуск таймера по командам SP, SE, SD, SS осуществляется по переднему фронту RLO перед командой. Например, на рис. 96, а показан
пример запуска таймера командой SE при нажатии на кнопку КН1. Запуск таймера остальными командами производится аналогично.
Для установки таймерного слова в ноль используется команда
сброса (Reset) применительно к катушке таймера. Сброс для всех таймеров производится по переднему фронту RLO перед командой сброса.
Пример команды сброса приведен на рис. 96, б.
Так же как и счетчик, таймер можно опросить логической командой. Результат опроса зависит от примененной для этого таймера команды запуска. На рис. 96, в приведен пример опроса состояния таймера с
выводом значения в выходной бит образа процесса.
аa)
«КН1»
I0.0
T1
вв)
T1
Q0.0
SE
бб)
«KH2»
I0.1
г
T1
R
г)
L
T
T1
QW2
Рис. 96. Команды управления и чтения состояния таймера
На рис. 97 приведены временные диаграммы опроса таймера, запущенного различными командами запуска. Также на этом же рисунке
показано время работы таймера (время отсчета).
137
Прочитать значение текущего значения таймерного слова можно
командой L (Load), загрузив его значение в аккумулятор и передав в маркерное слово (на рис. 96, г передача осуществляется в слово выходной
таблицы образа процесса).
Сигнал на входе запуска
таймера
Импульсный таймер
SP
t
Расширенный
импульсный таймер SE
t
Таймер задержки
включения SD
t
Таймер задержки
включения с
запоминанием SS
t
Таймер задержки
выключения SF
t
Рис. 97. Временные диаграммы работы таймера, запущенного
различными командами запуска
Кроме выполнения с помощью таймеров различного рода отсчетов
времени и реализации задержек, таймеры также часто используются для
генерации различных циклических последовательностей во времени.
Например, на рис. 98 приведен пример реализации генератора импульсов
с использованием двух таймеров с задаваемым временем импульса и паузы (с задаваемой скважностью). На рис. 99 приведена временная диаграмма его работы.
Кнопка КН1 предназначена для первоначального запуска схемы, и
по переднему фронту её нажатия запускается таймер Т1.
После отработки таймера Т1 по заднему фронту запускается таймер Т2. После отработки таймера Т2 формируется маркер заднего фронта
М0.3 , который снова запускает таймер Т1 по параллельной цепочке. Выход генератора выводится в бит образа процесса Q0.0, обозначенного
символическим именем «PULSE».
Для более наглядного представления схем взаимодействия групп
таймеров и понимания их работы эти схемы удобно изображать в блочном виде, где таймер представляется элементом, имеющим вход запуска
и выход, опрашиваемый логической командой. Промежуточные элемен138
ты представляются в виде стандартных блоков с обозначением по выполняемым ими действиям. Элементы, которые напрямую не участвуют в
осуществлении работы таймеров, на таких схемах, как правило, не показывают, и их оставляют как есть.
«КН1»
I0.0
M0.0
T1
Р
SE
M0.3
T1
S5T#1s250ms
M0.2
T2
SE
N
S5T#1s
T2
M0.1
M0.3
N
«PULSE»
Q0.0
T1
Рис. 98. Пример генератора с задаваемым временем импульса и паузы
KH1
T1
t
T2
t
t
Рис. 99. Временная диаграмма работы генератора импульсов
с регулируемым временем импульса и паузы
139
Так как такие схемы обычно представляют собой замкнутые контуры, то после разработки схемы взаимодействия нескольких таймеров
производится их преобразование в схему на языке LAD или STL. Преобразование производится последовательно по циклу, начиная с любой
удобной точки контура.
На рис. 100 приведена блочная схема последовательного запуска
двух таймеров для реализации генератора, приведенного на рис. 98.
КН1
T1
1
Опрос
T2
Запуск
Запуск
Опрос
Рис. 100. Блочная схема представления работы таймеров генератора
Более сложные циклические последовательности реализовываются
с использованием бóльшего количества таймеров и выполнением логических операций над результатами их опроса.
5.4. Команды над числовыми величинами
Всё многообразие команд и функций микропроцессорного контроллера, выполняемых над числовыми величинами, можно разбить на
следующие группы:
 команды арифметических операций (сложение, умножение и т.д.);
 математические функции (вычисление корня, логарифма и т.д);
 функции сравнения;
 функции побитового сдвига;
 функции преобразования форматов.
 функции поразрядных логических операций.
В общем случае выполнение всех команд можно описать одним из
трех форматов:
1. Формат команды над двумя аргументами:
АК1 := АК2 <команда> АК1 или RLO := АК2 <команда> АК1.
В соответствии с этим форматом выполняются команды сравнения
алгебраических, поразрядных логических операций и некоторые команды
побитового сдвига.
Выполнение команды состоит из загрузки аккумуляторов АК1 и
АК2 процессора, вызова команды и сохранения результата в аккумуляторе АК1 или в RLO, в зависимости от результата операции.
140
2. Формат команды над одним аргументом:
АК1 := <команда> АК1.
В соответствии с этим форматом выполняются команды арифметических функций, такие как вычисление корня, тригонометрические и
логарифмические функции.
В соответствии с этим вариантом сначала производится загрузка
аккумулятора АК1, после чего выполняется команда. Результат сохраняется в аккумуляторе АК1.
3. Формат команды над аргументом с параметром N (или вторым
аргументом), которой задается константой:
АК1 := <команда N> АК1.
В соответствии с этим форматом выполняются команды побитового сдвига и поразрядных логических операций, в которых параметр N
указывает величину сдвига или константу поразрядной логической операции (маску).
5.4.1. Команды арифметических операций
Эти команды выполняются над величинами, представленными
словами (INT – целыми 16-битовыми величинами), двойными словами
(DINT – целыми 32-битовыми значениями) и вещественными значениями
(REAL – дробное с плавающей точкой). В табл. 17 приведены все варианты команд выполнения арифметических операций.
Таблица 17
Команды арифметических операций
Описание
команды
Сложение
Вычитание
Умножение
Деление
Остаток от деления
Целые
двойные слова
+D
-D
*D
/D
MOD
Целые слова
+I
-I
*I
/I
-
Вещественные
значения
+R
-R
*R
/R
-
Выполнение арифметических функций производится в формате с
двумя аккумуляторами (формат 1) или в формате с константой (формат 3).
Например, программа деления значения в слове MW 100 на величину 120 и сохранение целого результата в слове MW 102, выполненная в
формате с двумя аккумуляторами, выглядит следующим образом:
141
L
L
/I
T
MW 100
120
MW 102
AK1  MW100
AK2  AK1  120
AK1 = AK2 / AK1
MW102  AK1
В формате с константой выполняются только функции сложения
или вычитания. Например, сложение слова MW10 с константой 5 и помещение результата в слово MW12 выглядит следующим образом:
L MW 10
+5
T MW 12
AK1  MW10
AK1  AK1 + 5
MW12  AK1
5.4.2. Математические функции
К математическим (алгебраическим) функциям относятся следующие функции:
 тригонометрические функции: синус (SIN), косинус (COS), тангенс (TAN);
 обратные тригонометрические функции: арксинус (ASIN), арккосинус (ACOS), арктангенс (ATAN);
 возведение в квадрат (SQR), извлечение квадратного корня
(SQRT);
 экспонента (EXP), логарифм (LN).
Тригонометрические функции SIN (синус), COS (косинус), TAN
(тангенс) воспринимают действительное число (REAL) в аккумуляторе
как значение угла, выраженное в радианах.
Обратные тригонометрические функции (Arc-функции) ASIN
(арксинус), ACOS (арккосинус), ATAN (арктангенс) являются обратными
по отношению к соответствующим тригонометрическим функциям, рассмотренным выше. Эти функции используют действительное число
(REAL), находящееся в аккумуляторе АК1, и возвращают значение угла,
выраженное в радианах. Если превышается разрешенный диапазон значений, то обратные тригонометрические функции возвращают некорректное действительное число и устанавливают биты состояния CC0,
CC1, OV и OS в состояние «1».
Функции: SQR (возведение в квадрат), SQRT (извлечение квадратного корня), EXP (экспоненциальная функция по основанию е),
LN (логарифмическая функция по основанию е (натуральный логарифм)
работают только с действительным числом (REAL), которое находится в
аккумуляторе АК1.
142
Выполнение всех математических функций производится в формате с одной переменой (формат 2).
Например, вычисление величины логарифма, находящегося в
двойном слове MD 110, и передача результата в двойное слово MD 104:
L MD 110
LN
T MD 104
AK1  MD110
AK1LN(AK1)
MD104  AK1
Примечание. Для нахождения логарифма по произвольному основанию можно воспользоваться формулой
logb a 
ln a
.
ln b
Например, для десятичного логарифма формула примет вид:
lg a 
ln a
 0,4342945  ln a .
ln10
Также для вычисления возведения величины в произвольную степень можно воспользоваться формулой
a b  eb ln a .
Программная реализация возведения в произвольную степень на
языке STL примет вид:
L "а"
LN
L "b"
*R
EXP
T "Result"
AK1  "a"
AK1LN(AK1)
AK2AK1 AK1"b"
AK1AK2*AK1
AK1EXP(AK1)
"Result"AK1
5.4.3. Функции сравнения
Эта группа функций используется для сравнения значения, расположенного в аккумуляторе АК2, со значением в аккумуляторе АК1 соответственно. Сравнение происходит в соответствии с форматом операций
с двумя аккумуляторами (формат 1).
Сравнение значений, так же как и арифметические операции, выполняется над числами в формате INT, DINT и REAL.
Результат сравнения помещается в RLO. Если результат сравнения
– истина, то в RLO помещается лог. «1» в противном случае лог. «0».
Список команд сравнения приведен в табл. 18.
143
Таблица 18
Функции сравнения
Операция сравнения
Равно
Не равно
Больше чем
Больше чем или равно
Меньше чем
Меньше чем или равно
INT
==I
<>I
>I
>= I
<I
<= I
Типы данных
DINT
==D
<>D
>D
>= D
<D
<= D
REAL
==R
<>R
>R
>= R
<R
<= R
Например, сравнение на равенство величины, расположенной в
маркерном слове MW 92, со значением константы, с помещением результата сравнения в бит М 99.0, показано ниже.
L MW 92
L 120
==I
= M 99.0
AK1  MW92
AK2AK1; AK1120
RLOAK2==AK1
M99.0RLO
5.4.4. Функции побитового сдвига
Функции сдвига смещают содержимое переменной, содержащейся
в аккумуляторе 1, побитно вправо или влево. Выдвинутые биты либо теряются, либо используются для заполнения аккумулятора с другой стороны.
Параметры для функции сдвига могут быть заданы следующими
двумя путями:
– с числом позиций, заданным в аккумуляторе 2, то есть используется формат с двумя аккумуляторами (формат 1);
– с числом позиций, заданным в инструкции с помощью константы, то есть формат операции с константой (формат 3).
Функции сдвига работают только с целыми значениями, представленными в виде слов и двойных слов.
Полный список команд сдвига приведен в табл. 19.
В качестве примера ниже показано несколько вариантов выполнения команд сдвига.
144
Таблица 19
Список команд функций сдвига аккумулятора
Размерность значения
32 бит, двойное слово
(double word)
Число
Число
Число
Число позиций
позиций
позиций в
позиций в
как параметр
как
АК2
АК2
параметр
SLW n
SLW
SLD n
SLD
Размерность значения
16 бит, слово (word))
Функция сдвига
Сдвиг влево (Shift left)
Сдвиг вправо
SRW n
SRW
SRD n
(Shift right)
Сдвиг со знаком (Shift with
SSI n
SSI
SSD n
sigh)
Циклический сдвиг влево
RLD n
(Rotate right)
Циклический сдвиг вправо
RRD n
(Rotate right)
Циклический сдвиг влево
через бит СС1 (Rotate left
RLDA*
through CC1)
Циклический сдвиг вправо
через бит СС1 (Rotate right
RRDA*
through CC1)
* Без параметров, как при смещении только одного бита.
SRD
SSD
RLD
RRD
-
-
Сдвиг значения в слове MW13 на 3 позиции влево и сохранение
результата в слове MW15:
Сдвиг слова на 4 бита влево:
L MW 13
SLW 4
T MW 15
AK1  MW13
AK1AK1 SLW 4
MW15AK1
Сдвиг значения в двойном слове MD0 вправо на число позиций, которое задано в слове MW190, и сохранение результата в двойном слове
MD5:
L MD 0
L MW190
SRD
T MD 5
AK1  MD 0
AK2  MW 190
AK1AK1 SRD AK2
MD5AK1
В табл. 20 показан принцип работы различных функций сдвига для
слов и двойных слов.
145
Таблица 20
Работа функций сдвига для слов и двойных слов
Сдвиг слова данных влево SLW
Сдвиг двойного слова данных влево SLD
AK1
15
0
AK1
31
«0»
0
«0»
СС1
СС1
Сдвиг слова данных вправо SRW
Сдвиг двойного слова данных вправо
SRD
AK1
15
0
AK1
31
СС1
0
«0»
СС1
«0»
Сдвиг слова данных со знаком SSI
AK1
15
Сдвиг двойного слова данных со знаком
SSD
0
AK1
31
«знак»
0
СС1
«знак»
Циклический сдвиг влево RLD
AK1
31
СС1
Циклический сдвиг влево через бит состояния СС1 RLDA
0
AK1
31
СС1
0
СС1
Циклический сдвиг вправо RRD
31
AK1
Циклический сдвиг вправо через бит
состояния СС1 RRDA
0
СС1
31
AK1
0
СС1
146
5.4.5. Функции преобразования форматов
В общем случае любое значение, находящееся в аккумуляторе,
может быть представлено в одном из четырех простых базовых типов.
INT – представляет собой целое число, которое сохраняется как
16-разрядное и занимает одно слово (word). Знак числа хранится в старшем бите слова. Отрицательные числа хранятся в дополнительном коде.
Общий формат чисел INT имеет вид, показанный на рис. 101.
14...
15
...0
«знак»
Рис. 101. Общий вид формата числа типа INT
Например, числа 2, 1, 0, -1 , -2 будут представлены следующими
значениями в двоичном коде (в скобке – в шестнадцатеричном):
2: 0000 0000 0000 0010 (0002hex);
1: 0000 0000 0000 0001 (0001hex);
0: 0000 0000 0000 0000 (0000hex);
-1: 1111 1111 1111 1111 (FFFFhex);
-2: 1111 1111 1111 1110 (FFFEhex).
Диапазон чисел типа INT составляет от +32 767 (7FFFhex) до
-32 768 (8000hex).
DINT – представляет собой целое число, которое сохраняется как
32-разрядное и занимает два слова (double word). Знак числа хранится в
старшем бите двойного слова. Отрицательные числа хранятся в дополнительном коде. Диапазон чисел типа DINT составляет от +2 147 483 647
(7FFF FFFFhex) до -2 147 483 648 (8000 0000hex). Для загрузки константы в
аккумулятор в виде типа DINT следует пользоваться идентификатором L#.
Общий формат чисел DINT имеет вид, представленный на рис. 102.
31
30...
...16 15...
...0
«знак»
Рис. 102. Общий вид формата числа DINT
REAL – представляет собой дробное число, которое сохраняется
как 32-разрядное число с плавающей точкой и занимает два слова (double word). Числа формата REAL представляются в экспоненциальном
147
формате. Например, число 0,005 в экспоненциальном формате запишется
как 5.0е-3, где «5.0» – мантисса числа, «-3» – показатель степени по основанию 10.
BCD – значения, представленные в двоично-десятичном формате.
Каждая цифра значения в десятичном формате (0 – 9) хранится в своей
тетраде (четыре бита).
В зависимости от сохраняемой величины число в двоичнодесятичном формате может занимать 3 тетрады и хранится соответственно в слове (16 – бит) или 7 тетрад и хранится в двойном слове (32 – бита).
Знак числа хранится в старшем разряде и не оказывает влияния на значения отдельных тетрад.
Формат значений BCD-чисел имеет вид, показанный на рис. 103.
Для трех тетрад:
Байт m
15
Байт m+1
12 11
8 7
102
Знак
4 3
0
101
100
Для семи тетрад:
Байт m
31
28 27
Знак
Байт m+2
Байт m+1
24 23
106
16 15
20 19
105
104
12 11
103
Байт m+3
8 7
102
4 3
101
0
100
Рис. 103. Общий формат чисел BCD
Функции преобразования предназначены для конвертации типов
данных значений, находящихся в аккумуляторе АК1. Всё многообразие
функций преобразования можно представить в виде диаграммы, показанной на рис. 104. Полный список функций преобразования приведен в
табл. 21.
148
INVI
NEGI
BCD
3 тетрады
ITB
INT
BTI
ITD
BCD
7 тетрад
INVD
NEGD
DTB
DINT
BTD
DTR
RND+ RNDRND
TRUNC
ABS
NEGR
REAL
Рис. 104. Диаграмма работы функций преобразования форматов
Таблица 21
Функции преобразования форматов
Преобразование чисел форматов
INT и DINT
Преобразование чисел
формата REAL
Преобразование
Преобразует INT в
с округлением
ITD
RND+
DINT
«вверх» до следующего целого
Преобразование
с округлением
ITB
Преобразует INT в BCD RND«вниз» до следующего целого
Преобразование
Преобразует DINT в
с округлением
DTB
RND
BCD
до ближайшего
целого числа
Преобразование
Преобразует DINT в
TRUN
DTR
без округления
REAL
C
(усечение)
Нахождение обратного
Инвертирование
INVI кода двоичного числа
NEGR
числа
формата INT
Нахождение
Нахождение обратного
абсолютного
INVD кода двоичного числа
ABS
значения числа
формата DINT
формата REAL
Инвертирование числа
NEGI
формата INT
Инвертирование числа
NEGD
формата DINT
149
Преобразование чисел формата BCD
BTI
Преобразует
BCD в INT
BTD
Преобразует
BCD в DINT
Например, ниже приведен пример загрузки значения с цифрового
задатчика с адресом IW0 в формате BCD, преобразование полученного
значения в формат REAL, возведение в степень 1,5 и вывод целой части
результата на цифровой индикатор в формате BCD по адресу QD0.
L IW0
BTI
ITD
DTR
LN
L 1.5e+000
*R
EXP
RND
DTB
T QD0
АК1  IW0 (значение цифрового задатчика).
Преобразование формата в АК1 из BCD в INT.
Преобразование формата в АК1 из INT в DINT.
Преобразование формата в АК1 из DINT в REAL.
Возведение значение в АК1 в степень 1,5 (см. подразд. 3.13.1)
Преобразование формата в АК1 из REAL в DINT
Преобразование формата в АК1 из DINT в BCD (7)
Вывод результата на цифровой индикатор QD0
5.4.6. Функции поразрядных логических операций
Логические функции для слов данных позволяют побитно комбинировать значение, находящееся в аккумуляторе АК 1, с константой или
с содержимым аккумулятора АК 2. Результат выполнения операции сохраняется в аккумуляторе АК 1. Логические функции могут выполняться
как для слов (INT), так и для двойных слов (DINT).
Выполнение команды поразрядной логической операции производится в соответствии с первым или третьим форматом.
Логические функции для слов данных формируют результат операции бит за битом таким же образом, как и функции релейной логики.
Логическая функция комбинирует бит 0 аккумулятора АК 1 с битом 0 аккумулятора АК 2 или константы, указанной в инструкции. Результат сохраняется в бите 0 аккумулятора АК 1. Таким же образом эта
же логическая операция выполняется для битов 2, битов 3 и т.д. вплоть
до старшего бита операндов (до бита 15 в операциях для слов и до бита
31 в операциях для двойных слов). Содержимое аккумулятора АК 2 при
этом остается неизменным.
Список функций поразрядных логических операций приведен в
табл. 22.
Таблица 22
Функции поразрядных логических операций
Операция
Логическое И (AND)
Логическое ИЛИ (OR)
Логическое исключающее
ИЛИ (XOR)
Функция
Функция для
для слов (INT) двойных слов (DINT)
AW
AD
OW
OD
XOW
150
XOD
Например, ниже приведена поразрядная логическая операция И
(AND) со словами данных, полученных с цифровых задатчиков с адресами
IW0 и IW2 и вывод результата на цифровой индикатор по адресу QW0.
L IW0
L IW2
AW
T QW0
АК1  IW0 (значение цифрового задатчика).
АК1  IW2 (значение цифрового задатчика) АК2АК1.
Поразрядное И: АК1АК2 (AND) АК1.
Вывод результата: QW0АК1.
5.5. Задания к самостоятельной работе
Самостоятельная работа №6
Перемещение данных в аккумуляторах процессора
Задание. Произвести, используя команды языка STL, перемещение данных в аккумуляторах процессора по заданной вариантом схеме.
Задание выполнить в двух вариантах: с использованием только команд
загрузки и передачи данных между аккумуляторами 1 и 2 и маркерной
областью памяти; с использованием (по возможности) только аккумуляторов 1-4 и команд работы с аккумуляторами процессора.
К каждой команде каждого варианта задания составить подробное
описание выполняемых действий.
Схемы перемещения данных.
Вариант 1. (01_02_03_04h)  (АК1=04_03_02_01h);
(АК2=03_04_02_01); (АК3=02_01_04_03h); (АК4=01_02_03_04h);
(MW10=02_03h); (MW12=01_04h).
Вариант 2. (01_02_03_04h)  (АК1=01_03_04_02h);
(АК2=02_04_03_01h); (АК3=03_01_02_04h); (АК4=04_02_01_03h);
(MW10=04_03h); (MW12=02_01h).
Вариант 3. (01_02_03_04h)  (АК1=01_03_04_02h);
(АК2=02_04_03_01); (АК3=03_01_02_04h); (АК4=04_02_01_03h);
(MW10=02_03h); (MW12=01_04h).
Вариант 4. (01_02_03_04h)  (АК1=01_04_03_02h);
(АК2=02_03_01_04); (АК3=03_02_04_01h); (АК4=04_01_02_03h);
(MW10=04_01h); (MW12=02_03h).
Вариант 5. (01_02_03_04h)  (АК1=01_04_02_03h);
(АК2=02_03_04_01h); (АК3=03_02_01_04h); (АК4=04_01_03_02h);
(MW10=03_01h); (MW12=04_02h).
151
Вариант 6. (01_02_03_04h)  (АК1=01_04_03_02h);
(АК2=02_03_01_04); (АК3=03_02_04_01h); (АК4=04_01_02_03h);
(MW10=02_04h); (MW12=01_03h).
Самостоятельная работа №7
Реализация многотактных схем с использованием счетчиков
Задание. Реализовать многотактную схему из задания варианта
самостоятельной работы №5, используя счетчики. Номер такта вывести
на цифровой индикатор пульта (слово выходной таблицы образа процесса QW2).
Подготовить отчет во выполнению самостоятельной работы, который должен содержать:
1. Основные операции работы со счетчиками.
2. Выполнение примера реализации многотактной схемы по
рис. 94 с описанием действий, выполняемых каждым блоком.
3. Вариант выполнения задания с описанием каждого действия по
каждой команде.
Самостоятельная работа №8
Изучение работы таймеров и реализация временных
зависимостей
Задание 1. Разработать и реализовать схемы управления всеми видами таймеров (по аналогии для схемы управления SE (см. рис. 96) для
таймеров SP, SS, SF, SD) и провести исследование их работы на различные комбинации команд запуска и сброса. По результатам исследований
составить подробные временные диаграммы их работы.
Задание 2. Реализовать схему генератора импульсов и провести
исследования его работы. Дополнить диаграмму его работы (см. рис. 99)
другими его возможными состояниями, выявленными в результате исследования.
Задание 3. Реализовать циклическую схему управления для реализации временных последовательностей, заданных диаграммой по вариантам.
Для всех вариантов задана временная диаграмма формирования
выходных сигналов L1-L4. Работа схемы должна быть осуществлена как
в прямом времени формирования сигналов (по диаграмме слева направо),
так и в обратом (по диаграмме справа налево). Направление работы схемы должно выбираться переключателем. Этим же переключателем должен осуществляться первоначальный запуск схемы.
152
Вариант 1
Цикл работы
L1
t
L2
t
L3
t
L4
t
Вариант 2
Цикл работы
L1
t
L2
t
L3
t
L4
t
Вариант 3
Цикл работы
L1
t
L2
t
L3
t
L4
t
153
Задание 4. Используя команды управления таймерами, разработать схему управления светофором на перекрестке. Обеспечить формирование сигналов светофора для двух режимов: режим «РАБОТА» –
обеспечивает управление светофором в режиме регулирования движения
на перекрестке; режим «ДЕЖУРНЫЙ» – обеспечивает формирование
только сигнала «мигающий желтый» – неактивное состояние светофора.
Переключение режимов должно обеспечиваться переключателем «Рабочий»–«Дежурный». Диаграмма работы светофора в двух режимах показана на рис. 105.
При реализации заданной схемы составить структурную схему
управления с указанием используемых битов для хранения промежуточных результатов вычислений.
К
Ж
З
Режим
«Дежурный»
Режим
«Работа»
Рис. 105. Временная диаграмма работы схемы управления светофором
Задание 5. Используя разработанную в задании 4 схему управления светофором разработать систему управления двумя светофорами по
ходу движения на двух перекрестках. Система управления должна обеспечивать работу светофором в двух режимах. Синхронный режим – сигналы на лампы светофоров приходят в одни и те же моменты времени;
режим зеленой волны – сигналы зажигания ламп сдвинуты относительно
друг друга на какое-то время, определяющее темп движения по дороге.
Переключение режимов обеспечивается переключателем «Синхронный»–«Зеленая волна». Кроме того, также должна обеспечиваться
работа светофоров в дежурном режиме.
Переход из синхронного режима работы в режим зеленой волны и
обратно осуществляется только вторым светофором (ведомым по отношению к первому – ведущему). В момент переключения режимов второй
светофор на некоторое время переключается в дежурный режим, дожидается включение «красного» сигнала первого светофора и, если необходимо, выполняет задержку по времени и начинает работать с «красного»
сигнала. Если задержки не требуется, то второй светофор начинает работать синхронно вместе с первым.
154
Общая структурная схема управления двумя светофорами приведена на рис. 106. Как видно из схемы, каждый из реализованных двух
светофоров имеет только один вход для сигнала управления, на который
поступает сигнал режима, в котором должен работать светофор. Логическая схема управления, исходя из условий на своем входе («Рабочий –
Дежурный», «Синхронный»–«Зеленая волна»), обеспечивает формирование двух сигналов управления светофором.
«Синхронный»
Логическая
схема
управления
«СВ1»
Светофор 1
К
режим
«Рабочий» «Дежурный»
Ж
«Зеленая
волна»
З
Светофор 2
К
режим
«Рабочий» «Дежурный»
Ж
«Дежурный»
«СВ2»
«Рабочий»
З
Рис. 106. Структурная схема управления светофорами
Временная диаграмма формирования сигналов логической схемы
показана на рис. 107. В табл. 23 приведены входные и выходные адреса
используемых сигналов светофора.
«Рабочий»
«Дежурный»
t
«Зеленая волна»
«Синхронный»
t
«СВ1»
«Таймер ЗВ»
«СВ2»
«Синхронизоция по
сигналу красного»
«Таймер ЗВ»
t
t
Рис. 107. Временная диаграмма работы логической схемы синхронизации
работы двух светофоров
155
Таблица 23
Адреса и обозначения переключателей и ламп светофора
Адрес
I0.0
I0.1
Q0.0
Q0.1
Q0.2
Q0.3
Q0.4
Q0.5
Обозначение
«Раб»-«Деж»
«ЗВ»-«Синх»
«Красный»
«Желтый»
«Зеленый»
«Красный»
«Желтый»
«Зеленый»
Команда
Кнопка режима «Рабочий»-«Дежурный»
Кнопка режима «Зеленая волна»-«Синхронный»
Светофор 1 сигнал «Красный»
Светофор 1 сигнал «Желтый»
Светофор 1 сигнал «Зеленый»
Светофор 2 сигнал «Красный»
Светофор 2 сигнал «Желтый»
Светофор 2 сигнал «Зеленый»
Порядок выполнения работы:
1. Каждую разработанную в соответствии с первым пунктом задания схему реализовать в отдельном блоке.
2. Для отладки и исследования работы каждой схемы использовать программу эмуляции PLCSIM и пульт-имитатор.
3. Реализовать схему варианта: составить структурную схему запуска таймеров) и по ней составить программу на языке LAD или STL.
После реализации и отладки задания варианта загрузить проект в контроллер и проверить его работу на пульте, подключенном к контроллеру.
Самостоятельная работа №9
Работа с математическими функциями
Задание. В соответствии с вариантом составить программу для
вычисления:
Вариант
1
2
3
4
Задание
Y := 130 + (-12)
Y := sin (1,7)
Y := (76 * 8 – 23 +56)
D := 12 >= 3
Y := tan (0,1)
Y := 12.0 / 2.0
Y := ln (3.1)
Y := 12 * 3 / 6
D := 87 <> 21
Y:=(13/8)^1,8
Y:=22hex or FFhex
Вариант
6
7
8
9
D:=12 <> 13
5
Y:=ABS(12,42+83)
Y:=(12*3) and (2*3)
D:=12,2 >= 19,3
Задание
D := 34.7 <= 23.9
Y := SQRT (4.0)
Y := 1.0e4 / 1.0e3
D := 6532456 <> 323272
Y := exp (-2.0)
Y := 25 mod 12
D := (12.0 / 2.0) <> (45 – 12)
D := 23.0 == 12.0
Y := (54 – 5) * (34 – 98)
Y:=128 ® BCD
Y:= 3 12,3
D:=(12 / 2) <> (44*0,2)
10
156
Y:=(32.3+ ln 3,4)
D:=(5,4*2,5) <= (35,6)
Y:=ln(5,1)+ sin (5,33)
5.6. Вопросы для самостоятельной подготовки
1. Назначение аккумуляторов процессора Simatic S7-300\400. Команды загрузки, выгрузки и передачи данных в аккумуляторах.
2. Каковы основные принципы реализации программных счетчиков в STEP 7? Поясните структуру слова счетчиков.
3. Каким образом происходит начальная установка счетчиков?
Приведите пример начальной установки и поясните содержания слова
счётчика при этом.
4. Как выделяются и используются отдельные биты слова счетчиков для реализации многотактных схем?
5. Приведите пример реализации многотактной схемы на счетчиках и поясните её работу.
6. Основные принципы реализации таймеров. Какие команды используются для управления таймерами?
7. Типы таймеров. Временные диаграммы работы таймеров.
8. Какую структуру имеет таймерное слово? Назначение полей
таймерного слова.
9. Приведите пример реализации генератора. Поясните принцип
работы схемы генератора.
10. Какие основные типы данных многобитных значений используются при организации вычислений.
11. Как задать тип значения при загрузке константы в аккумулятор?
12. Назначение команд обмена аккумуляторов. Приведите примеры команд и поясните выполняемые ими действия.
13. Поясните порядок загрузки данных в аккумуляторы и расположение данных при загрузке 8- и 16-битных величин.
14. Типы арифметических операций. Форматы выполнения арифметической операции. Пример выполнения арифметической операции.
15. Приведите примеры выполнения арифметической операции над
целыми значениями и значениями с плавающей точкой, заданных в виде
констант.
16. Операции сравнения. Типы операций. Пример выполнения
операции сравнения.
17. Назначение и типы функций побитового сдвига. Приведите основные типы таких функций.
18. Назначение и типы функций логических операций над словами.
Определите назначение этих функций и приведите примеры их реализации.
19. Поясните назначение функций преобразования форматов. Приведите примеры преобразования и поясните полученный результат.
157
6. СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ
6.1. Блоки данных, функциональные блоки и функции
6.1.1. Блоки данных
Блоки данных (DB) используются для хранения данных (переменных и констант) и занимают пространство в памяти CPU. Формат сохраняемых данных может быть бит, байт, слово и двойное слово. Данные,
сохраненные в блоке данных, могут принимать участие во всех операциях с этими типами.
Так же как и любая переменная, блок данных и сами данные в этом
блоке могут иметь символическое имя.
Существует два различных варианта блоков данных в зависимости
от их содержания и назначения:
– Глобальные блоки данных («Shared») – содержат информацию,
которая доступна всем логическим блокам программы.
– Блоки-экземпляры («Instance») – всегда связаны с конкретным
функциональным блоком FB. Данные каждого такого DB могут использоваться только соответствующим FB.
Для создания блока данных в текущем проекте щелчком правой
кнопки мыши в разделе «Blocks» проекта в Simatic Manager вызвать контекстное меню (рис. 108), в котором выполнить команду «Insert New
Object» ® «Data Block», и в появившемся окне свойств создаваемого
блока данных задать номер (имя) блока и его тип («Name and type»).
Рис. 108. Создание нового блока данных
Для создания глобального блока следует в свойствах DB выбрать
«Shared», а для экземплярного – «Instance». Также можно указать симво158
лическое имя и комментарий к блоку данных («Symbolic Name», «Symbol
Comment»).
Если был создан блок данных глобального типа, то после его открытия его следует заполнить переменными, используемыми в управляющей программе.
В таблице данных следует вводить уникальные (неповторяющиеся) элементы данных. Чтобы сделать это, нужно выбрать первую свободную строку в столбце «Name» (Имя) и ввести описание элемента. К другим столбцам – Type (Тип), Initial Value (Начальное значение) и Comment
(Комментарий) можно перейти, используя табуляцию или щелчком мыши.
Пример заполнения таблицы глобального блока данных показан на
рис. 109.
Значение столбцов следующее:
Address – адрес первого байта области памяти, занимаемой переменной, формируется автоматически.
Name – символьное имя элемента.
Typе – тип данных (тип выбирается с помощью правой кнопки
мыши).
Initial Value – начальное значение для элемента. Если значение не
указано, то в качестве начального значения принимается ноль.
Comment – комментарий для элемента данных (не обязательно).
Рис. 109. Таблица глобального блока данных
После заполнения блока данных его следует сохранить на жестком
диске, нажав иконку с дискетой. Для доступа к переменным, хранящимися в блоке данных, его, так же как и логические блоки (OB, FC, FB), следует загрузить в CPU.
Для контроля текущего значения переменных в блоке данных
надо переключиться в режим просмотра данных через главное меню
«View» ® «Data View», а затем перейти в режим мониторинга
«Debug» ® «Monitor» (постоянное отображение действительных значе159
ний DB в CPU). Для обратного переключения отключают режим мониторинга, а затем переходят в режим редактирования через команду главного меню «View» ® «Declaration View».
Адресация блока данных осуществляется побайтно, так же как адресуется маркерная память. Можно загружать и копировать байты данных (аббревиатура DBB), слова (DBW) и двойные слова (DBD). Для адресации отдельных битов используется аббревиатура DBX.
Перед обращением к блоку данных его требуется открыть командой «ОPN DB<номер блока>». Если другой глобальный блок данных был уже открыт, то он автоматически закрывается. Если для DB
в таблице символов было определено символьное имя (например,
«Values»), то блок данных также может быть открыт с помощью команды OPN «Values».
Например, для обращения к переменной типа REAL, расположенной в блоке данных DB4 и начинающейся с адреса 4.0, и загрузки её в
аккумулятор АК1 (на рис. 102 такая переменная имеет символическое
имя «Filling_level_min») требуется выполнить такую последовательность
команд:
OPN DB4
L DBD 4
Также возможно использование совмещенных инструкций открытия блока данных и загрузки переменных.
Например, предыдущая последовательность команд может быть
заменена совмещенной командой:
L DB4.DBD 4
При попытке обращения к несуществующим в памяти CPU элементам или блокам данных и если не запрограммирован блок OB обработки ошибки, CPU переходит в режим STOP.
Максимальное количество блоков и максимальный размер одного
блока данных зависит от используемого CPU. Максимальная длина блока
составляет 8К для S7-300 и 64K для S7-400.
При создании экземплярного блока данных все поля его уже заполнены и полностью аналогичны заголовку функционального блока, с
которым связан экземплярный блок данных.
В большинстве случаев вносить какие-либо изменения в экземплярный блок данных нет необходимости.
Однако, если требуется установить значение переменной, которое
будет являться начальным значением при первом запуске блока, или значение переменной требуется поменять в ходе работы программы, то для
160
этого в экземплярных блоках данных предусмотрено поле «Actual value».
При запуске блока значения, указанные в этом поле, будут присвоены
переменным.
6.1.2. Функции и функциональные блоки
Для частого вызова различных частей программы можно использовать блоки с присвоением параметров (FC-функции и FB-функциональные
блоки), то есть, используя блоки FC и FB, можно организовать механизм
вызова подпрограмм.
Такой подход имеет следующие преимущества:
– программа (или ее часть) создается только однажды;
– блок хранится в памяти только в одном экземпляре с возможностью многократного вызова;
– блок может быть запрограммирован с использованием формальных параметров (вход, выход или двунаправленные параметры). Во время вызова блока формальным параметрам назначаются «реальные» адреса (действительные параметры).
Механизмы вызова блоков FC-функций и FB-функциональных
блоков и отличие их друг от друга показан на рис. 110.
ОВ1
ОВ1
call FC
FC функция
FB
call FB
Сохраняемые
переменные поля
stat
DB
аа)
б)
б
Рис. 110. Механизм вызова и работы функций
и функциональных блоков
Функции, в отличие от функциональных блоков, не позволяют сохранить промежуточные переменные и использовать их в дальнейших
вызовах подпрограммы. Сохранение промежуточных результатов вычислений функциональных блоков происходит в экземплярных блоках данных. Сохранение результата производится только для промежуточных
переменных, объявленных в поле stat.
161
Только наличие в заголовке функционального блока поля STAT
и связи этого поля с блоком данных отличает функциональный блок от
функции. Иногда функциональный блок также называют «функция с памятью».
Структурно функция и функциональный блок состоят из двух частей – заголовка и тела. В заголовке функции (функционального блока)
указываются все формальные переменные, с которыми будет работать
программа, расположенная в теле функции.
Формальные переменные в момент создания и описания не имеют
реального адреса. Адрес будет присвоен только после вызова функции,
когда формальным переменным будут сопоставлены фактические переменные. Использование реальных адресов в командах, расположенных в теле функции, недопустимо.
Пример заполнения заголовка функции показан на рис. 111. Там
же показаны возможные виды параметров. Входные параметры размещаются в разделе заголовка «in» (параметры KN1 и KN2), выходные – в
«out» (параметр Lamp).
Рис. 111. Пример заполнения заголовка функции FC1
(таблицы объявлений)
Если доступ к формальному параметру осуществляется в виде записи и чтения, то этот параметр должен быть двунаправленным, объявленным в разделе «in_out».
Если в результате работы функции есть необходимость использовать промежуточные переменные внутри текущего вызова функции, то
они должны быть объявлены в разделе TEMP.
В функциональных блоках также будет доступен раздел STAT для
размещения в нём переменных, результаты которых предполагается использовать в последующих вызовах функционального блока.
В таблице определений первоначально отведена только одна строка для каждого вида параметров. Если требуется несколько входных параметров, следует нажать клавишу «Enter» по окончании ввода первой
162
строки. Откроется дополнительная строка для этого вида параметра. После выбора строчки определения параметра также можно использовать
пункт контекстного меню New Declaration Row для вставки дополнительной строки.
При написании программы в теле блоков FB или FC перед именем
формального параметра следует ставить символ "#". Он указывает, что
это локальная переменная, которая определена в декларационной таблице
(заголовке) этого блока.
Если одно и то же имя было определено как глобальное (в таблице
символики) и как локальное (в таблице объявления переменных), редактор автоматически воспринимает его как локальную переменную. Если,
вопреки этому требуется использовать глобальную переменную, следует
заменить знак "#" на кавычки "".
После полного создания функции её следует сохранить и загрузить
в CPU процессора, только после этого она становится доступной для вызова. Для функциональных блоков дополнительно требуется создать
экземплярный блок данных, связанный с функциональным блоком.
Если было произведено изменение FB (в части параметров или
статических переменных), требуется снова сгенерировать экземпляр DB.
Для вызова функции и функционального блока используется команда CALL, например:
CALL FC1
После вызова этой команды появляется список формальных параметров, которым требуется присвоить фактические. Для приведенного
примера заголовка функции (см. рис. 111) вызов и присвоение фактических параметров может выглядеть следующим образом:
CALL FC 1
KN1 := I0.0
KN2 := I0.1
Lamp := Q0.0
Таким образом, формальным параметрам KN1, KN2, Lamp были
присвоены адреса из таблицы входных и выходных образов процесса
(I0.0, I0.1, Q0.0).
При организации вызова FC с параметрами необходимо обязательно присвоить все параметры блока.
Вызов функционального блока в целом похож на вызов функции.
Только дополнительно через запятую требуется указать имя экземплярного блока данных, с которым связан вызываемый функциональный
блок, например:
163
CALL FB 1 , DB2
in1 :=
ou1:=
В отличие от вызова функции, если формальным параметрам
функционального блока FB не присвоены фактические значения, то используются последние значения, сохраненные в DB.
Одним из важных достоинств функциональных блоков является
выполнение действий над различными наборами значений, хранящихся в
разных блоках данных DB, хотя экземпляр DB может относиться только
к одному FB, но вместе с тем один FB может вызываться в разные моменты времени с разными экземплярами DB. Это позволяет использовать
один алгоритм управления для различных устройств, каждое из которых
может требовать индивидуальной настройки. В этом случае настроечные
коэффициенты (например, регулятора) будут храниться для каждого объекта управления в индивидуальных блоках данных.
Ниже, в табл. 24, 25, приведены примеры заполнения блоков FC и
FB соответственно, предназначенные для расчета функции Y=X2+Z2 и
сохранения старого рассчитанного значения Y. Блоки имеют два входных
параметра – In_1 и In_2 – для приема значений X и Z, выходной параметр Rez – для возвращения рассчитанного результата Y.
Таблица 24
Пример заполнения блока функции FC для расчета
выражения Y=X2+Z2
OB1
Выполнение программы
In
in
out
temp
A I 0.0
FP M 0.0
= M 0.1
AN M 0.1
JC met1
Function FC10
Заголовок функции
In_1
INT
In_2
INT
Rez
INT
temp1 INT
L #In_1
L #In_1
*I
T #temp1
L #In_2
L #In_2
*I
L #temp1
+I
T #Rez
CALL FC 10
In_1 := IW 2
In_2 := IW 4
Rez := QW 0
met1: NOP 0
164
Таблица 25
Пример заполнения функционального блока FВ
для расчета выражения Y=X2+Z2
и возвращения результата предыдущего вычисления
OB1
Выполнение программы
Function Block FB10
Заголовок функции FB 10
In
In_1
INT
in
In_2
INT
out
Rez
INT
out
RezOld INT
stat
Oldval INT
temp
temp1 INT
A I 0.0
FP M 0.0
= M 0.1
AN M 0.1
JC met1
L #Oldval
T #RezOld
L #In_1
L #In_1
*I
T #temp1
L #In_2
L #In_2
*I
L #temp1
+I
T #Rez
T #Oldval
CALL FВ 10, DB 1
In_1 := IW 2
In_2 := IW 4
Rez :=
QW 0
RezOld := QW 2
met1: NOP 0
Функциональный блок также имеет выходной параметр RezOld
для выдачи рассчитанного ранее (при предыдущем вызове) значения Y.
В примере входные параметры считываются с числовых счетчиков, подключенных к модулю дискретного ввода (адреса IW2, IW4). Результат
выводится на числовой индикатор (QW0).
6.2. Организационные блоки (блоки OB)
Организационные блоки запускаются исключительно операционной системой контроллера. Запуск организационных блоков каждого типа происходит только после возникновения в системе определенных событий с учетом их приоритета. Приоритеты имеют значения от 0 до 28.
Самый низкий приоритет – нулевой, 28 – самый высокий приоритет.
165
Событиям запуска большинства типов организационных блоков
можно присвоить приоритет при конфигурировании контроллера, о днако для некоторых типов организационных блоков приоритеты фиксированы.
Блок циклического исполнения ОВ1 (Cycle Execution) запускается
операционной системой контроллера циклически и имеет самый низкий
(фиксированный) приоритет, поэтому может быть прерван любым другим событием и запуском любого другого блока ОВ в любое время.
Если при выполнении какого-либо организационного блока возникает событие с тем же приоритетом, то прерывание работы организационного блока не происходит, а запуск блока ОВ, соответствующего
этому событию, происходит последовательно, после завершения выполнения предыдущего. Общую структуру выполнения программы с вызовами организационных блоков можно представить примером, приведенным на рис. 112.
При возникновении прерывания операционная система сохраняет в стеках все регистры прерванного блока. Регистры восстанавливаются, когда операционная система продолжит выполнение прерванного блока.
Приоритет
12
OB35
RUN
OB10
OB1
OB1
OB10
OB1
OB1
OB12
2
OB12
OB1
1
Рис. 112. Пример организации выполнения программы с вызовами
организационных блоков разных приоритетов
(штриховая линия показывает задержку в выполнении блока)
Типы событий и соответственно типы организационных блоков,
запускаемых этими событиями, зависят от конкретной модели процессорного блока. Старшие модели процессорных блоков могут запускать
бóльшее количество ОВ. Единственным организационным блоком, запускаемым всеми моделями процессора, является блок ОВ1, в котором
содержится основная циклическая программа.
Организационные блоки содержат обычную управляющую программу, а также таблицу переменных (заголовок). Из любого организационного блока можно организовать доступ к ресурсам контроллера
166
(областям памяти, функциям, функциональным блокам, блокам данных и т.д.).
В табл. 26 приведены основные типы организационных блоков,
события, которые их запускают, и их возможные приоритеты.
Таблица 26
Список организационных блоков и их приоритеты
Типы организационных
блоков по выполняемым
действиям
Номера организационных блоков по приоритетам
1
ОВ запуска
Циклическое выполнения
программы
Прерывание по времени дня
2
3
Приоритеты
7–15
16
26
28
ОВ100-ОВ102 (запускаются без приоритета)
ОВ1
ОВ10
ОВ17
ОВ30
ОВ38
Циклические прерывания
ОВ20
ОВ23
Прерывания с задержкой
ОВ40
ОВ47
Прерывания от аппаратуры
Асинхронные ошибки
ОВ80–ОВ87
Синхронные ошибки
ОВ121, ОВ122 (приоритет тот же что и ОВ, который
прервался в результате ошибки)
1. ОВ запуска выполняются перед началом циклического выполнения программы после восстановления питания или изменения режима
работы (переключателем режима CPU или программатором). Запуску
соответствуют стартовые OB100, OB101, OB102. В этих блоках можно,
например, выполнить предварительные установки переменных в маркерной области.
2. Циклически выполняемая программа находится в организационном блоке OB1. После полного выполнения программы в OB1 возникает событие, которое начинает новый цикл с обновления областей отображения процесса и затем с первой инструкции OB1.
3. OB прерывания по времени дня выполняется в заданное время однократно или периодически каждую минуту, час, день, месяц или год. Используется, например, для сохранения результатов работы за рабочую смену.
4. Циклические прерывания. OB30–OB37 вызываются с заданными периодами, например, каждые 100 мс, начиная с момента запуска в
режиме «RUN» или «RUN-P». В этих организационных блоках, в частности, программируются блоки управления, в которых время является ар167
гументом, то есть для расчетов требуется отсчет реального времени или
определенный интервал дискретизации. К таким блокам относятся все
динамические блоки: интегрирование и дифференцирование сигналов,
формирование законов управления (ПИ- и ПИД-регуляторы), генераторы,
одновибраторы и т.д.
5. Прерывание с задержкой запускается после заданного события
в процессе управления. Спустя заданное время, после возникновения
прерывания вызывается OB20-ОВ23.
6. Прерывание от аппаратуры можно использовать для быстрой
реакции на события, возникающие в технологическом процессе. Быстрой
реакции обычно требуют аварийные события: выход сигнала за установленный диапазон, срабатывание аварийного датчика и т.д. Сразу после
внешнего события циклическая программа OB1 прерывается и выполняется программа обработки прерывания.
7. В OB ошибок можно определить, как должна вести себя система
при ошибке, например, если выходит из строя резервная батарея или возникает невыполнимая операция (например, деление на ноль).
6.2.1. Стартовые организационные блоки (ОВ100-ОВ102)
Стартовые прерывания формируются при запуске программы. Различают три типа стартовых прерываний, формирование которых зависит
от условий, при которых происходит запуск:
1. Полный рестарт.
2. Горячий рестарт (перезапуск).
3. Холодный рестарт.
Полный рестарт выполняется после загрузки процессора и при
включении его в работу. В зависимости от того, как произошло первое
включение, различают:
– полный ручной рестарт;
– полный автоматический рестарт.
Полный автоматический рестарт выполняется при включении питания контроллера. Полный автоматический рестарт выполняется при переводе переключателя режима из положения «STOP» в положение «RUN».
Полный рестарт выполняется всеми моделями процессора и при
этом запускается блок ОВ100. Тип полного рестарта (ручной или автоматический) сохраняется в переменной OB100_STRTUP.
При полном рестарте удаляются области отображения процесса и
несохраненные в перманентной области CPU таймеры, счетчики и маркеры. Программа OB1 запускается с первой инструкции.
Горячий рестарт может выполняться только процессорами семейства S7-400. События, приводящие к горячему рестарту, такие же, как
и для полного рестарта. Однако при этом все данные (маркеры, таймеры,
168
счетчики, области отображения процесса) сохраняются. Выполнение
программы возобновляется с точки, где произошла её остановка. Для
определения, какой тип рестарта будет выполнятся, в HW Configuration
при назначении параметров CPU в свойствах процессоров семейства S7400 следует выбрать свойство рестарта (на вкладке Sturtup) «Hot restart».
При перезапуске выполняется организационный блок ОВ101.
Холодный рестарт может выполняться только в старших моделях
процессоров семейств S7-300 (например, СРU 318-2DP) и в некоторых
моделях S7-400. Тип рестарта задается в HW Configuration при назначении параметров CPU. При холодном рестарте все маркеры, таймеры,
счетчики и области отображения процесса обнуляются. Блоки данных
сохраняют свои начальные значения, выполняется блок запуска ОВ 102.
Основная программа выполняется с первой инструкции OB 1.
6.2.2. Прерывания по времени дня (OB10-ОВ17)
Прерывания по времени дня используются для выполнения в заданное время программы, расположенной в OB 10-ОВ 17. Выполнение
происходит или только один раз в определенное время или периодически
(ежеминутно, ежечасно, один раз в день, один раз в неделю, раз в месяц,
раз в год), начиная с определенного момента времени.
Конфигурирование прерывания по времени дня производится с
помощью «HW Config». Выбор, когда и как OB 10 – ОВ 17 должен быть
активирован, производится в диалоговом окне CPU -> Object Properties
-> закладка «Time-of-Day Interrupts» (рис. 113).
Рис. 113. Пример конфигурирования прерываний по времени дня
169
6.2.3. Циклические прерывания (OB30-ОВ38)
Циклические прерывания используются для выполнения организационных блоков через фиксированные интервалы времени. Количество
циклических прерываний, формируемых процессором, и их номер зависят от конкретной модели процессорного модуля.
Например, циклическим прерыванием для всего семейства процессоров S7-300 является блок OB 35. По умолчанию интервал вызова OB 35
равен 100 мс. В PLC S7-400 имеется до девяти различных OB циклических прерываний (с OB 30 до OB 38).
Период вызова организационного блока циклических прерываний
можно задавать в пределах от 1 мс до 1 мин. Пример конфигурирования
блока ОВ35 приведен на рис. 114.
Рис. 114. Пример конфигурирования циклических прерываний
и принцип их формирования
Для активизации циклического прерывания достаточно создать
циклический организационный блок, исполнение которого поддерживается процессором, и загрузить его в CPU. Операционная система циклически вызывает OB через определенное (заданное) время.
Если циклический организационный блок еще выполняется, а
операционная система уже сформировала прерывание для его нового
вызова, то происходит асинхронная ошибка и вызывается блок ОВ80.
170
Для исключения таких ситуаций требуется, чтобы заданный интервал
вызова циклического блока был больше, чем время, необходимое для его
выполнения.
Циклические прерывания конфигурируются с помощью
«HW Config». Диалоговое окно располагается CPU -> Object Properties
-> закладка «Cyclic Interrupt» (см. рис. 114).
6.2.4. Прерывание от аппаратуры (OB 40–ОВ 47)
Вызов организационных блоков ОВ 40–ОВ 47 производится, если
в модулях контроллера произойдет заранее определенное событие.
Для прерываний, формируемых сигнальными модулями SM, таким
событием может быть принятие дискретным сигналом недопустимого
значения (прерывание формируется как реакция на передний или на задний фронт дискретного сигнала) или выход входного аналогового сигнала за установленный диапазон.
Определение номера контролируемого сигнала и условий формирования прерывания (или диапазона изменения сигнала) производится
при конфигурировании сигнального модуля в диалоговом окне определения его свойств.
В примере, приведенном на рис. 115, указанные значения предельных величин определены для модуля аналогового ввода. Если измеренная величина превышает заданный предел, вызывается OB40.
Рис. 115. Пример конфигурирования модуля аналогового ввода
171
6.2.5. Прерывание с задержкой (OB20–ОВ23)
Для точного отсчета интервалов времени в управляющей программе можно воспользоваться функциями самой операционной системы, с помощью которой можно организовать формирование событий через определенное время. Для этих целей существует три основные системные функции:
 SFC32 – активизирует организационный блок и устанавливает величину времени задержки (символическое имя SRT_DINT);
 SFC33 – отмена прерывания с задержкой (символическое
имя CAN_DINT);
 SFC34 – запрос состояния прерывания с задержкой (символическое имя QRY_DINT).
Сформированные этими функциями события используются для запуска организационных блоков ОВ20–ОВ23.
Для активизации организационного блока и установки величины
времени задержки функция SFC32 содержит следующие параметры:
1. OB_NR = Номер OB, который должен выполниться через задержку времени.
2. DTIME = Время задержки (от 1 до 60000 мс).
3. SIGN = Определяемый пользователем идентификатор.
4. RET_VAL = Код ошибки для случая, если возникнет ошибка во
время выполнения OB прерывания по задержке.
После вызова системной функции SFC32 через заданное время
операционная система сформирует прерывание, по которому запустится
один из запрограммированных блоков ОВ 20–ОВ 23.
В качестве примера ниже приведён ОВ1 с программой формирования задержки прерывания с помощью функции SFC 32 и вызова организационного блока ОВ20 и сам организационный блок ОВ20.
OB 1
Network 1
A I
0.0
FP M 0.0
= M 0.1
A M
0.1
JCN M1
OB 20
Network 1
AN Q 0.0
= Q 0.0
CALL "SRT_DINT"
OB_NR :=20
DTIME :=T#10S
SIGN :=W#16#3
RET_VAL:=MW100
M1: NOP 0
172
Network 2
A
I 0.1
FP M 0.0
=
M 0.1
A
M 0.1
JCN M2
CALL "CAN_DINT"
OB_NR :=20
RET_VAL:=MW104
M2: NOP 0
Network 3
CALL "QRY_DINT"
OB_NR :=21
RET_VAL:=MW102
STATUS :=MW4
Активизация и контроль за выполнением прерывания происходит
следующим образом. При нажатии кнопки с адресом I0.0 выполняется
функция SFC32 и формируется прерывание задержки (операционная система запускает таймер).
Функция SFC 34, устанавливая бит 2 слова MW4, контролирует,
что прерывание сформировано и идет отсчет времени.
При нажатии кнопки с адресом I0.1 выполняется функция SFC33 и
отсчет времени прекращается (таймер сбрасывается), прерывание не
формируется.
6.2.6. Прерывания асинхронных ошибок (OB80–OB87)
Асинхронные ошибки рассматриваются как отказ или ошибка работы аппаратуры контроллера (неисправность модуля контроллера). Так
как неисправность модуля контроллера может произойти в любой момент времени, то есть асинхронно относительно выполнения программы,
то такие ошибки не могут быть отслежены в каком-либо организационном блоке. Прерывания, вызванные ошибками, приводят к запуску и исполнению организационных блоков ОВ 80–ОВ 87.
События запуска соответствующего организационного блока имеют самый высокий приоритет 26/28, поэтому организационные блоки
обработки асинхронных ошибок запускаются сразу, без задержки на обработку других блоков.
Виды асинхронных ошибок и соответствующие запускаемые организационные блоки приведены в табл. 27.
173
Таблица 27
Виды типов асинхронных ошибок, примеры их возникновения
и запускаемые ими организационные блоки
Запускаемый
организационный Приоритет
блок
Тип ошибки
Пример причины
возникновения ошибки
Ошибка времени
Превышено максимальное
время цикла
ОВ80
Неисправность
питания
Неисправность батареи
ОВ81
Диагностическое
прерывание
Вставка/удаление
модуля
Ошибка в функционировании процессорного модуля
Ошибка в выполнении системных операций
Ошибка стойки расширения
Ошибка связи
Обрыв провода
на входе модуля с внутренней диагностикой
Удаление сигнального модуля во время работы CPU
ОВ82
ОВ83
Неправильный уровень
сигнала в интерфейсе MPI
ОВ84
Ошибка в обновлении таблиц отображения процесса
ОВ85
Неисправность блока питания в стойке расширения
Ошибка чтения фрагмента
сообщения по сетевому
интерфейсу
26
26/28
ОВ86
ОВ87
Например, прерывание OB82 при асинхронной ошибке вызывается
при следующих ситуациях:
1. Обрыв провода в модуле с внутренней диагностикой.
2. Неисправность питания в модуле аналогового ввода.
3. Превышен диапазон измерения в модуле аналогового ввода и т.д.
Если ошибка обнаруживается в режиме исполнения программы
(режим «RUN») и запрограммирован соответствующий этой асинхронной
ошибке организационный блок, то вызывается и выполняется программа,
записанная в нем. Эта программа может, например, содержать:
1) инструкции для включения сирены;
2) инструкции для копирования и сохранения данных с последующей инструкцией перехода в режим «STOP»;
3) программу устранения ошибки, не вызывая перехода CPU в режим «STOP» (например, подключения резервной батареи).
Если организационный блок для соответствующей ошибки не был
создан или не загружен в процессор (то есть ошибка не была обработана)
или ошибка не была устранена при выполнении этого организационного
блока, то CPU автоматически переходит в режим «STOP».
174
6.2.7. Прерывания синхронных ошибок
Синхронные ошибки появляются по мере выполнения программы.
Типы синхронных ошибок, примеры их возникновения и запускаемые
организационные блоки приведены в табл. 28.
Например, вызвав незагруженную в CPU функцию или функциональный блок, запустится ОВ121. Если командой прямого обращения к
модулю ввода-вывода (например, команда PIW) обратится по несуществующему адресу, запустится ОВ122.
Сами организационные блоки в этот момент должны быть загружены
в СPU. В противном случае процессор перейдет в состояние «STOP».
Таблица 28
Виды типов синхронных ошибок, примеры их возникновения
и запускаемые ими организационные блоки
Тип синхронной
ошибки
Запускаемый
Пример причины
организационный
возникновения ошибки
блок
Ошибка выполВ программе вызван
нения программы блок (например,
функция), который не
был загружен в CPU
Ошибка доступа
к модулю
В программе адресуется
модуль, который или
неисправен, или отсутствует (например, прямой доступ к несуществующему модулю
I/O)
Приоритет
ОВ121
ОВ122
Тот же, что и у
организационного
блока, который
прервался
в результате
ошибки
6.3. Стандартные библиотеки. Использование
системных функций
Библиотеки используются для постоянного хранения многократно
используемых компонентов программ, таких как функции (FC), функциональные (FB) и организационные (OB) блоки и блоки данных (DB).
Различают пользовательские и стандартные библиотеки. Пользовательские библиотеки содержат компоненты программ, которые помещены в них самим пользователем или сторонним разработчиком.
Стандартные библиотеки входят в состав самого пакета Simatic
Manager STEP7. При установке Step7 устанавливаются две стандартные
библиотеки: «Standard Library V3.x» и «stdlibs».
Для компонентов программ, помещенных в библиотеку, доступны
те же функциональные возможности, что и компонентов, созданных в
175
проекте, за исключением пошаговой отладки. Компоненты программ могут быть скопированы из существующих проектов в библиотеку или же
они могут быть созданы непосредственно в библиотеке, независимо от
проектов. Также библиотечные компоненты могут быть защищены от
просмотра и редактирования.
Открыть библиотеку можно, используя команду «File®Open» или
соответствующую иконку в Toolbar . Появится окно диалога, в котором
можно выбрать нужный проект или библиотеку (рис. 116).
Рис. 116. Открытие библиотеки
и содержание стандартной библиотеки
Наибольшее количество компонентов программ содержит стандартная библиотека «Standard Library V3.x». Компоненты разбиты на
группы по назначению и выполняемым функциям. Имеются следующие
группы компонентов:
1. Communication Blocks: содержит функции для подключения
модулей распределенного ввода-вывода при использовании коммуникационных процессоров связи с сетью Profibus.
2. IEC Converting Blocks: содержит функции для преобразования
типов данных, сравнения и действий над величинами различных типов.
3. Organization Blocks: содержит все организационные блоки
S7-300/400, что позволяет добавлять их в проект непосредственно из
библиотеки.
4. PID Control Blocks: содержит блоки PID-управления различных
типов.
176
5. S5-S7 Converting Blocks: содержит блоки, которые требуются
при преобразование данных из STEP5 в STEP7.
6. System Function Blocks: содержит все системные функции процессоров S7-300/400.
7. TI-S7 Converting Blocks: содержит различные стандартные
функции, например масштабирование аналоговых величин, и т.д.
8. Miscellaneous Blocks: содержит функции работы с датами и
временем.
В большинстве случаев работа с библиотечными функциями ничем не отличается от работы с обычными функциями, созданными в проекте. Выбранная в библиотеке функция добавляется в проект, который
после этого должен быть полностью загружен в контроллер.
Исключением из этого правила являются системные функции.
Этот тип функций является частью операционной системы контроллера,
и, соответственно, эти функции всегда находятся в памяти контроллера.
Действия, выполняемые системными функциями, определены возможностями операционной системы и значительно превышают те, которые могут быть выполнены инструкциями STEP7.
6.3.1. Системные функции и функциональные блоки
(System Function Blocks)
Системные функции интегрированы в операционную систему CPU
и вызываются в программе пользователя инструкциями CALL SFC или
CALL SFB. Для блоков SFB также необходимы связанные блоки данных.
Системные функции не могут быть выполнены инструкциями STEP 7.
Возможность использования системной функции зависит от программируемого логического контроллера (S7-300/S7-400) и используемого типа CPU. Просмотреть содержащиеся в CPU контроллера системные
функции можно в открытом проекте, переведя его в состояние связи с
контроллером командой «View®Online». На рис. 117 показано содержимое папки «Blocks» окна проекта.
Все системные блоки защищены от просмотра, поэтому если попытаться прочитать их, то отобразится только описательная часть с входными, выходными параметрами и параметрами ввода-вывода.
В системах S7-300 и S7-400 системные блоки имеют одинаковый
номер, выполняемую функцию и одинаково вызываются.
Для системных функциональных блоков (SFB) требуется создать
экземпляр блока данных DB, который в отличие от SFB требуется загрузить в память контроллера.
Для добавления вызовов блоков SFB, SFC в программе пользователя следует открыть библиотеку в панели элементов языка LAD, STL,
выбрать Network программы, в который предполагается добавить функцию, как показано на рис. 118, и два раза щелкнуть кнопкой мыши на
названии функции.
177
Рис. 117. Отображение системных функций CPU в режиме ONLINE
Рис. 118. Доступ к библиотеке в редакторе программы
В табл. 29 представлен весь возможный перечень системных
функций и функциональных блоков и выполняемые ими действия для
S7-300/400.
178
Таблица 29
Перечень системных функций (SFB)
и системных функциональных блоков (SFC)
Функциональная группа
Выполняемая функция
Блок
Перенос блока
SFC 20
Заполнение массива
SFC 21
Копирование Создание блока DB
SFC 22
и блоковые Удаление DB
SFC 23
функции
Тестирование DB
SFC 24
Сжатие
SFC 25
Замена значения в ACCU 1
SFC 44
Прерывание для мультикомпьютинга SFC 35
Управление Повторный запуск времени цикла
SFC 43
программой Перевод CPU в STOP
SFC 46
Задержка обработки
SFC 47
Установка времени
SFC 0
Управление
Чтение времени
SFC 1
часами
Синхронизация
SFC 48
Установка счетчика
SFC 2
Управление
Запуск и останов
SFC 3
счетчиком
Считывание счетчика
SFC 4
времени
Чтение системного времени
SFC 64
Запись динамических параметров
SFC 55
Передача Запись фиксированных параметров SFC 56
наборов дан- Параметризация модулей
SFC 57
ных
Запись набора данных
SFC 58
Чтение набора данных
SFC 59
Установка прерывания
SFC 28
Прерывания Отмена прерывания
SFC 29
по времени Активация прерывания
SFC 30
Опрос
SFC 31
Запуск
SFC 32
Прерывания
Отмена
SFC 33
с задержкой
Опрос
SFC 34
Маскирование ошибок
SFC 36
Синхронные
Демаскирование
SFC 37
ошибки
Чтение регистра состояний
SFC 38
Блокировка новых прерываний
SFC 39
Ошибки пре- Разрешение новых прерываний
SFC 40
рываний и
Задержка обработки новых прерываний SFC 41
асинхронные Разрешение прерываний с высшим SFC 42
приоритетом
179
S7300
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
S7400
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Окончание табл. 29
Функциональная группа
Выполняемая функция
Блок
Чтение стартовой информации
SFC 6
Чтение состояния системы
SFC 51
Запись в диагностический буфер
SFC 52
Актуализация области PII
SFC 26
Отображение
Актуализация области PIQ
SFC 27
процесса для
Установка битового массива
SFC 79
области I/O
Очистка битового массива
SFC 80
Определение логического адреса
SFC 5
Адресация
Определение слота
SFC 49
модулей
Определение всех логических адресов SFC 50
Прерывание от процесса
SFC 7
Децентрали- Синхронизация DP-Slaves
SFC 11
зованная пе- Чтение данных диагностики
SFC 13
риферия
Чтение данных
SFC 14
Запись данных
SFC 15
Передача
Передача GD пакета
SFC 60
глобальных
Прием GD пакета
SFC 61
данных
Опрос состояния
SFC 62
Передача без координации
SFB 8
Прием без координации
SFB 9
Передача блока
SFB 12
Обмен
Прием блока
SFB 13
данными чеЧтение данных из удаленного CPU SFB 14
рез SFB, конЗапись данных в удаленный CPU
SFB 15
фигурируеПередача данных на принтер
SFB 16
мые соединеВыполнение полного рестарта
SFB 19
ния
Перевод в стоп удаленный CPU
SFB 20
Выполнение повторного пуска
SFB 21
Опрос состояния удаленного CPU
SFB 22
Прием состояния удаленного CPU
SFB 23
Расширенная передача данных
SFC 65
Обмен
Расширенный прием данных
SFC 66
данными че- Расширенный прием данных
SFC 67
рез SFC,
Расширенная запись данных
SFC 68
неконфигури- Отмена расширенных соединений
SFC 69
руемые
Внутренний прием данных
SFC 72
соединения
Внутренняя запись данных
SFC 73
Отмена внутренних соединений
SFC 74
Системная
диагностика
180
S7300
X
X
X
X
X
X
X
X
X
-
S7400
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
В качестве примера вызова системной функции рассмотрим вызов и
использование системных функций: SFC 22 – «Создание блока данных»;
SFC 52 – «Запись сообщений в диагностический буфер»; SFC 64 – «Считывание системного времени».
6.3.2. Создание блока данных DB (SFC 22)
Функция SFC 22 создает новый глобальный блок данных в памяти
CPU. Вид функции в виде блока языка LAD представлен на рис. 119.
В табл. 30 приведено описание входов-выходов функции.
Рис. 119. Вид блока функции SFC 22 «Создание блока данных»
Таблица 30
Описание входов-выходов функции SFC 22 «Создание блока данных»
Объявления
Тип
данных
LOW_LIMIT
INPUT
WORD
UP_LIMIT
INPUT
WORD
COUNT
INPUT
WORD
RET_VAL
OUTPUT
INT
Параметры
DB_NUMBER OUTPUT
WORD
Область
памяти
I, Q, M, D, L,
Const
I, Q, M, D, L,
Const
Описание
Наименьший номер
DB
Наибольший номер
DB
Кол-во байт в блоке
I, Q, M, D, L, (здесь должно быть
Const
определено четное
число)
Информация об
I, Q, M, D, L
ошибке
Номер созданного
DB, лежит между
I, Q, M, D, L
LOW_LIMIT и
UP_LIMIT
181
Каждый вызов системной функции создает очередной блок данных
с номером, лежащим в диапазоне между LOW_LIMIT и UP_LIMIT.
Системная функция SFC 22, используя параметр #RET_VAL,
обеспечивает следующие сообщения об ошибках:
 W#16# 0000 – Нет ошибок.
 W#16# 80A2 – Неправильная длина блока.
 W#16# 80B1 – Нет доступного номера DB (DB уже существует).
 W#16# 80B2 – Недостаточно памяти.
 W#16# 80B3 – Недостаточно непрерывной памяти.
Для того чтобы убедится, что блок данных создан, необходимо
открыть проект и связать его с контроллером в режиме ONLINE (см.
рис. 119). В некоторых случаях требуется обновить данные в окне клавишей F5.
После создания глобального блока данных работа с ним никак не
отличается от работы с заранее созданным блоком данных. Однако задача проверки наличия блока полностью должна выполняться пользовательской программой.
6.3.3. Запись сообщения в диагностический буфер (SFC 52)
Функция SFC 52 производит запись сообщений в диагностический
буфер. Вид функции в виде блока языка LAD показан на рис. 120. В
табл. 31 приведено описание входов-выходов функции.
Параметр EVENTN содержит идентификационный номер (так
называемый ID) события, которое инициировало запись в диагностический буфер. Каждому событию приписан определенный идентификационный номер ID. Большинство событий генерируются непосредственно
системой, и идентификаторы этих системных событий не могут быть использованы для передачи сообщения в диагностический буфер.
Рис. 120. Вид блока функции SFC52
«Запись сообщений в диагностический буфер»
182
Таблица 31
Описание входов-выходов функции SFC 52
«Запись сообщений в диагностический буфер»
Парамет- Объявлеры
ние
SEND
Тип
данных
Область
памяти
I, Q, M, D, L,
Const
INPUT
BOOL
EVENTN INPUT
WORD
I, Q, M, D, L,
Const.
INFO1
INPUT
WORD
I, Q, M, D, L
INFO2
INPUT
DWORD
I, Q, M, D, L
INT
I, Q, M, D, L
RET_VAL OUTPUT
Описание
Разрешение посылки
пользователя сообщения
Номер или тип
события (идентификатор
события)
Дополнительная
информация
Дополнительная
информация
Код ошибки
В программе можно использовать только пользовательские события. Различают стандартные и свободные пользовательские события.
Стандартные события определяют практически весь спектр возможных
событий, происходящих в системе управления, например: срабатывание
концевых выключателей (W#16#9031, W#16#9033), выбор режима работы контура авт./руч. (W#16#9001, W#16#9101) и т.д. Диапазон идентификаторов стандартных пользовательских событий составляет от
W#16#9000 до W#16#91F3.
Более подробная информация о системных и пользовательских событиях представлена в документации Siemens «Системное программное
обеспечение S7 300/400. Системные и стандартные функции. Приложение С. Номер документа С79000-G7000-C503-01».
Также можно создать свое событие, выбрав его ID из свободных.
Диапазон свободных пользовательских идентификационных номеров
лежит в области от W#16#A000 до W#16#BFFF.
Для доступа и просмотра диагностического буфера следует открыть станцию в режиме связи с контроллером ONLINE и выполнить
команду
открытия
диагностического
буфера
«PLC®Module
Information®Diagnostic Buffer» из редактора программ или утилиты
конфигурирования аппаратной части. Вид окон при вызове функции буфера обмена из утилиты конфигурирования аппаратной части показан на
рис. 121.
Следует учитывать, что обновление в окне диагностического буфера происходит с некоторой задержкой, поэтому следует выполнять
принудительное обновление кнопкой «Update» или клавишей «F5».
183
Рис. 121. Вид окна диагностического буфера
Системная функция SFC 52, используя параметр #RET_VAL,
обеспечивает следующие сообщения об ошибках:
8083 – Недопустимый тип данных INFO1.
8084 – Недопустимый тип данных INFO2.
8085 – Недопустимый код EVENTN.
8086 – Недопустимая длина INFO1.
8087 – Недопустимая длина INFO2.
8091 – Идет запись в диагностический буфер.
8092 – Пересылка в данный момент невозможна (буфер пересылки
заполнен).
6.3.4. Считывание системного времени SFC 64
Функция SFC 64 считывает системное время CPU. Системное время подсчитывается системным счетчиком циклически, начиная с 0 до
максимума 2147483647 ms. Системное время рассчитывается с точностью
1 ms в CPU S7-400 и с точностью 10 ms в CPU S7-300.
184
При включении контроллера отсчет системного времени начинается заново. При переводе CPU в режим «STOP» счетчик системного времени приостанавливается и сохраняет отсчитанное значение.
При выполнении «Hot restart» (кроме S7-300 и S7-400H) отсчет
продолжается с сохраненного значения. При выполнении «Warm» или
«Cold restart» отсчитанное значение удаляется, и подсчет начинается с нуля.
SFC 64 возвращает единственный параметр типа «DWORD», который содержит в формате «Integer» отсчитанное число ms. Пример вызова
функции по нажатию на кнопку с адресом «I 0.0» показан на рис. 122.
Рис. 122. Пример вызова SFC 64 для сохранения
системного времени в MD10
6.4. Использование мультиэкземплярной модели данных
для организации программы управления однотипными объектами
Часто технологический процесс состоит из однотипных, часто повторяющихся частей, например: несколько конвейеров, несколько печей
и т.д. В таком случае в управляющей программе целесообразно создать
для повторяющейся части процесса функциональный блок и использовать его для управления всеми однотипными процессами, вызывая его
многократно.
Однако в этом случае для каждого блока FB должен быть создан
свой блок данных. Количество таких блоков данных должно соответствовать числу однотипных процессов, которые управляются одним функциональным блоком. Структурная схема управляющей программы в этом
случае будет иметь вид, показанный на рис. 123, а.
При большом количестве однотипных процессов объем памяти,
отведенный для хранения блоков данных, может оказаться недостаточным. Кроме того, большое количество блоков данных значительно
усложняет структуру проекта, делая её менее читабельной.
185
DB1
DB10
Мультиэкземплярный
блок данных
Блок данных
Тип FB1
FB1
Заголовок блока
Тип FB1
Локальные
переменные
FB10
Тело блока
Заголовок блока
Локальные
переменные
Тип FB1
Тип FB1
Тело блока
DB N
Блок данных
Вызов
экземпляра
блока FB1
FB1
Вызов
экземпляра
блока FB1
Заголовок блока
Локальные
переменные
FB1
Тело блока
Заголовок блока
Локальные
переменные
а)
Тело блока
а
б
Рис. 123. Структура управляющей программы:
а – с обычным вызовом функциональных блоков;
б – с использованием мультиэкземплярной модели данных
Решить все эти проблемы позволяет использование мультиэкземплярной модели данных, в которой для управления всем набором однотипных процессов требуется создание только одного блока данных. В
этом блоке данных будут храниться данные всех экземпляров вызванного
функционального блока.
Для создания такой модели блока данных достаточно организовать
вызов множества экземпляров функционального блока низшего уровня
иерархии (используемого для управления одной частью процесса) внутри
другого функционального блока более высокого уровня (должен иметь
номер больший, чем у FB низшего уровня), для которого и создается мультиэкземплярный блок данных. Структурная схема управляющей программы в этом случае будет иметь вид, представленный на рис. 123, б.
186
Данные в мультиэкземплярном блоке данных разбиты по секциям.
Каждая секция хранит данные только своего процесса (своего вызова
функционального блока), и эти секции не пересекаются. Всей секции
присваивается тип данных, имя которого соответствует функциональному блоку, хранящему в этой секции свои данные. Кроме того, в таком
блоке данных допускается хранение локальных переменных самого
функционального блока, к которому «привязан» блок данных (в примере
на рис. 123, б это блок FB10).
Вложение блоков осуществляется следующим образом. В разделе
заголовка STAT (статические переменные) блока FB верхнего уровня
иерархии объявляется набор подпроцессов.
Объявление производится так же, как и для обычных переменных:
выбирается имя для каждого экземпляра подпроцесса, а в качестве типа
переменной указывается название функционального блока управления
подпроцессом.
Вызов функциональных блоков низшего уровня иерархии осуществляется командой CALL, а в качестве символического имени указывается имя экземпляра подпроцесса, и при этом функциональный блок не
указывается.
Модель мультиэкземпляров поддерживает концепцию объектноориентированного программирования. Код и данные, которые необходимы для управления частью процесса, сосредоточены в отдельном FB.
Если часть процесса, в свою очередь, также состоит из иерархических «подчастей», то эта структура тоже может быть отражена в программе пользователя посредством модели мультиэкземпляров, поскольку
STEP7 поддерживает глубины вложения блоков FB до 8-ми.
Чтобы использовать FB как мультиэкземпляр, необходимо
твердо придерживаться следующих принципов:
 При управлении процессом из FB недопустим никакой прямой
доступ к глобальным адресам. Каждый доступ к глобальному входу и
выходу нарушает возможность многократного использования.
 Связь FB-подпроцесса с процессом или с другими секциями программы управления более высокого уровня должна быть выполнена
только с использованием входных-выходных параметров FBподпроцесса. Только после того, как FB-подпроцесс интегрирован в единицу более высокого уровня (FB-управления), можно сделать «переназначения» через список параметров FB-управления при вызове FBподпроцесса.
 Состояния или другая информация относительно объекта, которым нужно управлять, должны «запоминатьcя» FB в собственных
статических переменных (раздел STAT заголовка).
187
6.4.1. Пример использования модели мультиэкземпляров
Рассмотрим использование модели мультиэкземпляров на примере
задачи организации генератора импульсов с шестью выходами, формирующего на этих выходах импульсы с периодом от 1 до 2 с, с шагом по
выходам 0,2 с.
В качестве генератора импульсов используем схему из подразд. 5.3,
рис. 98. Этот генератор состоит из двух однотипных таймеров, поэтому в
данном примере будет использоваться трехуровневая мультиэкземплярная модель данных, структурная схема которой представлена на рис. 124.
DB3
Мультиэкземплярный блок данных
Локальные
переменные
Тип FB2
Тип FB2
Тип FB1
Тип FB1
Тип FB1
Тип FB1
FB3
Заголовок блока
Локальные
переменные
Тип FB2
Тип FB2
Тело блока (генератор с 6 выходами)
Вызов
экземпляра
блока FB2
1
Вызов
экземпляра
блока FB2
6
FB2
Заголовок блока
Локальные
переменные
Тип FB1
Тип FB1
Тело блока (генератор)
Вызов
экземпляра
блока FB1
Вызов
экземпляра
блока FB1
FB1
Заголовок блока
Локальные
переменные
Тело блока (таймер)
Рис. 124. Структурная схема генератора,
построенная с использованием мультиэкземплярной модели данных
188
На нижнем уровне формируется функциональный блок (FB1) таймера. В качестве входных сигналов этого блока используется команда
запуска (IN) и время работы таймера (TV). Выходным сигналом является
импульс заданной длительности (OUT). Заголовок и тело программы для
реализации таймера приведены на рис. 125.
Заголовок:
Реализация:
Network 1
Network 2
A #IN
FP #M0
AN #Reset
= #M1
A #Reset
FP #M2
= #M3
A #M3
JC #MET3
CALL "TIME_TCK"
RET_VAL:=#MD10
L #MD10
L #TV
+D
T #MD20
SET
= #OUT
MET2: NOP 0
L #MD10
L #MD20
>=D
JC MET3
SET
A #OUT
AN #M1
JC MET2
A #M1
JCN MET1
JU MET1
MET3: NOP 0
CLR
= #OUT
MET1: NOP 0
Рис. 125. Заголовок и тело программы для реализации таймера
189
На втором уровне формируется функциональный блок (FB5) генератора импульсов. Входными сигналами блока являются запуск (перезапуск) генератора (S) и полупериод формирования импульсов на выходе
(TV). В разделе статических переменных объявлены timer 1 и timer 2 типа
FB1. После того как объявления были произведены, соответствующие
объекты появляются в разделе «Multiple instances». Заголовок и тело программы для реализации генератора приведены на рис. 126.
Заголовок:
Реализация:
Рис. 126. Заголовок и тело программы для реализации генератора
190
Генератор работает следующим образом. При наличии переднего
фронта по входу #S запускается timer 1. Запуск данного таймера происходит также по окончании работы timer 2, в случае если вход #S все еще
равен логической единице, timer 2 запускается по появлению заднего
фронта сигнала #out, являющегося выходом timer 1, #out также является
выходом генератора и определяет наличие импульсов.
На третьем (самом верхнем) уровне иерархии формируется функциональный блок генератора импульсов с шестью выходами. В качестве
входных сигналов используется сигнал запуска (перезапуска) всех внутренних генераторов и шесть входов, на которых задается период следования импульсов. Заголовок и тело программы для реализации генератора импульсов с шестью выходами приведены на рис. 127.
Заголовок:
Реализация:
Рис. 127. Заголовок и тело программы
для реализации генератора импульсов с шестью выходами
191
Для верхнего уровня иерархии создается мультиэкземплярный
блок данных (DB10).
Блок OB1 содержит вызов блока FB10 с созданным для него экземплярным блоком данных DB10. Для блоков FB1 и FB5 экземплярный
блок данных не создается. При вызове блока FB10 определяются все актуальные параметры (рис. 128).
Рис. 128. Программа OB1 вызова функционального блока
реализации генератора с шестью выходами
6.5. Стандартные блоки ПИД-регулятора
Библиотека стандартных функций микропроцессорного контроллера Simatic S7-300/400 содержит несколько стандартных функциональных блоков, реализующих ПИД-закон управления.
Использование того или иного стандартного блока ПИД-регулятора зависит от типа объекта управления и типа используемого исполнительного устройства.
Изучения работы блоков регуляторов и их применение рассмотрим
на примере типового контура регулирования.
6.5.1. Структура контура управления с ПИД-регулятором.
Основные особенности и характеристики
Структурная схема типового контура регулирования приведена на
рис. 129.
Типовой контур регулирования (стабилизации) технологического
параметра включает в себя:
1) датчик регулируемой величины (Д), который формирует электрический сигнал, пропорциональный текущему значению измеряемой
физической величины объекта управления (ОУ);
192
2) элемент сравнения (ЭС), который формирует сигнал разности
между заданной величиной технологического параметра и действительной величиной;
3) регулятор, формирующий по заданному закону управления
управляющий сигнал;
4) исполнительное устройство (ИУ), реализующее управляющий
сигнал на объекте управления.
Задание
Zз
Д
Zд
e
U
ПИД
регулятор
ЭС
Исполнительное
устройство
Регулируемый
параметр
технологического
процесса
X
Управляющее
воздействие
Объект управления
Рис. 129. Структурная схема типового контура
регулирования (стабилизации) технологического параметра
Величина регулируемого параметра ZД с датчика поступает на
элемент сравнения, куда также подается величина задания регулируемой
величины ZЗ. Элемент сравнения производит вычисления величины рассогласования контура регулирования:
  Z З  ZД .
Сигнал рассогласования поступает на регулятор, который в соответствии с ПИД-законом управления вычисляет управляющее воздействие U:
U  KP   +
t
1
d
   dt + TД  ,
TИ 0
dt
где Кр, Ти, Тд – настроечные параметры ПИД-регулятора; t – текущее
время.
Управляющее воздействие передается на вход объекта управления
исполнительным устройством. Для целей непрерывного регулирования
наиболее распространены два типа исполнительных устройств: пропор193
циональные исполнительные устройства, в которых выходной сигнал Х
пропорционален входному сигналу U, и исполнительные механизмы постоянной скорости, выходной сигнал которых пропорционален интегралу
входного сигнала, и может быть определен по формуле
t
X
1
 U dt ,
TM 0
где ТМ – величина, которая характеризует скорость перемещения вала
исполнительного механизма, численно равная времени перемещения вала
от 0 до 100% хода.
Для управления исполнительными механизмами постоянной скорости применяется метод импульсного управления путем формирования
импульсов «больше» и «меньше» для перемещения вала исполнительного механизма в соответствующую сторону. Отсутствие сигнала означает
остановку исполнительного механизма. В соответствии с этим управляющее воздействие U принимает значение {+1; 0; -1}. Для реализации импульсного управления по ПИД-закону управления используется широтно-импульсный модулятор (ШИМ).
Основной целью контура регулирования является компенсация возмущений, действующих на объект управления, то есть факторов, которые
стремятся вывести контур из состояния равновесия и привести к возникновению рассогласования (то есть к e ≠ 0). Основными возмущающими факторами, компенсируемыми типовым контуром регулирования, являются возмущение со стороны задания и возмущение со стороны нагрузки.
Возмущение со стороны задания возникает при изменении задания
контура, в этом случае величина рассогласования при ступенчатом изменении задания будет равна величине этого изменения. Изменение задания
чаще всего определяется технологическим процессом и производится
либо оператором, либо системой управления верхнего уровня.
Возмущение со стороны нагрузки, как правило, является случайным и возникает, если возмущающий фактор влияет на выходную величину контура Х (или на вход объекта).
Структурная схема системы автоматического регулирования с учетом возмущающих факторов, представленная с использованием типовых
звеньев, показана на рис. 130. Около каждого типового звена указана его
передаточная функция.
На этой структурной схеме объект управления представлен как последовательное соединение пропорционального звена с коэффициентом
передачи КОБ и двух инерционных звеньев первого порядка с постоянными
времени Т1 и Т2. Исполнительный механизм постоянной скорости представлен интегрирующим звеном с постоянной времени интегрирования ТИ.
194
Возмущение (со
стороны задания)
Регулирующий
орган
Х’’
Расходная
характеристика
Z
Объект управления
Х
Y=f(Х)
Z1
Y
1
T1P+1 t
tga=KОБ
Возмущение (со
стороны нагрузки)
1
T2P+1 t
Исполнительный
механизм
f
Х’
X
1
 U dt,
TM 0
Z2
=Z-Z2
ПИД - регулятор
t
Х’’=X’-f
ЭС
Z2
Z1
U
s
ШИМ
(ИКУ)
t

U
t
Рис. 130. Структурная схема системы автоматического
регулирования с учетом возмущающих факторов
Данная структурная схема описывает наиболее распространенные
непрерывные объекты промышленного производства.
В качестве примера такого объекта рассмотрим нагревательную
печь камерного типа, схема которой приведена на рис. 131.
Сигнал температуры
печи
Величина
задания
Управляющие
команды
«больше»,
«меньше»
Нагреватель
ная камера
ПИД
регулятор
Исполнительный
механизм
Горелка
ГАЗ
Заслонка регулирующий
орган
Нагреваемое
тело
Магистральный трубопровод
Датчик
температуры
Рис. 131. Схема системы управления камерной нагревательной печью
Нагревательная печь представляет собой камеру, футерованную
огнеупорным материалом. В качестве источника энергии используется
газообразное топливо, которое подается по трубопроводу в горелку. Температура камеры измеряется датчиком температуры. Расход газообразного топлива регулируется заслонкой, ось которой сочленена с исполнительным механизмом постоянной скорости. Команды управления
(«больше», «меньше») исполнительным механизмом формируются регу195
лятором по ПИД-закону в соответствии с сигналами действительной
температуры и задания.
Возмущениями по нагрузке, которые необходимо компенсировать
в таком объекте, будут являться: изменение калорийности топлива, давления в магистральном газопроводе, помещение в камеру нагревательной
печи массивного тела с температурой, отличной от температуры нагревательной печи, ручное изменение положения заслонки и т.д.
В любом случае это возмущение повлияет на температуру в камере
нагревательной печи. Тогда, в свою очередь, регулятор, стремясь поддержать заданную температуру камеры, начнет формировать команды
«больше» или «меньше», открывая или закрывая заслонку для изменения
расхода топлива и восстановления заданной температуры.
Графики переходных процессов (переходные характеристики)
в системе автоматического регулирования (с выхода объекта управления)
при действии возмущений со стороны задания и со стороны нагрузки
показаны соответственно на рис. 132, а, б. Там же показано определение
качественных показателей переходных процессов в системе.
TК=2/
Y(t)
YУСТ
A1
YMAX

tМАХ
tН
Y(t)
YМАХ
A3
0
0
t
TК=2/
t
tР
а
б
Рис. 132. Переходные процессы в системе автоматического
регулирования при действии возмущений:
а – со стороны задания; б – со стороны нагрузки
По переходным характеристикам системы автоматического управления определяются прямые показатели качества переходного процесса.
Наиболее часто используются следующие величины:
1. Время регулирования tР, в течение которого, начиная с момента
воздействия на систему, отклонение управляемой величины Y от ее
установившегося значения YУСТ будут меньше наперед заданной величины
. Обычно принимают, что по истечении времени tР отклонение управляемой величины от установившегося значения должно быть не более
=2,5%. Время регулирования характеризует быстродействие системы.
2. Перерегулирование s – максимальное отклонение YМАХ управляемой величины от установившегося значения, выраженное в процентах
от YУСТ. Абсолютное значение определяют из кривой переходного процесса YМАХ=YМАХ–YУСТ. Соответственно, перерегулирование
196
s
YMAX  YУСТ
 100% .
YУСТ
Значение величины перерегулирования характеризует колебательность переходного процесса.
3. Установившаяся ошибка УСТ – отклонение установившегося
значения выходной величины Y(t) от заданного значения YУСТ. При
наличии интегральной составляющей в контуре регулирования УСТ®0.
4. Время достижения первого максимума tМАХ.
5. Время нарастания переходного процесса tН – минимальное
время, за которое переходная характеристика пересекает уровень установившегося значения.
6. Период колебаний ТК.
7. Степень затухания переходного процесса  может быть оценена как отношение разности двух соседних амплитуд колебаний к первой из них:

А1  А3
.
А1
8. Показатель колебательности М численно равен отношению
коэффициента усиления замкнутой системы «регулятор – объект» на резонансной частоте к этому же коэффициенту на нулевой частоте и пропорционален степени затухания переходного процесса:
М
К рез
К0
.
6.5.2. Библиотечные функции ПИД-регуляторов.
Состав, назначение и принцип использования
Стандартная библиотека пакета проектирования Simatic Manager содержит в своем составе раздел «PID Control blocks», предназначенный для
организации процессов регулирования любыми технологическими параметрами. Данный раздел содержит разнообразные типы ПИД-регуляторов,
реализованных в функциональных блоках FB, которые могут быть вызваны в любой точке программы управления. Ввод и вывод данных из
этих блоков производится с использованием блоков данных DB.
В зависимости от области применения регуляторов данные блоки
содержат различные реализации ПИД-законов регулирования. Реализуются следующие типы регуляторов:
 FB 41 (CONT_C) – регулятор для формирования непрерывного
(аналогового) управляющего сигнала для работы с пропорциональными
исполнительными устройствами.
197
 FB 42 (CONT_S) – регулятор для формирования дискретных
команд управления для управления интегрирующими исполнительными
устройствами.
 FB 43 (PULSEGEN) – с импульсным выходным сигналом для
широтно-импульсного управления релейными (двухпозиционными) исполнительными устройствами.
 FB 58 (TCONT_C) – регулятор для формирования непрерывного (аналогового) управляющего сигнала для работы с пропорциональными исполнительными устройствами. Как правило, используется для регулирования температурных параметров.
 FB 59 (TCONT_S) – регулятор для формирования дискретных
команд управления для управления интегрирующими исполнительными
механизмами. Как правило, используется для регулирования температурных параметров.
Обязательным условием работы любого программно реализованного цифрового типа регулятора является жестко заданный постоянный
период вызова функционального блока, в котором реализован регулятор.
В этом случае гарантируется правильная работа интегральной и дифференциальной частей регулятора.
Так как в контроллере SIMATIC S7-300 (в отличие, например, от
«Ремиконт Р-130») период выполнения основной циклической программы ОВ1 жестко не фиксируется (в стандартном режиме выполнения основная программы ОВ1 выполняется с минимально возможным периодом), то для реализации регулятора необходимо создать отдельный цикл,
период выполнения которого «привязывается» к циклическому прерыванию по внутреннему таймеру процессора и устанавливается при конфигурировании процессора.
Чаще всего для создания такого цикла используют организационные блоки ОВ31-ОВ39 (конкретный выбор завит от того, какие организационные блоки поддерживаются процессором). Имея приоритет выше,
чем у основной программы, периодичный вызов такого организационного блока будет прерывать основную программу и после выполнения заложенной в нём программы возвращать управление основной программе.
Такой подход к организации ПИД-регулятора гарантирует, что период проведения расчетов всегда будет постоянен и не будет зависеть от объема основной программы, расположенной в блоке ОВ1. Структурная схема,
поясняющая принцип организации ПИД-регулятора, приведена на рис. 133.
Связь с внешними сигналами и задание параметров настройки регулятора, реализованного в функциональном блоке, осуществляется через
специальный блок данных. Структурная схема взаимодействия сигналов и
блока данных с функциональным блоком регулятора показана на рис. 134.
Сигналы задания и с выхода ОУ через модуль аналогового ввода
считываются командами ввода сигналов и передаются в блок данных DB.
Также в блоке данных задаются настроечные параметры регулятора.
198
Основная
программа
ОВ1
Прерывание от
таймера процессора
с заданным периодом
Циклическое
прерывание
ОВ35
Функциональный
блок,
реализующий
Пи-закон
Блок данных
DB35
(параметры
регулятора)
Основная
программа
ОВ1
Рис. 133. Структурная схема выполнения циклического прерывания
в основной программе для реализации регулятора
Для остановки интегральной части регулятора при достижении
концевым выключателем «Стоп Вперед» или «Стоп Назад» через модуль
ввода дискретных сигналов командами ввода в блок данных передаются
сигналы состояния этих концевых.
Таким образом, блок данных DB аккумулирует в себе все сигналы
и параметры настройки, с которыми работает функциональный блок регулятора. Так как в контроллерах S7-300 блок данных представляет собой
отдельную программную единицу, такой способ хранения и передачи
данных имеет несколько преимуществ:
1. Настроечные параметры регулятора хранятся не в самой программе (которая, кроме того, защищена от изменения), а в отдельном
блоке, данные в который задаются в процессе наладки.
2. При отладке программного обеспечения в режиме исполнения
программы (режим RUN) настроечные параметры в блоке данных можно
оперативно изменять без остановки программы.
3. Имея одну реализацию регулятора (один программный блок),
можно подключать к нему заранее подготовленные разные блоки данных,
что позволяет быстро перенастраивать контур на другие режимы работы.
199
Сигнал задания
4..20 mA
АЦП
Организационный
блок циклического
прерывания
ОВ35
Функциональный
блок FB
ПИ - регулятор
Сигнал с ОУ
4..20 mA
200
Конц. выкл.
«стоп вперед»
ДЦП
Команды
ввода
сигналов из
АЦП и ДЦП
Конц. выкл.
«стоп назад»
Режим
управления
Параметры настройки
регулятора
Блок данных
DB
(параметры
настройки и
команды
регулятора)
Команды
вывода
сигналов
управления в
ЦДП
ЦДП
Рис. 134. Структурная схема взаимодействия элементов реализации регулятора
Команда
«Больше»
Команда
«Меньше»
При создании блока данных каждому сигналу и параметру
настройки присваивается уникальный адрес и символическое имя. Для
стандартного контура управления, построенного на основе функционального блока ПИ-регулирования FB59, используются следующие основные
сигналы и параметры настройки, приведенные в табл. 32:
SP_INT – задание контура регулирования. Передается в переменную в формате числа с плавающей точной (Real).
PV_IN – величина выхода объекта управления. Значение передается
в формате Real. Размерность величины выхода ОУ и величины задания
должны совпадать. Также допускается, если эти величины будут представлены в процентах от максимального значения регулируемой величины.
GAIN – коэффициент пропорциональности контура регулирования КР. При первоначальном создании блока данных КР устанавливается равным 2.0. Для процессов охлаждения (с обратной статической характеристикой) КР должен быть установлен как отрицательная величина.
TI – время интегрирования ТИ. По умолчанию при создании блока
данных ТИ=20 с. Время интегрирования нельзя устанавливать меньше
периода вызова функционального блока регулятора.
CYCLE – задается значение, равное фактическому периоду вызова
блока (по сути дела, задается шаг численного интегрирования).
PULSE_IM, BREAK_TM – минимальная длительность импульса
и паузы соответственно, которая может формироваться регулятором. Задание этих настроечных параметров определяется инерционностью исполнительного механизма. Для реальных исполнительных устройств эти
величины задаются не менее чем 0,1–0,15 с. При создании блока данных
первоначальное значение этих параметров нулевое.
DEAD_W – ширина зоны нечувствительности. По умолчанию при
создании блока данных ширина зоны нечувствительности устанавливается равной 1,0 технических единиц, соответствующих техническим единицам входного параметра.
MTR_TM – время полного хода исполнительного механизма –
время, за которое реальный исполнительный механизм проходит путь от
0 до 100%.
Для внешнего управления регулятором существует следующие
дискретные сигналы:
LMNR_HS – сигнал достижения ИМ верхнего концевого.
LMNR_LS – сигнал достижения ИМ нижнего концевого.
При наличии одного из этих сигналов алгоритм регулирования перестает формировать соответственно команду на увеличение или на
уменьшение и останавливает интегрирование в этом направлении. Это
существенно улучшает качество переходных процессов в системе при
выходе ИМ на ограничение.
201
LMNS_ON – сигнал ручного управления контура регулирования.
Этот сигнал передается на регулятор с устройств выбора режима управления (например, с блока ручного управления или из АРМ оператора).
При переводе контура в ручной режим «замораживаются» внутренние
переменные алгоритма регулирования, в том числе и работа интегральной части. Это позволяет избежать её накопления в период работы контура в ручном режиме, что улучшает переходный процесс после возврата
контура в автоматический режим работы.
Выходной сигнал регулятора формируется также через блок данных
в переменных QLMNUP и QLMNDN, соответственно команды «больше»
и «меньше». Через дискретные выходы эти команды передаются на пусковое устройство исполнительного механизма постоянной скорости.
Таблица 32
Основные сигналы и параметры настройки блока данных для FB59*
Символическое
Тип
Наименование параметра
имя
данных
DBD 4
SP_INT
Задание контура
Real
DBD 8
PV_IN
Значение регулируемой величины
Real
DBX 30.0 COM_RST
Перезапуск блока
Bool
DBX 18.0 LMNR_HS
Достижение ИМ верхнего концевого
Bool
DBX 18.1 LMNR_LS
Достижение ИМ нижнего концевого Bool
DBX18.2 LMNS_ON
Ручное управление контура
Bool
DBD 0
CYCLE
Период вызова блока
Real
DBD 48
GAIN
Коэффициент пропорциональности
Real
DBD 52
TI
Время интегрирования
Real
DBD 40
DEADB_W
Зона нечувствительности
Real
DBD 60
PULSE_TM Минимальная длительность импульса Real
DBD 64
BREAK_TM Минимальная длительность паузы
Real
DBD 56
MTR_TM
Время полного хода ИМ
Real
DBX 20.0 QLMNUP
Команда «БОЛЬШЕ»
Bool
DBX 20.1 QLMNDN
Команда «МЕНЬШЕ»
Bool
Адрес
* В таблице указаны только основные используемые параметры настройки
ПИД-регулятора.
6.5.3. Пример реализации ПИД-регулятора
и проверка его работы на имитационной модели
Рассмотрим пример разработки типового контура регулирования температуры камерной нагревательной печи, схема которой показана на рис. 131. Вместо физической модели камерной печи и исполнительного устройства в проекте будем использовать их имитацион202
ную программную модель [6]. Окно программы моделирования показано на рис. 135.
Рис. 135. Окно программы моделирования
Примечание. Следует учитывать особенность передачи величины задания и регулируемого параметра (аналоговых величин) через АЦП
контроллера в программу регулирования. Все аналоговые сигналы передаются как целые числа. При использовании имитационной модели параметры передаются в количестве сотых долей. Поэтому в управляющей программе необходимо принятый параметр разделить на 100. При
использовании реального датчика температуры масштабируемый коэффициент зависит от номинальной статической характеристики
датчика и должен быть предварительно рассчитан.
Структурная схема разрабатываемого контура регулирования будет соответствовать схеме рис. 130. Адреса сигналов, используемых в
системе регулирования приведены, в табл. 33.
Алгоритм ПИД-регулирования вызывается из блока циклических
прерываний ОВ35 с периодом, установленным при создании данного организационного блока. Это значение периода вызова должно быть установлено также в переменной CYCLE блока данных и в поле «время цикла» имитационной программы. Кроме того, в блоке данных должны быть
обязательно установлены остальные параметры настройки алгоритма
ПИД-регулирования, указанные в табл. 32.
203
Таблица 33
Адресация входных и выходных сигналов алгоритма регулирования
Наименование сигнала
Задание контура
Значение регулируемого параметра
– сигнал с объекта управления
Достижение ИМ верхнего концевого – концевой «стоп вперед»
Достижение ИМ нижнего концевого – концевой «стоп назад»
Ручное управление контура
Команда регулятора «БОЛЬШЕ»
Команда регулятора «МЕНЬШЕ»
Физический Символическое
Тип
адрес
имя
сигнала
IW 4
SP_INT
Real
IW 0
PV_IN
Real
I3.0
LMNR_HS
Bool
I2.0
LMNR_LS
Bool
I6.0
Q0.0
Q1.0
LMNS_ON
QLMNUP
QLMNDN
Bool
Bool
Bool
Кроме обязательных параметров настройки, блок данных содержит еще ряд параметров, которые можно не устанавливать и оставить их
значения по умолчанию.
Для первоначальной инициализации блока регулирования используется параметр «COM_RST». Необходимо установить его в логическую
«1» один раз перед первым запуском блока регулирования. Эту процедуру можно проделать в блоке ОВ100, который вызывается после перевода
контроллера из режима «STOP» в режим «RUN» (см. подразд. 6.2.1).
Таким образом, порядок разработки проекта регулятора следующий:
1. Создать новый проект и провести конфигурацию оборудования.
2. Создать организационные блоки ОВ35 и ОВ100.
3. Открыть организационный блок ОВ35, выбрать из справочника
блок регулятора «Libraries→Standart Library→PID Control Blocks→FB59
TCONT_S CONTROL» и «перетащить» его с помощью указателя мыши в
область программного кода. Появится выделенная красным цветом строка «CALL FB 59».
4. Дополнить строку до вида «CALL FB 59, DB 59», где «DB 59» –
номер блока данных, где будут храниться параметры настройки регулятора и
через который будет осуществляться ввод-вывод сигналов. Внимание!
Набирать вручную строку с клавиатуры в этом способе нельзя.
5. Так как блок данных отсутствует, система предложит создать
его. Следует подтвердить создание блока.
6. Если все сделано правильно, появится список параметров, которые требуется передавать через блок данных в регулятор. Эти параметры не заполняются, так как все сигналы будут передаваться через
блок данных.
204
7. В открытом организационном блоке ОВ35 также организуется
прием сигналов с концевых выключателей, переключателя режима работы «ручной–автоматический», величины задания и выхода объекта
управления, а также передача управляющих сигналов «БОЛЬШЕ» и
«МЕНЬШЕ» на дискретные выходы контроллера. Возможное содержание
организационного блока ОВ 35 показано на рис. 136. Блок сохраняется.
Рис. 136. Содержимое окна программы ОВ35
при реализации контура регулирования
8. Открывается организационный блок ОВ100, в котором формируется команда инициализации регулятора. Также первоначально устанавливается ручной режим управления. Возможный вид программы
в OB100 показан на рис. 137. Блок сохраняется.
205
Рис. 137. Содержимое окна программы ОВ100
для инициализации регулятора
9. Открывается блок DB59 для занесения параметров настройки
регулятора. Блок открывается в виде диалогового окна, в котором указываются только основные параметры настройки. Вид окна с устано вленными параметрами показан на рис. 138. После установки параметров блок сохраняется. Для просмотра полного содержимого блока
данных необходимо в открытом блоке данных выполнить команду
«View→Data View».
Рис. 138. Предварительная настройка параметров регулятора
206
Из окна «Simatic Manager» запустить программу эмуляции процессора контроллера «Options→Simulate Modules».
Запустить программу моделирования и имитации объекта управления. Произвести соединение с эмулятором процессора нажатием кнопки «Соединить».
В окне программы установить величину задания и перевести контур в режим автоматического управления. Контролировать появление
команд исполнительного механизма «БОЛЬШЕ» и «МЕНЬШЕ» и переходный процесс в контуре.
В процессе регулирования можно открыть блок данных DB59, выбрать полное отображение параметров блока «View→Data View» и включить режим мониторинга «Debug→Monitor». В этом режиме контролируется изменение параметров в режиме регулирования.
6.6. Задания к самостоятельной работе
Самостоятельная работа №10
Программирование функций и функциональных блоков
Задание 1. Для заданной функции по вариантам составить программу
расчета на языке STL. Организовать расчет Y с использованием функции
или функционального блока. Созданный проект должен содержать один
блок FB или один блок FC. В блоке OB1 осуществить вызов FC или FB по
нажатию на различные кнопки. При вызове блоков для входов–выходов использовать различные актуальные параметры, значения которых можно задать и проконтролировать на пульте-имитаторе. Предусмотреть возможность вывода предыдущего рассчитанного значения.
Варианты заданий
Вариант
1
2
3
4
Функция
Y  X + 4Z
Y  ABS ( X 2  Y 2 )
Y  X 5  Y 2 1
Y  2Z 3Y + 5
2
Вариант
5
6
7
8
Функция
Y  X 2Z  2
Y  2X 3 + X + Z
Y  5X 2 + Z 2
Y  Z3  X 3
Задание 2. Создать глобальный блок данных. Разработать в OB1
программу, выполняющую следующие действия:
 По нажатию на кнопку с адресом I0.0 считать состояние входов
I1.0, I1.1, I1.2 и сохранить состояние в нулевом байте блока данных. Также записать в блок данных сумму значений, заданных двумя счетчиками
с адресами IW2 , IW4.
207
 По нажатию на кнопку с адресом I0.1 выгрузить сохраненное в
блоке данных состояние I1.0, I1.1, I1.2 на Q0.0, Q0.1, Q0.2 соответственно. Также выгрузить на числовой индикатор QW2 рассчитанную ранее и
сохраненную в блоке данных сумму.
Задание 3. Создать блок FB и написать в нем программу, позволяющую реализовать работу счетчика на увеличение. Созданный блок FB
должен иметь те же входы-выходы, что и обычный счетчик (не считая
EN, ENO). При написании программы не использовать стандартные счетчики. Текущее значение счета и предустановки счетчика хранить в специально созданных статических переменных. В блоке OB1 организовать
вызов FB счетчика и проверить его работу.
Самостоятельная работа №11
Реализация организационных блоков обработки прерываний
Задание 1. Определение типа рестарта в OB100.
Если требуется сообщить программе о типе запуска, нужно оценить стартовую информацию в OB 100. Операционная система вводит
следующие коды в переменную OB100_STRTUP:
1) B#16#81 = полный ручной рестарт.
2) B#16#82 = полный автоматический рестарт.
Требуется написать программу для OB 100 так, чтобы выход Q 0.0
устанавливался при полном ручном перезапуске, а выход Q 0.1 при полном автоматическом перезапуске.
Для S7-300/400 для организации автоматического рестарта следует
включить питание контроллера. Для организации ручного рестарта в S7300 следует переключить контроллер в работу (STOP->RUN). Для организации ручного рестарта в S7-400 следует переключить контроллер в
работу при положении типа рестарта CRST (Cold ReSTart) STOP>RUN+CRST.
Задание 2. Программирование циклических прерываний.
Используя организационный блок ОВ35, реализовать мигание для
лампы, подключенной к выходу Q0.0 с частотой 3 Гц.
Задание 3. Прерывание времени дня.
Начиная с момента загрузки программы, лампы на пульте (пультеимитаторе) с адресами Q0.0 – Q0.7 должны включиться через две минуты. Использовать OB10.
Задание 4. Прерывание задержки включения.
После нажатия на кнопку с адресом I1.0, спустя десять секунд на
пульте (пульте-имитаторе) должны включиться лампы с адресами Q1.0 –
208
Q1.7. Использовать OB20 и системную функцию SFC32. Предусмотреть
отмену и контроль выполнения прерывания.
Задание 5. Обработка ошибки.
Вызвать асинхронную ошибку, связанную с превышением максимально допустимого времени обработки OB1. Для этого запрограммировать бесконечный цикл в OB1:
met1: AN M0.0
JC met1
Предусмотреть выход из цикла, в случае если бит M0.0 = true. В
соответствующем блоке обработки ошибки установить бит M0.0 = true.
Определить, чему равно максимально допустимое время цикла по
умолчанию (см. свойства CPU).
Определить, будет ли CPU переходить в STOP при выполнении
заданной программы.
Включается ли индикатор ошибки на панели контроллера?
Если работа ведется с PLC-SIM, то необходимо учитывать особенность работы симулятора, связанную с тем, что ошибка и ее обработка
(например, превышение времени цикла OB) генерируется спустя значительное время (до 20-30 с) после момента, когда она действительно
должна была бы возникнуть.
При работе с PLC-SIM (симулятором) не следует забывать о загрузке конфигурации оборудования. В противном случае задания выполнить не удастся. Также не следует забывать о загрузке дополнительно
созданных блоков OB.
Самостоятельная работа №12
Использование системных функций
Используя изученные системные функции (SFC64, SFC 52, SFC
22), выполнить в этом проекте следующие задания.
Задание 1. Написать в OB1 программу создания нового блока данных при нажатии на кнопку с адресом «I 0.0». Вывести на числовые индикаторы пульта-имитатора номер созданного DB и код ошибки. Если блок
не был создан, проанализировать ошибку и исправить ее, изменив диапазон номеров создаваемых блоков данных (сохранив размер диапазона).
Задание 2. С использованием SFC 64 разработать программу, реализующую работу таймера аналогично таймеру SE, и оформить её в виде
функционального блока FB1. Функциональный блок таймера должен
иметь те же входы-выходы, что и обычный таймер SЕ.
Время выходного импульса задается в миллисекундах. Для проверки работы таймера реализовать с его помощью мигание лампы с адресом «Q 0.7» (см. лабораторную работу «Изучение команд работы с таймерами»).
209
Задание 3. Написать в OB1 программу сигнализации об ошибке.
Ошибкой является превышение сигналом с цифрового задатчика «IW 2»
заданного значения на задатчике с адресом «IW 4». Сигнал квитирования
(подтверждение, что информация об ошибке получена) поступает с кнопки с адресом «I 0.2».
С момента возникновения ошибки лампа с адресом «Q 0.0» начинает мигать. Начиная с момента появления сигнала квитирования, если
ошибка еще не устранена, лампа горит постоянно вплоть до момента
устранения ошибки.
Также с момента возникновения ошибки до момента появления
сигнала квитирования в диагностический буфер раз в две секунды записывается сообщение с номером идентификатора события W#16#9081
(выход за верхнюю границу диапазона). В момент устранения ошибки
следует записать сообщения с кодом W#16#9181 (возвращение в диапазон работы) и W#16#9105 (процесс разблокирован).
Временная диаграмма работы программы сигнализации приведена
на рис. 139. Для организации мигания лампы использовать генератор,
собранный в предыдущем задании с использованием системной функции
SFC 64.
Сигнал ошибки
IW2>IW4
Сигнал
квитирования
I0.2
Сигнальная
лампа Q0.0
Запись сообщений
в диагностический
буфер
W#16#9081H
W#16#9181H
W#16#9105H
Время
Рис. 139. Временная диаграмма работы схемы сигнализации об ошибке
Самостоятельная работа №13
Использование мультиэкземплярной модели данных
для организации программы управления однотипными
объектами
Задание. С использованием модели мультиэкземпляров разработать программу, позволяющую обеспечить синхронную работу четырех
210
светофоров. Светофоры работают попарно на двух перекрестках. Как
осуществляется синхронизация двух светофоров на каждом отдельном
перекрестке, показано на рис. 140. Сдвиг по времени между парами светофоров на соседних перекрестках должен составлять 10 с.
Светофор 1
К
Ж
З
Светофор 2
К
Ж
Время смещения
= 10 сек
З
Рис. 140. Схема синхронизации двух светофоров на одном перекрестке
Порядок выполнения работы:
1. Загрузить разработанную ранее программу работы отдельного
светофора.
2. Создать функциональный блок FB1, содержащий программу
«таймер», показанную на рис. 125 данной работы.
3. Создать функциональный блок FB2 и скопировать туда
программу из OB1.
4. Заменить все актуальные параметры в FB2 формальными,
определенными в разделах IN, OUT, STAT FB1. Вместо стандартных
таймеров использовать программу FB1.
5. Создать функциональный блок FB10, в котором определить
четыре объекта типа FB2.
6. Разработать программу синхронизации светофоров и
осуществить вызов FB10 из OB1. Правильно подобрать временные
интервалы для проведения синхронизации.
Для проверки работы разработанной программы использовать
пульт-имитатор. Самостоятельно выбрать адреса выходных параметров
211
(ламп) и заполнить соответствующие подписи элементов. Использовать
две кнопки. Первая кнопка нужна для переключения всей системы в дежурный режим или рабочий, вторая – для осуществления синхронизации.
Самостоятельная работа №14
Разработка замкнутого контура регулирования непрерывным
параметром технологического процесса с использованием
стандартного ПИД-регулятора
Порядок выполнения работы:
1. Согласно своему варианту рассчитать параметры настройки ПИрегулятора: коэффициент передачи регулятора КР и время интегрирования ТИ. Расчет ведется по формулам:
kp 
0,7
;
kоб t TОБ
TИ  0 , 7  TОБ .
Варианты параметров ИМ и объекта управления
Вариант
1
2
3
4
5
6
7
8
TОБ
45
50
55
60
65
70
75
80
t
1
2
3
4
5
1
2
3
KР
2,4
3,1
1,5
1,9
1,6
2,1
2,3
3,2
Тим
10
20
25
30
35
40
38
28
2. Создать проект, управляющий моделью ИМ и объекта c использованием шагового регулятора FB 59.
3. Запустить модель и задать в ее окнах требуемые параметры объекта и ИМ, нажать кнопку «Set».
4. Загрузить программу (блоки OB1, FB59, DB59, OB100, OB35) в
PLC-Sim, и перевести PLC-Sim в режим «RUN-P».
5. Открыть блок данных DB59 и перевести его в режим мониторинга.
6. Установить в блоке параметры настройки регулятора: время
полного хода ИМ – ТМ; коэффициент передачи регулятора – КР; время
интегрирования – ТИ; время цикла – ТЦ.
7. На запущенной модели нажать кнопку «Connect» – включение
обмена данными между регулятором и программной моделью контура.
212
8. Используя переключатель в окне моделирования объекта управления, перевести регулятор в автоматический режим работы «А» (проконтролировать по блоку данных, что в переменную LMNS_ON передалось значение «false»).
9. Получить изображение переходного процесса и определить показатели качества (s, tMAX, tн).
6.7. Вопросы для самостоятельной подготовки
1. Какие компоненты входят в стандартную библиотеку STEP 7?
2. Типы блоков данных. Их назначение. Способ создания.
3. В чем основное отличие глобальных блоков данных от экземплярных? Приведите пример записи и чтения данных глобального блока
данных.
4. Дайте пояснение понятию прерывания процессора. Приоритет
прерываний. Типы прерываний. Способы обработки прерывания.
5. Порядок создания организационного блока. Типы организационных блоков. Пример создания организационных блоков разных типов.
6. Приведите пример создания ОВ35, ОВ10 и поясните порядок
его настройки.
7. Какое основное назначение системных функций и функциональных блоков?
8. Как определить список системных функций, поддерживаемых
конкретной моделью процессорного модуля?
9. Что такое диагностический буфер? Каким образом можно организовать запись сообщений в диагностический буфер?
10. Какие типы рестарта контроллера существуют? Как программным образом определить тип рестарта?
11. Приведите пример реализации таймера и генератора с использованием системных функций.
12. Типы стандартных регуляторов. Пример запуска регулятора
(в виде структурной схемы).
13. Какие основные настроечные параметры имеют программные
регуляторы из библиотеки стандартных функций STEP 7?
14. Использование функций и функциональных блоков. Приведите пример использования.
15. Дайте пояснение понятиям формального и фактического параметров при передаче данных.
16. Что такое модель мультиэкземпляров? Приведите пример реализации и принцип работы этой модели.
17. Каких основных правил требуется придерживаться, чтобы реализовать модель мультиэкземпляров.
213
18. Какие типы стандартных регуляторов реализуются библиотечными функциями? Поясните области использования этих регуляторов.
19. Как осуществляется настройка и запуск стандартного регулятора? В каких организационных блоках реализуется вызов функции регулятора и почему?
7. ТЕСТЫ ДЛЯ САМОПРОВЕРКИ
Тест 1. Основы программирования контроллеров S7-300/400
1. Что такое Simatic Manager:
а) операционная система программируемых контроллеров Simatic;
б) программная оболочка для создания проектов управляющих
программ для контроллера Simatic;
в) полное название микропроцессорного контроллера;
г) наименование одного из модулей контроллера Simatic?
2. Функции ввода-вывода аналоговых и дискретных сигналов
осуществляются:
а) через отдельные сигнальные модули;
б) через модуль процессора;
в) через интерфейсный модуль;
г) через функциональный модуль;
д) через процессорный модуль с интегрированным сигнальным
модулем.
3. Загрузочная память процессора используется:
а) для хранения управляющей программы и данных;
б) для исполнения управляющей программы;
в) для организации обмена данными между программой и устройствами ввода-вывода.
4. Для организации полного сброса контроллера требуется
произвести следующую последовательность действий:
а) перевести ключ процессорного модуля в позицию STOP и через
2 с перевести его в режим RUN и сразу после этого обратно в STOP;
б) перевести ключ процессорного модуля в позицию MRES и через
2 с перевести его в режим STOP и сразу после этого обратно в MRES;
в) перевести ключ процессорного модуля в позицию RUN-P и через 2 с перевести его в режим RUN и сразу после этого в режим MRES;
г) выключить и включить питание контроллера.
5. Основная циклическая программа располагается:
а) в программном блоке ОВ1;
б) в блоке Network;
214
в) в папке HARDWARE.
6. Для реализации языка «Список операторов» и «Релейные
диаграммы» используются следующие аббревиатуры соответственно:
а) FBD и СFС;
б) STL и LAD;
в) AWL и KOP;
г) STEP7 и OB1.
7. Из предложенных релейных схем выберите ту, которая реализует функцию логического ИЛИ:
“X1”
“X1”
“Y”
“X2”
“Y”
“Y”
“X1”
а)
“X2”
“X1”
“X2”
“X1”
“Y”
“Y”
a)
б)
“X1”
б)
“Y”
в)
“X2”
“X1”
a)
“Y”
“X1”
“Y”
б)
в)
в)
“X2”
б)
в)
8. Из предложенных схем выберите ту, которая реализует
функцию Y=  X 1 +X2 ×X3 ) ×X4 :
a)
а)
"Х2"
"Х3"
"Х4"
в)
в)
Y
"Х1"
б)
б)
"Х2"
"Х2"
"Х3"
"Х4"
Y
"Х1"
"Х3"
"Х4"
Y
г)
г)
"Х1"
215
"Х2"
"Х3"
"Х1"
"Х4"
Y
9. Выберите варианты, в программах которых реализованы
идентичные логические функции:
а)
a)
"Х2"
"Х3"
Y
"Х4"
"Х1"
б)
б)
в)
в)
“X1”
“X3”
“X2”
“X4”
“X1”
“X3”
“X2”
“X4”
“Y”
“Y”
AN “X2”
A “X3”
O “X1”
A “X4”
= “Y”
O “X1”
O “X2”
A
O “X3”
O “X4”
= “Y”
A “X1”
A “X2”
O
A “X3”
A “X4”
= “Y”
10. Участки памяти маркеров, образов процесса, таймеров и
счетчиков расположены:
а) в рабочей памяти процессора;
б) в загрузочной памяти процессора;
в) в системной памяти процессора.
11. Какие из вариантов программы реализует таблица истинности:
Х1
0
1
Остальные
Х2
1
0
Х3
0
1
216
Y
1
1
0
а)
a)
"Х1"
"Х2"
"Х3"
"Х1"
"Х2"
"Х3"
“Y”
б)б) AN “X1”
A “X2”
AN “X3”
O
A “X1”
AN “X2”
A “X3”
= “Y”
в)в)
"Х1"
"Х3"
"Х2"
"Х2"
"Х1"
"Х3"
“Y”
12. Какой из предложенных вариантов релейной схемы реализует заданную временную диаграмму:
"Х1"
"Х2"
"Y"
217
а)
б)
“X1”
M0.0
“X1”
“M1_P”
M0.1
“X1”
“X1”
“M1_N”
P
“M1_N”
M0.1
“X2”
N
N
“M1_P”
M0.0
P
P
“X1”
в)
“M1_P”
M0.0
“M2_N”
M0.3
P
“X2”
M0.2
“X2”
“M2_P”
“M2_P”
M0.2
P
P
“M1_P”
“X2”
M0.3
“X2”
“M2_N”
“Y”
“X2”
“M2_N”
M0.3
S
P
P
“M2_N”
“M1_P”
“Y”
“M1_P”
S
“M2_N”
“Y”
S
“M1_P”
“M2_N”
“Y”
“X1”
R
“M2_N”
“M1_N”
“M1_N”
“Y”
“M2_P”
“Y”
R
R
в)
“M2_P”
a)
13. Какое значение будетб)
содержать маркерный байт MВ11 после выполнения следующей последовательности команд:
L DW#16#3C541A23
CAD
T MD 10
а) 3C; б) 54; в) 1A; г) 23.
14. Какой из вариантов релейной схемы реализует циклический счетчик от 0 до 6:
в)
а) I0.0
б) I0.0
C1
I0.0
C1
C1
CU
CU
S
C#7
L C1
T MB0
L7
T MB0
M0.0
M0.1
M0.2
C1
M0.0
L C1
T MB0
M0.1
M0.2
C1
R
R
218
M0.0
M0.1
M0.2
C1
R
15. Какой тип таймера имеет временную диаграмму вида:
Сигнал запуска
t
Реакция
таймера
а) импульсный таймер;
б) расширенный импульсный таймер;
в) таймер задержки включения;
г) таймер задержки включения с запоминанием;
д) таймер задержки выключения?
16. Какое значение примет таймерное слово после загрузки в
него значения времени, равное 12 мин:
а) 2720h; б) 1720h; в) 720h; г) 7202h?
17. Какой результат расчета будет содержаться в маркерном
слове MD10 после выполнения следующей программы:
L 10.0
LN
L 2.0
*R
EXP
T MD10
а) 10;
б)10,0;
в) 1024,0;
г) 100,0;
д) 100.
Тест 2. Структура программы
1. Какие свойства имеют блоки данных в S7-CPU:
а) сохраняемость;
б) очистка при старте CPU;
в) изменяемость количества данных;
г) защита от записи.
219
2. Из каких блоков пользователь может вызывать другие программные блоки:
а) OB1;
б) FB2;
в) DB3;
г) FC4;
д) SFC5.
3. Может ли блок FB работать без экземплярного блока данных?
а) нет;
б) да;
в) да, если нет параметров или статических данных.
4. Укажите общие характеристики блоков FB и FС для использования в CPU S7-300:
а) имеют параметры;
б) используют данные локального стека;
в) имеют статические данные;
г) имеют начальные значения параметров;
д) имеют одинаковую максимальную длину.
5. Какие преимущества дает программа, структурированная
на блоки FB и FC:
а) сокращение цикла CPU;
б) быстрый переход в конкретное место программы;
в) сокращение сроков разработки;
г) уменьшение количества ошибок.
6. Можно ли изменять значения параметров у блоков FB и FC
без изменения параметров:
а) да;
б) да, но только для переменных;
в) нет.
7. Могут ли различные FB обращаться к одному и тому же
блоку данных:
а) да;
б) нет.
8. Можно ли один и тот же адрес блока данных использовать в
логических и арифметических операциях:
а) да;
б) нет.
9. Может ли работать программа в S7-CPU без использования
блоков ОВ:
а) да;
б) нет.
220
10. В каком блоке может хранится циклически исполняемая
програма:
а) FB10;
б) ОВ10;
в) ОВ1;
г) ОВ35;
г) ОВ121.
11. Могут ли в одном цикле S7-CPU выполняться программы
из ОВ100 и ОВ1:
а) да;
б) нет.
12. Может ли блок ОВ40 вызываться каждый цикл CPU:
а) да;
б) нет.
13. Может ли работать и выполняться программа в CPU S7,
если блок FC5, который вызывается из OB1, не загружен:
а) да;
б) нет;
в) да, если есть блок ОВ121.
14. Можно ли удалить блок OB35 в CPU S7-300, если у Вас нет
программатора:
а) да;
б) нет.
Тест 3. Выполнение программы
1. Для чего используются прерывания при обработке сигналов:
а) уменьшить время реакции CPU;
б) сократить длину программы;
в) обработать сигналы малой длительности;
г) для упрощения программы;
д) для обработки редко появляющихся сигналов.
2. Может ли пользователь выбирать номер блока прерываний
от аппаратуры в S7-CPU:
а) да;
б) да, но только в S7-400;
в) нет.
3. Возможно ли обращение к блоку данных по номеру, записанному в ячейке памяти:
а) да;
б) нет.
221
4. Какие адреса могут использоваться в STEP 7 для доступа к
ячейкам блока данных:
а) DBX4.0;
б) “DATA1”;
в) MW20;
г) “DATA”.Motor;
д) DB1.DBW0.
5. Какие из записей корректны в STEP7 для выполнения косвенной адресации:
а) OPN DB[DB40];
б) L [MOTOR];
в) =Q[MD20];
г) A[AR1,P#0.0];
д) L MW0.
6. В ячейке DB1.DB20 храниться код W#16#1F3A:
укажите код в ячейке DBB20: В#16#_______;
укажите код в ячейке DBB21: B#16#_______;
укажите код в ячейке DBX20.4:
2#_______.
7. Какие возможности дает пользователю режим FORCE:
а) защитить DB от записи;
б) установить выход в «1» или в «0»;
в) запретить удаление программы;
г) блокировать все прерывания;
д) запретить выполнение программы.
8. Режим HOLD используется, чтобы:
а) установить выход в «1» или «0»;
б) остановить программу в определенном месте;
в) сделать изменения в программе;
г) прочитать содержимое стека блоков;
д) провести пошаговую отладку программы.
9. В ячейке DBW20 хранится код W#16#CAFE. Что произойдет
с ячейкой DBD40 при выполнении следующей операции:
а) не измениться;
б) изменится на код DW#16#CAFE;
в) изменится на код W#16#FECA.
222
10. Произойдет ли пересылка данных, если размер блока DB1
составляет 82 байта:
а) да;
б) нет.
11. Определите код, необходимый для установки разряда Q20.5
в «0»:
а) в двоичном формате 2#___;
б) в 16-м формате
16#___.
12. Произойдёт ли пересылка, если блок DB1 имеет атрибут
UNLINKED:
а) да;
б) нет.
13. Определите код, необходимый для установки I0.4 в «1»:
а) в двоичном формате 2#___;
б) в 16-м формате 16#___.
223
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Бергер Г. Автоматизация посредством STEP 7 с использованием
STL и SCL и программируемых контроллеров SIMATIC S7-300/400. URL:
http://automation-drives.ru/as/download/doc/software/base/0_Preface_r.pdf
2. Бергер Г. Автоматизация с помощью программ STEP 7 LAD и
FBD. URL: http://automationdrives.ru/as/download/doc/ software/base/
01_LAD_FBD_Preface_r.pdf
3. Петров И.В. Программируемые контроллеры. Стандартные языки и приемы прикладного проектирования / под ред. проф. В.П. Дьяконова. М.: СОЛОН-Пресс, 2004. 256 с.
4. Парсункин Б.Н., Андреев С.М., Рябчиков М.Ю. Комплекс программных моделей объектов управления для обучения программированию на языке STEP7 контроллеров Siemens 300/400: свидетельство о регистрации разработки. М.: ВНТИЦ, 2009. № 50200901091.
5. Андреев С.М., Рябчиков М.Ю., Михальченко Е.С. Разработка
релейных схем управляющих программ на языке технологического программирования STEP 7: лабораторный практикум. Магнитогорск: ГОУ
ВПО «МГТУ», 2007. 82 с.
6. Программирование микропроцессорных контроллеров SIMATIC
S7 300/400: лабораторный практикум / С.М. Андреев, М.Ю. Рябчиков, Е.С.
Михальченко, Т.Г. Обухова. Магнитогорск: ГОУ ВПО «МГТУ», 2008. 80 с.
224
ПРИЛОЖЕНИЕ
ДОПОЛНИТЕЛЬНЫЕ ЗАДАНИЯ ДЛЯ ВЫПОЛНЕНИЯ
САМОСТОЯТЕЛЬНОЙ РАБОТЫ
Задание 1: «Управление линией конвейера».
Используя команды релейной логики, разработать систему управления упаковочной линией конвейера. Структурная схема упаковочной
линии изображена на рис. П.1. В табл. П.1 приведены адреса и обозначения сигналов датчиков и исполнительных устройств.
Кн. «Пуск»
Кн. «Стоп»
Пульт
оператора
Упаковочная
тара
Конвейер
ДИ
Сталкиватель
«Вперед»
Привод
конвейера
«М»
«Назад»
Привод
сталкивателя
СВ
СН
Рис. П.1. Структурная схема упаковочной линии конвейера
Таблица П.1
Адреса и обозначения датчиков и исполнительных устройств
упаковочной линии конвейера
Адрес
I0.0
I0.1
I0.2
I0.3
I0.4
Обозначение
Кн. «Пуск»
Кн. «Стоп»
«СВ»
«СН»
«ДИ»
Q0.0
Q0.1
Q0.2
«М»
«Вперед»
«Назад»
Команда
Кнопка «Пуск» конвейера
Кнопка «Стоп» конвейера
Концевой «Стоп вперед» сталкивателя
Концевой «Стоп назад» сталкивателя
Датчик наличия изделия в позиции сталкивания
Привод конвейера
Привод сталкивателя движения вперед
Привод сталкивателя движения назад
225
Работа упаковочной линии конвейера.
1. Вся работа конвейера начинается только после нажатия на
кнопку «Пуск». При нажатии на кнопку «Стоп» все механизмы конвейера
останавливаются.
2. При достижении изделия датчика изделия «ДИ» лента конвейера останавливается. Включается сталкиватель, который производит загрузку изделия в тару и после этого возвращается назад. Ход сталкивателя ограничен концевыми выключателями: «стоп вперед – СВ» и «стоп
назад – СН».
3. После возвращения сталкивателя в исходное состояние работа
конвейера продолжается.
Работу разработанной схемы проверить с использованием пультаимитатора.
Задание 2: «Управление лифтом».
Используя команды релейной логики STEP 7, разработать систему
управления лифтом. Обеспечить выполнение следующих функций
управления:
1. Вызов лифта на этаж.
2. Открытие и закрытие дверей.
3. Перемещение лифта на заданный этаж.
4. Включение и выключение света в кабине, подсветку кнопок
вызова и задание этажа.
5. Реализацию необходимых пауз при выполнении действий.
Вид окна программы моделирования лифта показан на рис. П.2.
КВ_В
В4
ПВ4
ПВ3
ДО
ДЗ
В3
К4
К3
К2
В2
К1
ПВ2
В1
ПВ1
Рис. П.2. Модель лифта
226
Список адресов входных и выходных сигналов управления и их
описание приведены в табл. П.2.
Таблица П.2
Адреса и обозначение сигналов лифта
Адрес
I0.0
I0.1
I0.2
I0.3
I0.4
I0.5
I0.6
Обозначение
«ПВ1»
«ПВ2»
«ПВ3»
«ПВ4»
«ДЗ»
«ДО»
«КВ_В»
I0.7
I1.0
I1.1
I1.2
I1.3
I1.4
I1.5
I1.6
I1.7
Q0.0
Q0.1
Q0.2
Q0.3
Q0.4
Q0.5
Q0.6
Q0.7
Q1.0
Q1.1
Q1.2
Q1.3
Q1.4
-«В1»
«В2»
«В3»
«В4»
«К1»
«К2»
«К3»
«К4»
«ЛВ1»
«ЛВ2»
«ЛВ3»
«ЛВ4»
«ЛК1»
«ЛК2»
«ЛК3»
«ЛК4»
«Вверх»
«Вниз»
«Открыть»
«Закрыть»
«ЛК»
Команда
Путевой выключатель 1-го этажа
Путевой выключатель 2-го этажа
Путевой выключатель 3-го этажа
Путевой выключатель 4-го этажа
Концевой «Дверь закрыта»
Концевой «Дверь открыта»
Концевой выключатель верхнего положения кабины
-Кнопка вызова 1-го этажа
Кнопка вызова 2-го этажа
Кнопка вызова 3-го этажа
Кнопка вызова 4-го этажа
Кнопка кабины 1-го этажа
Кнопка кабины 2-го этажа
Кнопка кабины 3-го этажа
Кнопка кабины 4-го этажа
Лампа кнопки вызова 1-го этажа
Лампа кнопки вызова 2-го этажа
Лампа кнопки вызова 3-го этажа
Лампа кнопки вызова 4-го этажа
Лампа кнопки кабины 1-го этажа
Лампа кнопки кабины 2-го этажа
Лампа кнопки кабины 3-го этажа
Лампа кнопки кабины 4-го этажа
Команда «Движение вверх»
Команда «Движение вниз»
Команда «Открыть дверь»
Команда «Закрыть дверь»
Лампа освещения кабины
Работу программы управления лифтом проверить на модели
управления.
Самостоятельную работу по разработке программы управления
лифтом разделить на три этапа, за каждый из которых студент отчитывается индивидуально.
227
Этап 1. Управление движением кабины лифта при вызове и при
перемещении на заданный этаж.
Этап 2. Управление дверями и освещением кабины и подсветка
кнопок при выполнении команд перемещения кабины.
Этап 3. Обеспечение необходимых пауз при управлении дверьми
кабины, её освещением, подсветкой кнопок и подачей команд.
Задание 3. «Разработка программы управления манипулятором для сортировки изделий».
С помощью робота-манипулятора отсортировать изделия на металлические и неметаллические, которые подаются из накопителя в
исходную позицию.
Вид имитационной модели манипулятора и пульта управления показан на рис. П.3.
Адреса и обозначения датчиков манипулятора приведены в табл. П.3.
Изделия автоматически подаются на исходную позицию 1, где
происходит анализ материала заготовки. В зависимости от типа материала каретка 4 совместно с манипулятором 3 с помощью вакуумного захвата 6 перемещает изделие в соответствующее место складирования (приемный бункер 5 или 7).
Рис. П.3. Вид имитационной модели манипулятора:
1 – исходная позиция; 2 – поворотный стол; 3 – манипулятор;
4 – каретка; 5, 7 – позиция разгрузки; 6 – вакуумный захват
228
Таблица П.3
Адреса и обозначения датчиков манипулятора
Входы
Функции
Адрес Символ
Комментарий
Исходное положение стола I 1.5
S1 Датчик начальной позиции стола
Конечное положение стола I 1.6
S2 Датчик положения стола при разгрузке
Каретка вверху
I 0.0
S3 Верхнее положение манипулятора
Каретка внизу
I 0.1
S4 Нижнее положение манипулятора
Манипулятор выдвинут
I 0.2
S6 Положение «СКЛАД МЕТАЛЛ»
Манипулятор втянут
I 0.3
S5 Положение «СКЛАД НЕМЕТАЛЛ»
Присоска вверху
I 0.4
S7 Транспортное положение присоски
Присоска внизу
I 0.5
S8 Присоска в момент присасывания и отпуска
Емкостной датчик
I 0.6
S9 Датчик наличия изделия
Индуктивный датчик
I 0.7
S10 Датчик металлического изделия
«НАЧ.УСТАН.»
I 1.0
S11 Перевод системы в положение загрузки
«ПУСК»
I 1.1
S12 Запуск рабочего цикла
«ШАГ»
I 1.2
S13 Режим шагового исполнения цикла
«ЦИКЛ»
I 1.3
S14 Режим остановки в конце цикла
«АВАР.СТОП»
I 1.4
S15 Останов манипулятора (захват не выкл.)
Выходы
Функции
Адрес Символ
Комментарий
Стол к конечной позиции
Q 0.0
М1
Поворот к позиции разгрузки
Стол к начальной позиции
Q 0.1
М2
Поворот к позиции загрузки
Каретка вверх
Q 0.2
М3
Подъем каретки
Каретка вниз
Q 0.3
М4
Опустить каретку
Манипулятор выдвинуть
Q 0.4
М5
Выдвинуть каретку
Манипулятор втянуть
Q 0.5
М6
Втянуть каретку
Захват вниз
Q 0.6
М7
Опустить захват
Захват включить
Q 0.7
М8
Включение вакуумного захвата
Программа управления манипулятором должна обеспечивать следующие режимы работы:
1. Приведение манипулятора в исходное состояние (показано на
рис. П.3). При нажатии кнопки «Нач.Уст.» все устройства принимают исходное состояние:
 шток пневмоцилиндра с захватом втянут;
 каретка в верхнем положении, манипулятор втянут;
 стол повернут в сторону позиции подачи заготовок;
 захват выключен.
Работа системы не должна начинаться, пока все устройства не
примут исходные позиции.
2. Автоматический режим. Выбор режима – кнопка «ШАГ» не
нажата. Режим обеспечивает непрерывный цикл после однократного
нажатия кнопки «ПУСК» и повторяется при поступлении изделий. Если изделия заканчиваются, то манипулятор устанавливается в исходное
229
состояние и при появлении изделия работа начинается только после нажатия на кнопку «ПУСК».
3. Ручной режим. Пошаговое выполнение цикла. Выбор режима
кнопкой «ШАГ». Каждое действие (движение одного механизма манипулятора) выполняется после нажатия кнопки «ПУСК».
4. Аварийный останов. Выбор режима – кнопка «АВ.СТОП». При
нажатии кнопким «АВ.СТОП» все устройства останавливаются и могут
вернуться в исходное состояние только после нажатия кнопки
«Нач.Уст.». В случае нахождения изделия в поднятом состоянии необходимо устранить возможность его падения. Если после нажатия на
кнопку «АВ.СТОП» нажимается кнопка «ПУСК», то работа манипулятора продолжается в нормальном режиме
Во время работы программа должна также вести учет количества
отсортированных изделий по типам.
Работа всех механизмов манипулятора должна осуществляться в
строгой последовательности. Начиная с исходного состояния, данная последовательность должна иметь вид, который по шагам показан на рис. П.4.
1
2
3
4
5
6
7
8
9
13
12
11
10
14
15
Рис. П.4. Последовательность шагов по переносу металлической
заготовки с помощью манипулятора из позиции подачи
в позицию разгрузки
230
Например, для переноса металлического изделия из позиции 1 в
позицию 7 должны быть выполнены следующие шаги:
1) привести манипулятор в исходную позицию;
2) опустить каретку;
3) опустить захват;
4) включить захват;
5) дождаться поднятия захвата;
6) поднять каретку;
7) повернуть стол в конечное положение (отгрузка);
8) выдвинуть манипулятор;
9) опустить каретку;
10) опустить захват;
11) выключить захват (заготовка падает в приемный бункер 7);
12) дождаться поднятия захвата;
13) поднять каретку;
14) втянуть манипулятор;
15) повернуть стол в сторону позиции подачи заготовок.
Для неметаллической заготовки шаги 8 и 14 пропускаются, и заготовка попадает в приемный бункер 5.
231
Учебное издание
Сергей Михайлович АНДРЕЕВ
Михаил Юрьевич РЯБЧИКОВ
Елена Сергеевна РЯБЧИКОВА
АППАРАТНЫЕ СРЕДСТВА
И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
ПРОМЫШЛЕННЫХ КОНТРОЛЛЕРОВ
SIMATIC S7
Учебное пособие
Редактор Н.П. Боярова
Компьютерная верстка Т.В. Леонтьевой
Подписано в печать 18.08.2017. Рег. № 24-17. Формат 60×84 1/16. Бумага тип. № 1.
Плоская печать. Усл.печ.л. 14,50. Тираж 100 экз. Заказ 344.
Издательский центр ФГБОУ ВО «МГТУ им. Г.И. Носова»
455000, Магнитогорск, пр. Ленина, 38
Участок оперативной полиграфии ФГБОУ ВО «МГТУ им. Г.И. Носова»
232