Вы находитесь на странице: 1из 48

Министерство образования и науки

Российской Федерации
Государственное образовательное учреждение
высшего профессионального образования
"Ивановский государственный энергетический университет
имени В.И. Ленина"
Кафедра "Автоматизация технологических процессов"

МИКРОПРОЦЕССОРНЫЙ КОНТРОЛЛЕР
SIEMENS S7-200

Методические указания
к выполнению лабораторных работ по дисциплине
"Основы микропроцессорной техники"

Иваново 2010
Составитель В.М. Пушков
Редактор А.М. Демин

Методические указания предназначены для студентов, обу-


чающихся по специальности 220301.65 "Автоматизация технологи-
ческих процессов и производств (тепловые и атомные электростан-
ции)", при выполнении лабораторных работ по дисциплине "Основы
микропроцессорной техники". Целью работ является изучение
принципов программирования микропроцессорных контроллеров
Siemens серии S7-200.

Утверждены цикловой методической комиссией ТЭФ

Рецензент
кафедра "Автоматизация технологических процессов"
ГОУВПО "Ивановский государственный энергетический
университет имени В.И. Ленина"
1. ТЕХНИЧЕСКОЕ И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
МИКРОКОНТРОЛЛЕРОВ S7-200
Серия S7-200 – это ряд микропрограммируемых логических
контроллеров (микроконтроллеров), которые могут управлять раз-
нообразными прикладными системами автоматизации. Компактная
конструкция, расширяемость, низкая стоимость и мощная система
команд микроконтроллеров S7-200 создают идеальное решение
для управления малыми технологическими объектами. Кроме того,
большое разнообразие типов CPU обеспечивает необходимую
гибкость при решении задач автоматизации.
1.1. Сравнение технических характеристик
микроконтроллеров S7-200
На рис. 1.1 показана основная система с микроконтроллером
S7-200, которая включает CPU S7-200, персональный компьютер с
установленной программой STEP 7-Micro/WIN 32 и кабель связи.
Для использования персонального компьютера (PC) необходимо
иметь одно из следующих устройств:
 кабель PC/PPI;
 коммуникационный процессор (CP) и кабель с многоточеч-
ным интерфейсом (MPI);
 плату многоточечного интерфейса (MPI).

Компьютер

CPU S7-200

STEP 7-Micro/WIN 32

Кабель PC/PPI

Рис. 1.1. Компоненты системы с микроконтроллером S7-200


и кабелем PC/PPI
Семейство S7-200 включает большое многообразие СPU, даю-
щее возможность в процессе проектирования оптимальным обра-
зом решать задачи автоматизации.
В табл. 1.1 приведены основные технические характеристики
CPU S7-200 различных вариантов исполнения.

Таблица 1.1. Обзор CPU S7-200


Техническая
CPU 221 CPU 222 CPU 224
характеристика
Физический размер
90х80х62 мм 90х80х62 мм 120х80х62 мм
блока
Память
Программа 2048 слов 2048 слов 4096 слов
Данные
1024 слов 1024 слов 2560 слов
пользователя
Память программы
ЭСППЗУ ЭСППЗУ ЭСППЗУ
пользователя
Буферизация данных
Обычно Обычно Обычно
(конденсатор
50 часов 50 часов 190 часов
высокой емкости)
Локальные входы-выходы
Количество локальных 6 входов/ 8 входов/ 14 входов/
входов-выходов 4 выхода 6 выходов 10 выходов
Количество
нет 2 модуля 7 модулей
модулей расширения
Общее количество входов-выходов
Размер образа циф- 256 256 256
ровых входов- (128 входов/ (128 входов/ (128 входов/
выходов 128 выходов) 128 выходов) 128 выходов)
Размер образа
16 входов/ 32 входа/
аналоговых входов- нет
16 выходов 32 выхода
выходов
Команды
Скорость выполнения
0,37 мкс/ 0,37 мкс/ 0,37 мкс/
булевых команд
команда команда команда
при 33 МГц
Регистр образа вхо-
128 I и 128 Q 128 I и 128 Q 128 I и 128 Q
дов-выходов
Количество
256 256 256
внутренних реле
Количество
256/256 256/256 256/256
счетчиков/таймеров
Ввод/вывод слова нет 16/16 32/32
Окончание табл. 1.1
Техническая
CPU 221 CPU 222 CPU 224
характеристика
Количество реле
последовательного 256 256 256
управления
Циклы For/Next Да Да Да
Математика целых
Да Да Да
чисел (+ - * /)
Математика
вещественных чисел Да Да Да
(+ - * /)

1.2. Основные компоненты микроконтроллера S7-200


Микроконтроллер S7-200 состоит из одиночного блока CPU S7-
200 или блока с модулями расширения.
CPU S7-200 объединяет центральный процессорный блок
(CPU), источник питания и цифровые вводы-выводы в компактное
автономное устройство.
 CPU выполняет программу и хранит данные для управле-
ния задачей автоматизации или процессом.
 Цифровые входы и выходы являются точками управления
системы: входы контролируют сигналы полевых устройств
(таких, как датчики и переключатели), а выходы управляют
насосами, двигателями или другими исполнительными уст-
ройствами.
 Источник питания снабжает электрической энергией CPU и
любые подключенные модули расширения.
 Коммуникационный порт (порты) позволяет подключить
CPU к устройству программирования или другим устройст-
вам.
 Световые индикаторы состояния дают визуальную инфор-
мацию о режиме CPU (RUN или STOP), текущем состоянии
локальных входов-выходов и об обнаружении отказа систе-
мы.
 Дополнительные точки ввода-вывода могут добавляться
к CPU при помощи модулей расширения (CPU 221 не может
расширяться).
 При помощи модулей расширения можно увеличить эффек-
тивность обмена данными.
 Некоторые CPU имеют часы реального времени как встро-
енный элемент, тогда как другие CPU имеют дополнитель-
ный модуль часов реального времени.
 Необязательный вставной модуль ЭСППЗУ с последова-
тельным доступом предоставляет средство хранения про-
грамм CPU и передачи программ от одного CPU другому
CPU.
 Необязательный вставной батарейный модуль обеспечива-
ет расширенное сохранение памяти данных в RAM.

1.3. Концепции языков программирования


и редакторов S7-200
CPU S7-200 имеет много типов команд, позволяющих решать
широкий спектр задач автоматизации. Программное обеспечение
STEP 7-Micro/WIN 32 предоставляет выбор различных редакторов,
которые позволяют создавать управляющие программы с этими
командами.
Редактор списка команд (Statement List)
Редактор списка команд (STL) предоставляет возможность соз-
давать управляющие программы, вводя мнемонику команд.
В общем случае редактор STL больше подходит для опытных про-
граммистов, хорошо знакомых с ПЛК и логическим программиро-
ванием. Редактор STL позволяет также разрабатывать программы,
которые невозможно создавать иным образом, используя редакто-
ры для контактного или функционального плана. На рис. 1.2 пока-
зан пример программы, составленной в редакторе списка команд.

STL

NETWORK
LD I0.0
LD I0.1
LD I2.0
S0 S1 S2
A I2.1
OLD
ALD
= Q5.0
Рис. 1.2. Пример программы в форме списка команд
Эта основанная на тексте концепция очень похожа на програм-
мирование на языке ассемблера. CPU выполняет команды в по-
рядке, предписанном программой, сверху донизу и затем опять
начинает сверху.
Редактор контактного плана (Ladder Logic)
Редактор контактного плана (LAD) позволяет формировать про-
граммы, имеющие сходство с электрической монтажной схемой.
Вероятно, программирование в контактном плане является мето-
дом, который выбирают многие программисты ПЛК и обслуживаю-
щий персонал. По существу, программы в контактном плане по-
зволяют CPU эмулировать протекание электрического тока от ис-
точника питания через ряд логических состояний входов, которые,
в свою очередь, разблокируют логические состояния выходов. Ло-
гика обычно подразделяется на малые, легко понимаемые, сег-
менты, которые в англоязычной литературе часто называются
rungs, т.е. ступеньки (в соответствии с английским названием кон-
тактного плана – Ladder Logic, что буквально означает "лестничная
логика"), или networks – цепи. Программа выполняется по "цепям"
слева направо и затем сверху вниз, как предписано программой. Как
только CPU достигает конца программы, он начинает снова с вер-
шины программы.
На рис. 1.3 показан пример программы, составленной в редак-
торе контактного плана.

NETWORK 1
Q5.0
I0.0 I0.1

I2.0 I2.1

NETWORK 2
MOV_B SWAP
I2.1
EN ENO EN ENO

VB50 IN OUT IN
AC0 AC0

Рис. 1.3. Пример программы в контактном плане


Различные команды представляются графическими символами
и включают три основные формы. Можно последовательно соеди-
нять многочисленные команды в форме блоков.
 Контакты представляют логические состояния входов, ана-
логичных выключателям, кнопкам, внутренним условиям и
так далее.
 Катушки обычно представляют логические результаты вы-
ходов, аналогичных лампам, пускателям электродвигате-
лей, промежуточным реле, состояниям внутренних выходов
и так далее.
 Блоки представляют дополнительные команды, такие как
таймеры, счетчики или математические команды.
Основные особенности, принимаемые во внимание при выборе
редактора LAD:
 контактный план прост в использовании для начинающих
программистов;
 графическое представление часто более легко понимается
и является популярным во всем мире.
Редактор функционального плана (Function Block Diagram)
Редактор функционального плана (FBD) позволяет просматри-
вать команды в форме логических блоков, напоминающих логиче-
ские блок-схемы общего вида. Нет никаких контактов и катушек,
как в редакторе LAD, но имеются эквивалентные команды, которые
появляются как команды в форме блоков. Логика программы фор-
мируется из соединений между этими командами в форме блоков.
То есть выход одной команды (например, блока AND) может ис-
пользоваться для того, чтобы разрешить другой команде (напри-
мер, таймеру) создать необходимую логику управления. Такая
концепция соединений позволяет решать широкий круг логических
задач.
На рис.1.4 показан пример программы, созданной в редакторе
функционального плана.

AND ENO TON


I2.1 IN
V50.0 AC0 PT

Рис.1.4. Пример программы в функциональном плане


Основная особенность, принимаемая во внимание при выборе
редактора FBD:
 графический стиль представления в форме логических эле-
ментов хорош для последующего составления блок-схемы
программы.

1.4. Типы данных для переменных


В табл. 1.2 приведены элементарные типы данных, а в табл. 1.3
сложные типы данных, доступные при программировании в STEP 7-
Micro/WIN 32.
Таблица 1.2. Элементарные типы данных
Элементарные Размер типа Диапазон
Описание
типы данных данных данных
Булева
BOOL (1 бит) 1 бит 0÷1
переменная
BYTE
8 битов Байт без знака 0÷255
(8 битов)
WORD Целое число
16 битов 0÷65535
(16 битов) без знака
Целое число
INT (16 битов) 16 битов − 32768÷32767
со знаком
DWORD Двойное целое 31
32 бита 0÷2 −1
(32 бита) число без знака
Двойное целое 31 31
DINT (32 бита) 32 бита − 2 ÷2 −1
число со знаком
32-разрядное
REAL 38 38
32 бита число с плаваю- − 10 ÷10
(32 бита)
щей точкой IEEE
Таблица 1.3. Сложные типы данных
Сложные
Описание Диапазон адресов
типы данных
1 мс Т32, Т96
Таймер с задержкой
TON 10 мс Т33÷Т36, Т97÷Т100
включения
100 мс Т37÷Т63, Т101÷Т255
1 мс Т32, Т96
Таймер с задержкой
TOF 10 мс Т33÷Т36, Т97÷–Т100
выключения
100 мс Т37÷Т63, Т101÷Т255
1 мс Т32, Т96
TP Импульсный таймер 10 мс Т33÷Т36, Т97÷Т100
100 мс Т37÷Т63, Т101÷Т255
CTU Суммирующий счетчик 0÷255
CTD Вычитающий счетчик 0÷255
CTUD Реверсивный счетчик 0÷255

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


CPU S7-200 непрерывно выполняет загруженную в память про-
грамму для управления задачей или процессом. Программа созда-
ется и загружается в память CPU при помощи программного обес-
печения STEP 7-Micro/WIN 32.
Организация программы
Программы для CPU S7-200 конструируются из трех основных
элементов: главная программа, подпрограммы (необязательные) и
подпрограммы обработки прерываний (необязательные). Про-
грамма S7-200 делится на следующие организационные элементы.
 Главная программа: основная часть программы, где разме-
щаются команды, управляющие приложением. Команды
главной программы выполняются последовательно и одно-
кратно в каждом цикле сканирования CPU.
 Программы обработки прерываний: эти необязательные
элементы программы выполняются при каждом возникнове-
нии события, вызывающего прерывание.
 Подпрограммы: эти необязательные элементы программы
выполняются только тогда, когда они вызываются из главной
программы или программы обработки прерываний.
1.6. Объяснение цикла сканирования CPU
CPU S7-200 работает в режиме циклического выполнения ряда
заданий, включая рабочую программу. Такое циклическое выпол-
нение заданий называется циклом сканирования. В течение цикла
сканирования, показанного на рис. 1.5, CPU выполняет все или
большинство из следующих задач:
 считывание входов;
 выполнение программы;
 обработка любых коммуникационных запросов;
 выполнение самодиагностики CPU;
 запись в выходы.
Запись в выходы Считывание входов

Выполнение Выполнение программы


самодиагностики CPU

Обработка коммуникационных запросов


Рис. 1.5. Цикл сканирования CPU S7-200
Считывание входов
Каждый цикл сканирования начинается со считывания текущих
значений цифровых входов и последующей записи этих значений в
регистр входов образа процесса.
CPU не обновляет аналоговые входы во время нормального
цикла сканирования, если не разрешена цифровая фильтрация
аналоговых входов. Цифровая фильтрация предоставляется как
выбираемая пользователем возможность и может индивидуально
разрешаться для каждого аналогового входа.
Когда фильтрация аналогового входного сигнала для аналого-
вого разрешена, CPU один раз за цикл сканирования обновляет
этот аналоговый вход, выполняет функцию фильтрации и сохра-
няет фильтрованное значение внутри.
Если аналоговая фильтрация для аналогового входа не разре-
шена, то CPU считывает значение аналогового входа из физиче-
ского модуля каждый раз, когда программа обращается
к аналоговому входу.
Выполнение программы
CPU выполняет программу, начиная с первой команды и до ко-
нечной команды. Команды непосредственного ввода-вывода дают
немедленный доступ к входам и выходам во время выполнения
программы или программы обработки прерывания.
Обработка коммуникационных запросов
Во время фазы обработки сообщений в цикле сканирования
CPU обрабатывает любые сообщения, принятые из коммуникаци-
онного порта.
Выполнение самодиагностики CPU
Во время этой фазы цикла сканирования CPU проверяет свое
встроенное программное обеспечение и память программы (толь-
ко режим RUN). Он проверяет также состояние всех модулей вво-
да-вывода.
Запись в цифровые выходы
В конце каждого цикла сканирования CPU записывает значения,
хранимые в регистре выходов образа процесса, в цифровые выхо-
ды.
1.7. Память CPU: типы данных и способы адресации
CPU S7-200 предоставляет специализированные области памя-
ти для обеспечения более быстрой и эффективной обработки дан-
ных.
Отличительной особенностью программирования контроллеров
фирмы Siemens в различных версиях программы Step 7 является
то, что обмен результатами выполнения отдельных команд (кроме
битовых) может осуществляться только через ячейки памяти CPU.
В табл. 1.4 приведены допустимые для использования области
памяти CPU S7–200, а в табл. 1.5 – допустимые диапазоны опе-
рандов.

Таблица 1.4. Обзор областей памяти и характеристик CPU S7–200


Описание CPU 221 CPU 222
Размер программы
2 Кслова 2 Кслова
пользователя
Размер данных
1 Кслово 1 Кслово
пользователя
Регистр входов образа
I0.0÷I15.7 I0.0÷I15.7
процесса
Регистр выходов образа
Q0.0÷Q15.7 Q0.0÷Q15.7
процесса
Аналоговые входы
- AIW0÷AIW30
(только чтение)
Аналоговые выходы
- AQW0÷AQW30
(только запись)
Память переменных (V) VB0.0÷VB2047.7 VB0.0÷VB2047.7
Локальная память (L) LB0.0÷LB63.7 LB0.0÷LB63.7
Битовая память (M) M0.0÷M31.7 M0.0÷M31.7
Окончание табл. 1.4
Описание CPU 221 CPU 222
Специальная память SM0.0÷SM179.7 SM0.0÷SM299.7
(SM) (только чтение) SM0.0÷SM29.7 SM0.0÷SM29.7
Таймеры 256 (T0÷T255) 256 (T0÷T255)
Задержка включения T0, T64 T0, T64
с запоминанием 1 мс
Задержка включения T1÷T4, T65÷T68 T1÷T4, T65÷T68
с запоминанием 10 мс
Задержка включения T5÷T31, T69÷T95 T5÷T31, T69÷T95
с запоминанием 100 мс
Задержка вкл/выкл 1 мс T32, T96 T32, T96
Задержка вкл/выкл 10 мс T33÷T36, T97÷T100 T33÷T36, T97÷T100
Задержка вкл/выкл 100 мс T37÷T63, T101÷T255 T37÷T63, T101÷T255
Счетчики C0÷C255 C0÷C255
Скоростные счетчики HC0, HC3, HC4, HC5 HC0, HC3, HC4, HC5
Реле последовательного S0.0÷S31.7 S0.0÷S31.7
управления (S)
Аккумуляторные AC0÷AC3 AC0÷AC3
регисторы
Переходы/Метки 0÷255 0÷255
Вызов/Подпрограмма 0÷63 0÷63
Программы прерывания 0÷127 0÷127
PID-контуры 0÷7 0÷7
Порт Порт 0 Порт 0

Таблица 1.5. Диапазоны операндов CPU S7–200


Метод доступа CPU 221 CPU 222
Доступ к биту V 0.0÷2047.7 V 0.0÷2047.7
(байт, бит) I 0.0÷15.7 I 0.0÷15.7
Q 0.0÷15.7 Q 0.0÷15.7
M 0.0÷31.7 M 0.0÷31.7
SM 0.0÷179.7 SM 0.0÷179.7
S 0.0÷31.7 S 0.0÷31.7
T 0÷255 T 0÷255
C 0÷255 C 0÷255
L 0.0÷63.7 L 0.0÷63.7
Доступ к байту VB 0÷2047 VB 0÷2047
IB 0÷15 IB 0÷15
QB 0÷15 QB 0÷15
MB 0÷31 MB 0÷31
SMB 0÷179 SMB 0÷179
SB 0÷31 SB 0÷31
LB 0÷63 LB 0÷63
Окончание табл. 1.5
Метод доступа CPU 221 CPU 222
Доступ к слову VW 0÷2046 VW 0÷2046
IW 0÷14 IW 0÷14
QW 0÷14 QW 0÷14
MW 0÷30 MW 0÷30
SMW 0÷178 SMW 0÷178
SW 0÷30 SW 0÷30
TW 0÷255 TW 0÷255
CW 0÷255 CW 0÷255
LW 0÷62 LW 0÷62
AC 0÷3 AC 0÷3
AIW 0÷30
AQW 0÷30
Константа Константа
Доступ VD 0÷2044 VD 0÷2044
к двойному слову D 0÷12 D 0÷12
QD 0÷12 QD 0÷12
MD 0÷28 MD 0÷28
SMD 0÷176 SMD 0÷176
SD 0÷28 SD 0÷28
LD 0÷60 LD 0÷60
AC 0÷3 AC 0÷3
HC 0, 3, 4, 5 HC 0, 3, 4, 5
Константа Константа

1.8. Прямая адресация областей памяти CPU


CPU S7–200 хранит информацию в различных ячейках памяти,
имеющих уникальные адреса. Адрес может быть указан явно, что
позволит программе иметь прямой доступ к информации.
Использование адреса памяти для доступа к данным
Для обращения к биту в области памяти указывается адрес,
включающий в себя идентификатор области памяти, адрес байта и
номер бита. На рис. 1.6 приведен пример обращения к биту. В
этом примере за областью памяти и адресом байта (I = вход
(input), а 3 = байт 3) следует точка, чтобы отделить адрес бита (бит
4).
MSB LSB
I 3 . 4
7 6 5 4 3 2 1 0
Бит байта или номер бита: I0
бит 4 из 8 (от 0 до 7)
I1
Точка отделяет адрес I2
байта от номера бита
I3
Адрес байта: байт 3 I4
(четвертый байт)
I5
Идентификатор области I6
(I=input=вход)
I7
MSB = старший бит I8
LSB = младший бит
Рис. 1.6. Обращение к биту данных в памяти CPU
Используя байтовый формат адреса, можно обращаться к дан-
ным в различных областях памяти CPU (V, I, Q, M, S, L и SM).
Пример обращения показа на рис. 1.7.

V B 100
MSB LSB Адрес байта
7 0 Доступ в формате байта
VB100 VB100
Идентификатор области
(V-память)
Младший байт V W100
Старший байт
MSB LSB Адрес байта
15 8 7 0 Доступ в формате слова
VW100 VB100 VB101 Идентификатор области
(V-память)
Старший байт Младший байт
MSB LSB
31 24 23 16 15 87 0
VD100 VB100 VB101 VB102 VB103
V D 100
Адрес байта
Доступ в формате
MSB = старший бит двойного слова
LSB = младший бит Идентификатор области
(V-память)

Рис. 1.7. Сравнение доступа к байту, слову и двойному слову


Для доступа к байту, слову или двойному слову в памяти CPU
следует указать адрес таким же способом, как и при указании ад-
реса бита. Он включает идентификатор области, обозначение
размера данных и начальный байтовый адрес байта, слова или
двойного слова. Доступ к данным в других областях памяти CPU
(таким, как T, C, HC и аккумуляторы) производится с помощью
формата адреса, включающего идентификатор области и номер
элемента.
Представление чисел
В табл. 1.6 показаны диапазоны числовых значений для раз-
личных размеров данных.
Таблица 1.6. Обозначения размеров данных и их диапазоны
Диапазон целых чисел Диапазон целых чисел
Размер
без знака со знаком
данных
десятичные 16-теричные десятичные 16-теричные
B (байт):
от − 128 от 80
8-битовое от 0 до 255 от 0 до FF
до 127 до 7F
значение
W (слово):
от 0 от 0 от − 32768 от 8000
16-битовое
до 65535 до FFFF до 32767 до 7FFF
значение
D (двойное от от
от 0 от 0
слово): − 2147483648 80000000
до до
32-битовое до до
4294967295 FFFFFFFF
значение 2147483647 7FFFFFFF
Вещественные числа представляются как 32-битные числа оди-
нарной точности в формате от +1.175495E-38 до +3.402823E+38 (по-
ложительные) и от -1.175495E-38 до -3.402823E+38 (отрицательные).
Доступ к значениям вещественных чисел производится с помощью
двойных слов.
Адресация регистра входов образа процесса (I)
Формат: Бит I[адрес байта].[адрес бита] I0.1.
Байт, слово, двойное слово I[размер][начальный адрес байта]
IB4.
Адресация регистра выходов образа процесса (Q)
Формат: Бит Q[адрес байта].[ адрес бита] Q1.1.
Байт, слово, двойное слово Q[размер][начальный адрес байта]
QB5.
Адресация области памяти переменных (V)
Формат: Бит V[адрес байта].[адрес бита] V10.2.
Байт, слово, двойное слово V[размер][начальный адрес байта]
VW100.
Адресация битовой памяти (маркеров) (M)
Формат: Бит M[адрес байта].[адрес бита] M26.7.
Байт, слово, двойное слово M[размер][начальный адрес байта]
MD20.
Адресация битов специальной памяти (SM)
Эта область памяти используется для выбора и управления не-
которыми специальными функциями CPU S7–200, такими как:
 бит, устанавливающийся при первом цикле обработки про-
граммы;
 бит, переключающийся с определенной частотой.
Формат: Бит SM[адрес байта].[адрес бита] SM0.1.
Байт, слово, двойное слово SM[размер][начальный адрес бай-
та] SMB86.
Адресация таймеров (T)
В CPU S7–200 таймеры – это элементы, которые считают при-
ращения времени. Таймеры S7–200 имеют разрешения (прираще-
ния базы времени) в 1 мс, 10 мс или 100 мс. С таймером связаны
две переменные:
 текущее значение: это 16-битовое целое число со знаком
хранит количество времени, отсчитанное таймером;
 бит таймера: этот бит устанавливается или сбрасывается
как результат сравнения текущего и предустановленного
значения.
Доступ к обеим переменным производится с помощью адреса
(T + номер таймера). К какому из этих элементов, биту таймера
или текущему значению, производится обращение зависит от ис-
пользуемой команды: команды с битовым операндом обращаются
к биту таймера, тогда как команды, имеющие в качестве операнда
слово, обращаются к текущему значению.
Адресация счетчиков (C)
В CPU S7–200 счетчики – это элементы, которые считают каж-
дый нарастающий фронт на входе (входах) счетчика. CPU предос-
тавляет три типа счетчиков: один считает только вперед, один –
только назад и один – как вперед, так и назад. Со счетчиком свя-
заны две переменные величины:
 текущее значение (16-битовое целое число со знаком хра-
нит накопленное счетчиком значение);
 бит счетчика (этот бит устанавливается или сбрасывается
как результат сравнения текущего и предустановленного
значения).
Обращение к обеим переменным производится с помощью ад-
реса счетчика (C + номер счетчика). К какому из этих элементов,
биту счетчика или текущему значению, производится обращение,
зависит от используемой команды: команды с битовым операндом
обращаются к биту счетчика, тогда как команды, имеющие в каче-
стве операнда слово, обращаются к текущему значению.
Адресация аналоговых входов (AI)
S7–200 преобразует реальные аналоговые величины (напр.,
температуру или напряжение) в цифровые значения, имеющее
длину, равную слову (16 бит).
Формат: AIW[начальный адрес байта] AIW4.
Адресация аккумуляторов (AC)
Аккумуляторы – это элементы чтения/записи, которые могут ис-
пользоваться как память. CPU предоставляет в распоряжение че-
тыре 32-битовых аккумулятора (AC0, AC1, AC2 и AC3). К данным в
аккумуляторах можно обращаться как к байтам, словам или двой-
ным словам.
Формат: AC[номер аккумулятора] AC0.
Использование констант
Константы могут быть байтами, словами или двойными слова-
ми, например:
десятичная константа 20047;
шестнадцатеричная константа 16#4E4F;
константа ASCII ’текст в одиночных кавычках’;
формат с плавающей точкой (вещественный):
 +1.175495E-38 (положительное число);
 -1.175495E-38 (отрицательное число);
двоичный формат #1010_0101_1010_0101.
2. КОМАНДЫ SIMATIC

В этом разделе приводится набор команд SIMATIC для кон-


троллеров серии S7-200.

2.1. Битовые логические команды (Bit Logic)


В табл. 2.1 представлен состав, графическое изображение
и краткое описание битовых логических команд.
Таблица 2.1. Битовые логические команды (Bit Logic)
Стандартные контакты

бит Эти команды получают значение из памя-


ти или из регистра образа процесса, если
типом данных является I или Q. В блоках
L AND [И] и OR [ИЛИ] можно использовать
A не более семи входов.
бит
D Нормально открытый контакт замкнут
(включен), когда бит равен логической 1.
Нормально разомкнутый контакт замк-
нут (включен), когда бит равен логическо-
AND
му 0.
F В FBD команда, соответствующая нор-
B мально разомкнутому контакту, строится
OR путем помещения символа отрицания на
D
отметке входного сигнала

Положительный, отрицательный фронт

Контакт Положительный фронт пропус-


P
L кает поток сигнала в течение одного цик-
A ла при каждом появлении положительно-
N
D го фронта.
Контакт Отрицательный фронт пропус-
кает поток сигнала в течение одного цик-
P ла при каждом появлении отрицательного
F фронта.
В LAD команды Положительный и От-
B N
рицательный фронт представляются
D
контактами.
В FBD эти команды представляются бло-
ками P и N
Окончание табл. 2.1
Выход
бит В LAD и FBD при выполнении команды
L
Выход указанный бит устанавливается
A
равным потоку сигнала
D

F бит
B =
D

Установка, сброс (N битов)


бит Когда исполняются команды Установка и
S Сброс, устанавливается (включается) или
сбрасывается (выключается) указанное
L N количество разрядов (N), начиная со зна-
A бит чения, определенного параметром бит.
D R При использовании команды Сброс, если
указанный бит является битом таймера
N или счетчика, сбрасывается как таймер
бит или счетчик, так и текущее значение тай-
S мера или счетчика
F N
B
D бит
R
N

Триггеры
бит Триггеры с приоритетом установки (SR) и приорите-
S1 OUT том сброса (RS) обеспечивают двухстабильное со-
SR стояние выходного бита в соответствии с приве-
R денными ниже таблицами истинности:
бит SR RS
S OUT S1 R bit S R1 bit
RS 0 0 Q-1 0 0 Q-1
R1 1 0 1 1 0 1
0 1 0 0 1 0
1 1 1 1 1 0
Q-1 – предыдущее состояние
2.2. Команды сравнения (Compare)
В табл. 2.2 представлен состав, графическое изображение
и краткое описание команд сравнения.
Таблица 2.2. Команды сравнения
Сравнение байтов
N1 Команда Сравнить байты используется
L для сравнения двух величин: IN1 и IN2.
A ==B Возможны следующие сравнения: IN1 = IN2,
D N1 IN1 >= IN2, IN1 <= IN2, IN1 > IN2, IN1 < IN2 и
IN1 <> IN2.
Байты сравниваются без знака.
F ==B В LAD контакт включен, когда сравнение
B истинно.
D В FBD выход включен, когда сравнение
истинно
Сравнение целых чисел
N1 Команда Сравнить целые числа использу-
L ется для сравнения двух величин: IN1 и IN2.
==I
A Возможны следующие сравнения: IN1 = IN2,
D N1 IN1>= IN2, IN1 <= IN2, IN1 > IN2, IN1 < IN2
и IN1 <> IN2.
Целые числа сравниваются с учетом знака
==I (16#7FFF > 16#8000).
F
В LAD контакт включен, когда сравнение
B
истинно.
D
В FBD выход включен, когда сравнение ис-
тинно
Сравнение двойных слов
N1 Команда Сравнить двойные слова ис-
L
пользуется для сравнения двух величин:
A ==D
IN1 и IN2. Возможны следующие сравне-
D N1 ния: IN1 = IN2, IN1 >= IN2, IN1 <= IN2,
IN1 > IN2, IN1 < IN2 и IN1 <> IN2.
==D
Двойные слова сравниваются с учетом
F знака (16#7FFFFFFF > 16#80000000).
B В LAD контакт включен, когда сравнение
D истинно.
В FBD выход включен, когда сравнение
истинно
Окончание табл. 2.2
Сравнение вещественных чисел
N1 Команда Сравнить вещественные числа
L используется для сравнения двух величин:
A ==R N1 и IN2. Возможны следующие
D N1 сравнения: IN1 = IN2, IN1 >= IN2,
IN1 <= IN2, IN1 > IN2, IN1 < IN2
и IN1 <> IN2.
==R Вещественные числа сравниваются с уче-
том знака.
F
В LAD контакт включен, когда сравнение
B
истинно.
D
В FBD выход включен, когда сравнение
истинно

2.3. Команды для выполнения преобразований (Convert)


В табл. 2.3 представлен состав, графическое изображение
и краткое описание команд для выполнения преобразований.
Таблица 2.3. Команды для выполнения преобразований (Convert)
Преобразование BCD в целое и целого в BCD
Команда BCD в целое преобразует входное чис-
EN ENO ло (IN), представленное в двоично-десятичном
BCD_I формате, в целое число и загружает результат в
IN OUT переменную, указанную в OUT.
EN ENO
Допустимый диапазон для IN: от 0 до 9999 (BCD).
I_BCD Команда Целое в BCD преобразует входное целое
IN OUT число (IN) в двоично-десятичный формат и загру-
жает результат в переменную, указанную в OUT.
Допустимый диапазон для IN: от 0 до 9999 (целое)

Преобразование двойного целого в вещественное

DI R Команда Двойное целое в вещественное преобра-


EN ENO зует 32-битовое целое со знаком (IN) в 32-битовое
вещественное число и помещает результат в пе-
IN OUT ременную, указанную в OUT
Продолжение табл. 2.3
Округление

ROUND Команда Округлить преобразует вещественное


EN ENO число (IN) в двойное целое число и помещает
результат в переменную, указанную в OUT. Если
IN OUT дробная часть равна 0,5 или больше, то число ок-
ругляется в большую сторону

Округление отбрасыванием

TRUNG Команда Округлить отбрасыванием преобразует


EN ENO 32-битовое вещественное число (IN) в 32-битовое
целое число со знаком и помещает результат в
IN OUT переменную, указанную в OUT. Преобразуется
только целая часть вещественного числа, а дроб-
ная часть отбрасывается

Преобразование двойного целого числа в целое

DI_I Команда Двойное целое в целое преобразует


EN ENO двойное целое число (IN) в целое число и помеща-
ет результат в переменную, указанную в OUT.
IN OUT Если преобразованное вами значение слишком
велико, чтобы быть представленным на выходе, то
устанавливается бит переполнения, а выход не
изменяется

Преобразование целого числа в двойное целое число


Команда Целое в двойное целое преобразует це-
лое число (IN) в двойное целое число и помещает
I_DI
EN ENO результат в переменную, указанную в OUT. Знак
распространяется
IN OUT

Преобразование целого числа в вещественное


Для преобразования целого числа в вещественное используется
команда Целое в двойное целое, а затем команда Двойное целое
в вещественное
Окончание табл. 2.3
Преобразование байта в целое число
Команда Байт в целое преобразует байт (IN)
в целое число и помещает результат в перемен-
B_I
EN ENO ную, указанную в OUT. Байт не имеет знака, по-
этому распространение знака не происходит
IN OUT

Преобразование целого числа в байт


Команда Целое в байт преобразует слово (IN)
в байт и помещает результат в переменную, ука-
I_B
EN ENO занную в OUT.
Преобразуются значения от 0 до 255. Все осталь-
IN OUT ные значения приводят к переполнению и не
влияют на выход

2.4. Арифметические команды над целыми числами


(Integer Math)
В табл. 2.4 представлен состав, графическое изображение и
краткое описание арифметических команд над целыми числами.
Таблица 2.4. Арифметические команды над целыми числами
Сложение и вычитание целых чисел

ADD_I Команды Сложить целые числа и Вычесть целые


EN ENO числа складывают или вычитают два 16-битовых
целых числа и дают 16-битовый результат
IN1 OUT (OUT).
IN2 В LAD и FBD: IN1 + IN2 = OUT IN1 – IN2 = OUT

SUB_I
EN ENO
IN1 OUT
IN2
Продолжение табл. 2.4
Сложение и вычитание двойных целых чисел

ADD_DI Команды Сложить двойные целые числа и


EN ENO Вычесть двойные целые числа складывают или
вычитают два 32-битовых целых числа и дают
IN1 OUT 32-битовый результат (OUT).
IN2 В LAD и FBD: IN1 + IN2 = OUT IN1 – IN2 = OUT

SUB_DI
EN ENO
IN1 OUT
IN2

Умножение и деление целых чисел

MUL_I Команда Умножить целые числа перемножает два


EN ENO 16-битовых целых числа и дает 16-битовое произ-
ведение.
IN1 OUT Команда Разделить целые числа делит два
IN2 16-битовых целых числа и дает 16-битовое частное.
Остаток не сохраняется.
DIV _I Бит переполнения устанавливается, если
EN ENO результат занимает более одного слова.
В LAD и FBD: IN1*N2 = OUT IN1 / IN2 = OUT
IN1 OUT
IN2

Умножение и деление двойных целых чисел

MUL_DI Команда Умножить двойные целые числа


EN ENO перемножает два 32-битовых целых числа и дает
32-битовое произведение.
IN1 OUT Команда Разделить двойные целые числа делит
IN2 два 32-битовых целых числа и дает 32-битовое
частное. Остаток не сохраняется.
DIV _DI В LAD и FBD: IN1*N2 = OUT IN1 / IN2 = OUT
EN ENO
IN1 OUT
IN2
Окончание табл. 2.4
Умножение и деление целых чисел
с представлением результата в виде двойного целого числа
MUL Команда Умножить целые числа с представлени-
EN ENO ем результата в виде двойного целого числа
перемножает два 16-битовых целых числа и дает
IN1 OUT 32-битовое произведение.
IN2 Команда Разделить целые числа с представле-
нием результата в виде двойного целого числа
DIV делит два 16-битовых целых числа и дает
EN ENO 32-битовый результат, состоящий из 16-битового
остатка (старшее слово) и 16-битового частного
IN1 OUT (младшее слово)
IN2

2.5. Арифметические команды


над вещественными числами (Floating-Point Math)
В табл. 2.5 представлен состав, графическое изображение
и краткое описание арифметических команд над вещественными
числами.
Таблица 2.5. Арифметические команды над вещественными числами
Сложение и вычитание вещественных чисел

ADD_R Команды Сложить вещественные числа и


EN ENO Вычесть вещественные числа складывают или
вычитают два 32-битовых вещественных числа,
IN1 OUT дают результат в виде 32-битового вещественного
IN2 числа (OUT).
В LAD и FBD: IN1 + IN2 = OUT IN1 – IN2 = OUT
SUB_R
EN ENO
IN1 OUT
IN2

Окончание табл. 2.5


Умножение и деление вещественных чисел

MUL_R Команда Умножить вещественные числа


EN ENO перемножает два 32-битовых вещественных числа
и дает результат в виде 32-битового вещественно-
IN1 OUT го числа (OUT).
IN2 Команда Разделить вещественные числа делит
два 32-битовых вещественных числа и дает част-
DIV_R ное в виде 32-битового вещественного числа.
EN ENO В LAD и FBD: IN1*N2 = OUT IN1 / IN2 = OUT
IN1 OUT
IN2

Квадратный корень

SQRT Команда Квадратный корень извлекает квадрат-


EN ENO ный корень из 32-битового вещественного числа
(IN) и дает результат в виде 32-битового вещест-
IN OUT венного числа (OUT), как показано в уравнении
IN = OUT

2.6. Команды для пересылки (Move)


В табл. 2.6 представлен состав, графическое изображение
и краткое описание команд для пересылки.
Таблица 2.6. Команды для пересылки
Пересылка байта, слова, двойного слова, вещественного числа

MOV_B Команда Переслать байт пересылает входной


EN ENO байт (IN) в выходной байт (OUT). Входной байт
командой пересылки не изменяется.
IN OUT Команда Переслать слово пересылает входное
MOV_W
слово (IN) в выходное слово (OUT). Входное слово
EN ENO командой пересылки не изменяется.
Команда Переслать двойное слово пересылает
IN OUT входное двойное слово (IN) в выходное двойное
слово (OUT). Входное двойное слово командой
MOV_DW пересылки не изменяется.
EN ENO
Команда Переслать вещественное число пере-
IN OUT сылает входное вещественное число (двойное
слово, 32 бита) (IN) в выходное (OUT). Входное
двойное слово командой пересылки не изменяется
Окончание табл. 2.6
Групповая пересылка байтов, слов, двойных слов

BLKMOV_B Команда Переслать группу байтов пересылает


EN ENO несколько байтов (N) из входного адреса (IN)
в выходной адрес (OUT). N может иметь значения
IN1 OUT от 1 до 255.
IN2 Команда Переслать группу слов пересылает
несколько слов (N) из входного адреса (IN)
BLKMOV_W в выходной адрес (OUT). N может иметь значения
EN ENO от 1 до 255.
Команда Переслать группу двойных слов
IN1 OUT пересылает несколько двойных слов (N) из вход-
IN2 ного адреса (IN) в выходной адрес (OUT). N мо-
жет иметь значения от 1 до 255

2.7. Логические команды SIMATIC (Logical Operations)


В табл. 2.7 представлен состав, графическое изображение
и краткое описание логических команд.
Таблица 2.7. Логические команды
Логические операции И, ИЛИ и исключающее ИЛИ с байтами

WAND_B Команда Логическое И с байтами сопрягает соот-


EN ENO ветствующие биты двух входных байтов в соответ-
ствии с таблицей истинности этой логической опе-
IN1 OUT рации и загружает результат (OUT) в байт.
IN2 Команда Логическое ИЛИ с байтами сопрягает со-
ответствующие биты двух входных байтов в соот-
WOR_B ветствии с таблицей истинности этой логической
EN ENO операции и загружает результат (OUT) в байт.
Команда Исключающее ИЛИ с байтами сопрягает
IN1 OUT соответствующие биты двух входных байтов в соот-
IN2 ветствии с таблицей истинности этой логической
операции и загружает результат (OUT) в байт
WXOR_B
EN ENO
IN1 OUT
IN2
В библиотеке инструкций S7-200 имеются логические команды для
работы со словами и двойными словами:
 WAND_W – логическое И со словами;
 WOR_W – логическое ИЛИ со словами;
 WXOR_W – исключающее ИЛИ со словами;
 WAND_D – логическое И с двойными словами;
 WOR_D – логическое ИЛИ с двойными словами;
 WXOR_D – исключающее ИЛИ с двойными словами;
 INV_B – инвертировать байт;
 INV_W – инвертировать слово;
 INV_DW – инвертировать двойное слово.

2.8. Таймерные команды (Timers)


В табл. 2.8 представлен состав, графическое изображение
и краткое описание таймерных команд.
Таблица 2.8. Таймерные команды
Таймер с задержкой включения,
таймер с задержкой включения с запоминанием,
таймер с задержкой выключения (Timers)
TXXX Команды Таймер с задержкой включения (TON)
TON и Таймер с задержкой включения с запоминанием
IN (TONR) отсчитывают время, когда включен разре-
шающий вход. Когда текущее значение (Txxx) стано-
PT вится больше или равно предустановленному вре-
мени (PT), бит таймера устанавливается. Текущее
TXXX
значение Таймера с задержкой включения сбрасы-
TONR вается, когда выключается разрешающий вход, то-
IN гда как текущее значение Таймера с задержкой
PT включения с запоминанием сохраняется, когда этот
вход выключается.
TXXX Таймер с задержкой выключения (TOF) использует-
TOF ся для задержки выключения выхода на фиксиро-
IN ванный интервал времени после выключения входа.
PT Когда включается разрешающий вход, немедленно
включается бит таймера, а текущее значение стано-
вится равным нулю. Когда вход выключается, тай-
мер начинает отсчет времени, пока истекшее время
не достигнет предустановленного времени. Когда
предустановленное время достигнуто, бит таймера
сбрасывается, а отсчет текущего значения прекра-
щается
Имеющиеся три вида таймеров отличаются разрешением. Раз-
решение определяется номером таймера (табл. 2.9). Любое теку-
щее значение таймера является кратным разрешению. Реальное
время, отсчитанное таймером, определяется как произведение
текущего значения и разрешения. Например, текущее значение 50
на 10-миллисекундном таймере представляет 500 мс.
Таблица 2.9. Номера таймеров и разрешения
Разрешение
Максимальное
в милли- Номер
Тип таймера значение
секундах таймера
в секундах (с)
(мс)
32,767 с T0, T64
1 мс
(0,546 мин)
TONR 327,67 с T1÷T4,
10 мс
(с запоминанием) (5,46 мин) T65÷68
3276,7 с T5÷31,
100 мс
(54,6 мин) T69÷95
32,767 с T32, T96
1 мс
(0,546 мин)
TON, TOF 327,67 с T33÷36,
10 мс
(без запоминания) (5,46 мин) T97÷100
3276,7 с T37÷63,
100 мс
(54,6 мин) T101÷255
На рис. 2.1 приведен пример использования таймера с задерж-
кой включения.
LAD FBD
I2.0 T33 T33
IN TON I2.0 IN TON

3 PT 3 PT

Временная диаграмма
I2.0 Макс.зн.=32767

T33 (текущее
РТ=3 РТ=3
значение)

T33 (бит )

Рис. 2.1. Пример таймера с задержкой включения


На рис. 2.2 приведен пример использования таймера с задерж-
кой включения с запоминанием.
LAD FBD
I2.1 T2 T2
IN TONR I2.1 IN TONR

10 PT +10 PT

Временная диаграмма
Макс.зн.=32767

T2 (текущее
значение)
T2 ( бит)

Рис. 2.2. Пример таймера с задержкой включения с запоминанием


На рис. 2.3 приведен пример использования таймера с задерж-
кой выключения.
LAD FBD
I0.0 T33 T33
IN TOF I0.0 IN TOF

3 PT +3 PT

Временная диаграмма

T33 (текущее
значение)

T2 ( бит)

Рис. 2.3. Пример таймера с задержкой выключения


2.9. Команды SIMATIC для операций счета (Counters)
В табл. 2.10 представлен состав, графическое изображение и
краткое описание команд для операций счета.
Таблица 2.10. Команды для операций счета
Прямой счет, реверсивный счет, обратный счет

CXXX Команда Прямой счет увеличивает значение счет-


CTU чика вплоть до максимального значения при появ-
CU лении нарастающих фронтов сигнала на входе CU
(Count Up = Прямой счет). Когда текущее значение
R (Сххх) больше или равно предустановленному зна-
PV чению (PV), бит счетчика (Cxxx) устанавливается.
Счетчик сбрасывается, когда включается вход
CXXX сброса R. Он прекращает счет при достижении PV.
CTUD Команда Реверсивный счет увеличивает значение
CU счетчика при появлении нарастающих фронтов сиг-
нала на входе CU).Она уменьшает значение счет-
CD чика при появлении нарастающих фронтов сигнала
R на входе CD (Count Down = Обратный счет). Когда
текущее значение (Сххх) больше или равно предус-
PV тановленному значению (PV), бит счетчика (Cxxx)
устанавливается. Счетчик сбрасывается, когда
CXXX включается вход сброса R.
CTD Команда Обратный счет уменьшает значение
CD
счетчика от предустановленного значения при по-
LD явлении нарастающих фронтов сигнала на входе
CD. Когда текущее значение равно нулю, бит счет-
PV чика (Cxxx) включается. Счетчик сбрасывает свой
бит (Cxxx) и загружает текущее значение предуста-
новленным значением (PV), когда включается вход
загрузки (LD). Обратный счет прекращается при
достижении нуля.
Область счетчиков: Cxxx = C0–C255

На рис. 2.4 приведен пример использования обратного счетчика


в редакторах LAD и FBD.
LAD FBD
I3.0 C50 C50
CD CTD I3.0 CD CTD

I1.0
LD I1.0 LD

3 PV +3 PV

Временная диаграмма

Рис. 2.4. Пример использования обратного счетчика


На рис. 2.5 приведен пример использования реверсивного
счетчика в редакторах LAD и FBD.
LAD FBD
I4.0 C48 C48
CD CTUD I4.0 CD CTD
I3.0
LD I3.0 LD
I2.0
R I2.0 R

4 PV 4 PV

Рис. 2.5 (начало). Пример использования реверсивного счетчика


Рис. 2.5 (окончание). Пример использования реверсивного счетчика

2.10. Команды для управления программой


(Program Control)
В табл. 2.11 представлен состав, графическое изображение
и краткое описание команд для управления программой.
Таблица 2.11. Команды для управления программой
Условное завершение
Команда Условное завершение завершает
L
главную программу пользователя в зави-
A END симости от результата предшествующей
D
логической операции
F END
B
D

STOP
Команда STOP завершает выполнение
L STOP программы, вызывая переход CPU из RUN
A
в STOP
D

F
STOP
B
D
Продолжение табл. 2.11
Переход на метку, метка
Команда Перейти на метку осуществляет
n переход к указанной метке (n) внутри про-
граммы.
L JMP Команда Метка отмечает положение цели
A перехода (n).
D n
Операнд n − константа от 0 до 255.
LBL Тип данных: WORD.
Команда перехода и соответствующая мет-
ка должны находиться в главной программе,
n подпрограмме или программе обработки
прерывания
F JMP
B
n
D
LBL

Подпрограмма, возврат из подпрограммы


Команда Вызвать подпрограмму передает
SBR
управление подпрограмме (n). Команду Вы-
EN звать подпрограмму можно использовать с
L
A параметрами или без них. Для добавления
D RET подпрограммы выберите из меню
Edit→Insert→Subroutine [Редактиро-
вать→Вставить→Подпрограмма].
Команда Условный возврат из подпро-
граммы используется для завершения под-
SBRn программы в зависимости от предшествую-
EN
F щей логической операции.
B Как только исполнение подпрограммы за-
D вершается, управление возвращается ко-
RET манде, следующей за вызовом подпрограм-
мы

Окончание табл. 2.11


FOR и NEXT
Команда FOR выполняет команды, рас-
положенные между операторами FOR и
FOR
NEXT.
EN
Необходимо задать значение индекса или
счетчик цикла (INDX), начальное значе-
INDX
ние (INIT) и конечное значение (FINAL).
L
Команда NEXT отмечает конец цикла
A INIT
FOR и устанавливает вершину стека в 1.
D
FINAL Например, если значение INIT равно 1,
значение FINAL равно 10, то команды
между FOR и NEXT исполняются 10 раз,
NEXT причем значение INDX каждый раз увели-
чивается на единицу: 1, 2, 3, ...10

FOR
EN ENO

INDX
F
B INIT
D
FINAL

NEXT

2.11. Команды для организации прерываний (Interrupt)


В табл. 2.12 представлен состав, графическое изображение
и краткое описание команд для организации прерываний.
Таблица 2.12. Команды для организации прерываний
Назначение и отсоединение прерывания
Команда Назначить прерывание связывает
ATCH
прерывающее событие (EVNT) с номером
EN ENO
программы обработки прерывания (INT)
и разблокирует прерывающее событие.
INT
Команда Отсоединить прерывание разры-
вает связь прерывающего события (EVNT) со
EVNT
всеми программами обработки прерываний и
блокирует прерывающее событие
DTCH
EN ENO

EVNT

Условный возврат из программы обработки прерывания


Команда Условный возврат из про-
L RETI граммы обработки прерывания может
A быть использована для возврата из
D программы обработки прерывания
в зависимости от условия, задаваемого
предшествующей логикой
F
B
RETI
D

Окончание табл. 2.12


Блокировка и разблокировка прерываний
Команда Разблокировать прерывания
ENI глобально разблокирует обработку всех
L назначенных прерывающих событий. Ко-
A манда Заблокировать прерывания гло-
D бально блокирует обработку всех преры-
DISI
вающих событий
ENI
F
B
D
DISI

В табл. 2.13 приведен список основных прерывающих событий,


вызывающих прерывания.
Таблица 2.13. Прерывающие события
Номер
Описание прерывания
события
0 Нарастающий фронт, I0.0
1 Падающий фронт, I0.0
2 Нарастающий фронт, I0.1
3 Падающий фронт, I0.1
4 Нарастающий фронт, I0.2
5 Падающий фронт, I0.2
6 Нарастающий фронт, I0.3
7 Падающий фронт, I0.3
8 Порт 0: символ принят
9 Порт 0: передача завершена
10 Управляемое временем прерывание 0, SMB34
11 Управляемое временем прерывание 1, SMB35
12 HSC0: CV=PV (текущее значение = предустановленному)
19 PLS0: отчет количества импульсов завершен
20 PLS1: отчет количества импульсов завершен
21 Таймер Т32: прерывание CT=PT
22 Таймер Т96: прерывание CT=PT
23 Порт 0: прием сообщения завершен

3. ЛАБОРАТОРНЫЙ СТЕНД
НА БАЗЕ КОНТРОЛЛЕРА S7-200
3.1. Состав стенда
Стенд состоит из персонального компьютера с установленной
средой программирования и отладки Step7-Micro/Win 32, контрол-
лера S7200 (CPU222) c блоком расширения EM231(4 аналоговых
входа), соединительного кабеля PC/PPI и имитационного пульта.
На пульте установлены: включатель питания (~220), потенциометр
(AIW0) и три переключателя (I0.0, I0.1, I0.2). Напряжение с потен-
циометра, которое можно изменять вручную в пределах 0÷10 В,
подключено к первому аналоговому входу блока расширения
EM231. Переключатели I0.0, I0.1 и I0/2 коммутируют постоянное
напряжение 24В, которое затем подается на первые три дискрет-
ных входа контроллера.
Кабель PC/PPI соединяет контроллер с персональным компью-
тером через последовательный Сом-порт. В процессе установки
программы Step7-Micro/Win 32 назначается СОМ-порт № 1 по умол-
чанию. При необходимости этот параметр, а также другие парамет-
ры соединения можно перенастроить в опции System Block→Port
программы.
Состояние входных и выходных дискретных сигналов во время
выполнения программы можно контролировать по светодиодным
индикаторам, установленным в верхней части корпуса контроллера.
3.2. Работа в программе Step7-Micro/Win 32
Запуск программы производится одноименным ярлыком с рабо-
чего стола компьютера. В качестве дополнительной информации,
одновременно с программой, в свернутом виде запускается тексто-
вый файл Instructions с подробным описанием команд Simatic.
Рабочее пространство программы показано на рис. 3.1.
В общем случае последовательность действий при разработке
и проверке пользовательских программ в данной среде будут сле-
дующей.
1. Выбирается редактор, в каком предполагается работать
(View→STL, Ladder или
FBD).

Рис. 3.1. Рабочее пространство программы Step7-Micro/Win 32


2. Открывается рабочее поле Main – для основной програм-
мы, SBR – для подпрограмм, INT – для подпрограмм прерываний.
По умолчанию сразу после запуска программы открыто поле Main.
3. Для установки требуемой команды на рабочем поле про-
граммы необходимо в библиотеке инструкций (Instructions) открыть
папку с категорией, к какой относится данная команда, выбрать
команду и движением мыши переместить ее в необходимое место.
4. После перемещения всех необходимых команд произво-
дится их конфигурирование (соединение входов-выходов) и уста-
новка требуемых атрибутов команд.
Конфигурирование производится с помощью функций

, расположенных на панели инструментов. Эти функ-


ции дают возможность создавать линии связи вниз, вверх, влево,
вправо соответственно.
Все поля, отмеченные знаками ???? красного цвета, обязатель-
но должны быть заполнены в соответствии с их смысловым назна-
чением.
При выполнении действий по этому пункту и п. 3 следует руко-
водствоваться следующими правилами:
- конфигурировать (соединять) можно только те выходы и вхо-
ды команд, которые имеют сигналы формата bit (лог. 0 или лог.1).
Передача сигналов других форматов (целое, двойное целое, ве-
щественное и др.) от одной команды к другой может производить-
ся только через ту или иную область памяти (см. рис. 3.1);
- в одной цепи (Network) программы можно помещать и конфи-
гурировать команды только таким образом, чтобы логический ре-
зультат их одиночного или совместного действия был единствен-
ный. Нельзя, например, в одном сегменте сформировать разреше-
ния на включение двух или более дискретных выходов, сформиро-
вать два или более разрешения на выполнение команд (входы
EN команд), две или более команды сравнения.
5. Производится компиляция программы по пути
PLC→Compile или нажатием на значок , расположенный на
панели инструментов. На данном этапе происходит контроль со-
ставленной программы на наличие ошибок. В левом нижнем углу
рабочего поля программы появляется сообщение об ошибках (To-
tal Errors 0 или Total Errors n, где n – количество ошибок). При их
отсутствии можно продолжать дальнейшие действия, при наличии
– искать и устранять.
6. Производится загрузка рабочей программы в контроллер
по пути File→Download или нажатием на значок . В процессе
загрузки потребуется подтверждение перевода контроллера в ре-
жим STOP и подтверждение окончания загрузки.
7. Далее производится перевод контроллера в режим Run по
пути PLC→RUN или нажатием на значок . После подтвержде-
ния перевода в этот режим контроллер начинает выполнять дей-
ствия, предписанные загруженной программой.
8. Для просмотра состояния входных и выходных перемен-
ных программа переводится в режим контроля выполнения по пути
Debug→Program Status или путем нажатия на значок .
При возникновении необходимости редактирования программы
нужно выйти из режима Program Status, сделать требуемые изме-
нения и начать все с п. 5.
4. ЛАБОРАТОРНЫЙ ПРАКТИКУМ
Лабораторная работа 1
"Изучение особенностей работы с программой STEP 7-Micro/Win 32
на примерах применения команд пересылки и преобразования "
Задание 1. Переслать в область памяти V константы мини-
мальной и максимальной величины форматов: BOOL, BYTE, INT,
DINT и REAL.
Задание 2. Проверить действия команд B_I, I_B, I_DI, DI_I,
DI_W, BCD_I, I_BCD, ROUND и TRUNC, устанавливая на входах
константы максимальной величины различных форматов (см. за-
дание 1).
Лабораторная работа 2
"Изучение особенностей применения команд битовой логики"
Используя команды Стандартных контактов, создать и про-
верить сначала в редакторе LAD, а затем – в FBD, следующие про-
граммы.
Задание 1. Включить дискретный выход Q0.0, если включен
дискретный вход I0.0 или I0.1.
Задание 2. Включить дискретный выход Q0.1, если включены
дискретные входы I0.0 и I0.1 или I0.2.
Задание 3. Включить дискретный выход Q0.2 только в том слу-
чае, если дискретные входы I0.0 и I0.1 имеют противоположные
состояния.
Задание 4. Включить дискретный выход Q0.3, если включен
дискретный вход I0.0. Включить дискретный выход Q0.4, если
включен дискретный вход I0.1. Исключить вероятность одновре-
менного включения указанных выходов.
Задание 5. Реализовать работу выхода Q0.5 в соответствии с
диаграммой, приведенной на рис. 4.1.

I0.0

Q0.5

I0.1
Рис. 4.1. Диаграмма работы дискретного выхода Q0.5
Лабораторная работа 3
"Изучение особенностей применения арифметических команд
над целыми и вещественными числами"
Разработать и проверить программы, которые реализуют следую-
щие математические действия (задание выполнить по вариантам).
2
Вариант 1. Y1 = X1*X2/X3 − X4, Y2 = AIW0 /X1. Если Y1 > Y2, то
Q0.0 = ON.
X1 = 10, X2 = 23, X3 = 3, X4 = 2.2.
2
Вариант 2. Y1 = X2*X1/X4 − X3, Y2 = AIW 0 /X3 . Если Y1 > Y2, то
Q0.0 = ON.
X1 = 10, X2 = 23, X3 = 3, X4 = 2.2.
2 2
Вариант 3. Y1 = X1/(X2 + X3 − X4), Y2 = AIW0 /X3 . Если Y1 > Y2,
то Q0.0 = ON.
X1 = 1000, X2 = 23, X3 = 3, X4 = 2.2.
2
Вариант 4. Y1 = X1/(X2 − X3) + X4, Y2 = AIW 0 /X4 . Если Y1 < Y2,
то Q0.0 = ON.
X1 = 100, X2 = 23, X3 = 3, X4 = 2.2.
2 2
Вариант 5. Y1 = X1 − (X2 – X4)/(X2 + X3), Y2 = AIW0 /X1 . Если
Y1 < Y2, то Q0.0 = ON.
X1 = 100, X2 = 23, X3 = 3, X4 = 2.2.
Вариант 6. Y1 = X1/(X2 − X3 + Х1) + X4, Y2 = AIW 0 /X42. Если
Y1 < Y2, то Q0.0 = ON.
X1 = 1000, X2 = 23, X3 = 3, X4 = 2.2.

Лабораторная работа 4
"Изучение особенностей применения команд сравнения"
Используя команды сравнения и битовой логики, создать и про-
верить программы, реализующие следующие условия.
Задание 1. Включить дискретный выход Q0.0, если AIW0 ≥ 16500
и Q0.1, если AIW0 ≤ 15500 (AIW0 – это область памяти, куда запи-
сывается результат опроса аналогового входа 1, которая имеет
формат данных INT). В качестве разрешающего сигнала для команд
сравнения может быть использован вход I0.0 либо бит специальной
памяти SM0.0, который постоянно находится в состоянии ON.
Задание 2. Включить дискретный выход Q0.1, если AIW0 ≥ 16500,8.
Задание 3. Управлять состоянием выхода Q0.2 в соответствии с
диаграммой, приведенной на рис. 4.2.

Q0.2 Если AIW0 ≥ Xзд, то Q0.2 = ON;


ON если AIW0 ≤ Xзд − Δзв,то Q0.2 = OFF;
если Xзд − Δзв < AIW0 < Xзд, то Q0.2 = Q-1.
OFF
Q-1 – предыдущее состояние выхода Q0.2.
Xзд − Δзв Xзд AIWO
Рис. 4.2. Диаграмма состояния дискретного выхода Q0.2
Значение задания Х зд = 16000 предварительно должно быть
сохранено в области памяти VW0, значение зоны возврата
∆зв = 500 − в области памяти VW2, а результат вычисления
Хзд − ∆зв (VW0 – VW2) − в области памяти VW4.
При составлении программы использовать команды MOV_I,
SUB_I, ≥I, ≤I, SR.
Проследить за состоянием дискретного выхода Q0.2 при плав-
ном увеличении и уменьшении значения аналогового входа AIW0.
Задания выполнить сначала в редакторе LAD, а затем – в FBD.
Лабораторная работа 5
"Изучение особенностей применения команд таймеров"
Исследовать принципы работы различных таймеров на приме-
ре программы, приведенной на рис. 4.3.
Network 1 Network 2
I0.0 T32
T32 Q0.0
IN TON

5000 PT
Network 3
T1
IN TONR T1 Q0.1

500 PT
T37 Network 4
P IN TOF
T37 Q0.2
50 PT
Рис. 4.3. Фрагмент программы с применением команд таймеров

Разработать и проверить программы управления состоянием


дискретных выходов Q0.0÷Q0.4 в соответствии с диаграммами,
приведенными на рис. 4.4.
Задание 1 Задание 2

I0.0 I0.0

Q0.0 Q0.1
5с 6с 4с 4с 4с 4с

Задание 3 Задание 4

I0.0 I0.0

Q0.2 Q0.3
4с 3с 4с 3с 3с 3с
Длительность импульсов должна прямо-
пропорционально зависеть от AIW0
и изменяться в диапазоне 0÷5 с

Рис. 4.4. Диаграммы состояния дискретных выходов Q0.0÷Q0.4


Лабораторная работа 6
"Изучение особенностей применения команд счетчиков"
Исследовать принципы работы различных счетчиков на при-
мере программы, приведенной на рис. 4.5.
Network 1 Network 3
I0.0 SM0.5 C1 I0.0 SM0.5 C1
CU CTU CU CTD

I0.1 I0.1
R LD
5 PV 5 PV
Network 4
Network 2
C1 Q0.0
I0.0 SM0.5 C2
CU CTUD
Network 5
I0.1 SM0.5
C2 Q0.1
CD

I0.2
Network 6
R
C3 Q0.2
5 PV

Рис. 4.5. Фрагмент программы с применением команд счетчиков


Применяя команды счетчиков, разработать и проверить про-
граммы управления состоянием дискретных выходов Q0.0÷Q0.4 в
соответствии с диаграммами, приведенными на рис. 4.4.

Лабораторная работа 7
"Изучение особенностей применения логических команд, команд
для управления программой и организации прерываний "
Задание 1. Исследовать принципы работы команд WAND_B,
WOR_B и WXOR_B, используя для преобразования шестнадцате-
ричную константу A6 и регистр образа процесса IB0.
Задание 2. В основной программе MAIN организовать пере-
сылку содержимого области памяти VW0 в VW2 и таймер с пере-
запуском через каждые 2 секунды. По биту таймера перейти на
подпрограмму SBR_0.
В подпрограмме SBR_0 выполнить суммирование VW0 + 1, за-
писывая результат в VW0. Выход из подпрограммы производить по
окончании выполнения команды суммирования.
Проанализировать ход выполнения всей программы, наблю-
дая за содержимым области памяти VW2.
Задание 3. В основной программе MAIN организовать пере-
сылку содержимого области памяти VW0 в VW2. Используя номер
события 10 (см. табл. 2.13), организовать переход на подпрограм-
му обработки прерывания INT_0 через каждые 250 миллисекунд.
В подпрограмме INT_0 выполнить суммирование VW0 + 1, за-
писывая результат в VW0. Выход из подпрограммы производить по
окончании выполнения команды суммирования.
Проанализировать ход выполнения всей программы, наблю-
дая за содержимым области памяти VW2.
Повторить данное задание, используя номер события 1.
СОДЕРЖАНИЕ

1. ТЕХНИЧЕСКОЕ И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ


МИКРОКОНТРОЛЛЕРОВ S7-200 3
1.1. Сравнение технических характеристик
микроконтроллеров S7-200 3
1.2. Основные компоненты микроконтроллера S7-200 5
1.3. Концепции языков программирования
и редакторов S7-200 6
1.4. Типы данных для переменных 9
1.5. Основные элементы для построения программы 10
1.6. Объяснение цикла сканирования CPU 10
1.7. Память CPU: типы данных и способы адресации 12
1.8. Прямая адресация областей памяти CPU 14
2. КОМАНДЫ SIMATIC 19
2.1. Битовые логические команды (Bit Logic) 19
2.2. Команды сравнения (Compare) 21
2.3. Команды для выполнения преобразований
(Convert) 22
2.4. Арифметические команды над целыми числами
(Integer Math) 24
2.5. Арифметические команды над вещественными
числами (Floating-Point Math) 26
2.6. Команды для пересылки (Move) 27
2.7. Логические команды (Logical Operations) 28
2.8. Таймерные команды (Timers) 29
2.9. Команды для операций счета (Counters) 32
2.10. Команды для управления программой
(Program Control) 34
2.11. Команды для организации прерываний (Interrupt) 37
3. ЛАБОРАТОРНЫЙ СТЕНД НА БАЗЕ КОНТРОЛЛЕРА S7-200 39
3.1. Состав стенда 39
3.2. Работа в программе Step7-Micro/Win 32 39
4. ЛАБОРАТОРНЫЙ ПРАКТИКУМ 42
4
5
4
8
МИКРОПРОЦЕССОРНЫЙ КОНТРОЛЛЕР
SIEMENS S7-200

Методические указания
к выполнению лабораторных работ по дисциплине
"Основы микропроцессорной техники"

Составитель ПУШКОВ Виктор Михайлович,

Редактор М.А. Иванова

Подписано в печать 20.12.2010. Формат 60 х 84 1/16.


Печать плоская. Усл.-печ. л. 2,79 . Тираж 50 экз. Заказ №

ГОУВПО "Ивановский государственный энергетический университет


имени В. И. Ленина"
Отпечатано в УИУНЛ ИГЭУ
153003, г. Иваново, ул. Рабфаковская, 34.

Вам также может понравиться