1882
.pdfЮ.С. Слепокуров
ОСНОВЫ ПРОГРАММИРОВАНИЯ МИКРОКОНТРОЛЛЕРОВ
НА ЯЗЫКЕ STEP 7
Учебное пособие
2004
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Государственное образовательное учреждение высшего профессионального образования “Воронежский государственный технический университет”
Ю.С. Слепокуров
ОСНОВЫ ПРОГРАММИРОВАНИЯ МИКРОКОНТРОЛЛЕРОВ НА ЯЗЫКЕ STEP 7
Утверждено редакционно-издательским советом в качестве учебного пособия
Воронеж 2004 1
УДК 681.142.2
Слепокуров Ю.С. Основы программирования микроконтроллеров на языке STEP 7: Учеб. пособие. Воронеж: Воронеж. гос. техн. ун-т. Воронеж, 2004. 139 с.
В учебном пособии рассматривается принцип организации программного обеспечения в технологических контроллерах SIMATIC S7 фирмы SIEMENS: типы программных блоков и их назначение, порядок работы организационных блоков в программе пользователя, правила создания блоков и использования символических имен. Дано описание основных операторов языка программирования контроллеров AWL (текстовый язык программирования, который может быть использован для создания операторной части логического блока) и приведены примеры текстов программ.
Предназначено для студентов специальности 210300 “Роботы и робототехнические системы”, изучающих курс “Программирование роботов и РТС”. Пособие будет полезно студентам других специальностей, в программе обучения которых имеются подобные дисциплины, а также инженерам и аспирантам, занимающимся разработкой программного обеспечения для систем управления технологическими процессами.
Учебное пособие подготовлено к изданию в электронном виде и содержится в файле “Step7 full.pdf”.
Табл. 19. Ил. 39. Библиогр.: 2 назв.
Научный редактор д-р техн. наук, профессор А.И. Шиянов
Рецензенты: кафедра информатики и вычислительной техники Международного института компьютерных технологий (зав. кафедрой д-р техн. наук, проф. О.Я. Кравец); канд. техн. наук О.Ю. Таратынов
Слепокуров Ю.С., 2004
Воронежский государственный технический университет, 2004
2
1. ЗНАКОМСТВО С ПРОДУКТОМ
ЧТО ТАКОЕ STEP 7?
STEP 7 – это пакет стандартного программного обеспечения, используемый для конфигурирования и программирования программируемых логических контроллеров SIMATIC. Он является частью промышленного программного обеспечения SIMATIC.
Языки программирования SIMATIC и встроенные в STEP 7 представления языков соответствуют требованиям стандарта EN 61131-3 или IEC 1131-3. Стандартный пакет работает в операционной системе Windows 95/98/NT и соответствует графической и объектно-ориентированной философии работы Windows.
Работа с пакетом заключается в последовательном выполнении определенного цикла операций (на этапе обучения и работы в среде программного отладчика ряд операций не обязателен):
•Установка и авторизация. При первом использовании STEP 7, установите его и перенесите авторизацию с дискеты на жесткий диск.
•Спланируйте концепцию использования вашего контроллера. Перед началом работы со STEP 7 спланируйте решение задачи автоматизации от деления процесса на отдельные задачи до создания диаграммы конфигурации.
•Спроектируйте структуру программы. Преобразуйте задачи, описанные в эскизном проекте вашего контроллера, в структуру программы, используя блоки, имеющиеся в STEP 7.
•Запустите STEP 7. STEP 7 запускается из пользовательского интерфейса Windows 95/98/NT.
•Создайте структуру проекта. Проект похож на папку, в которой все данные хранятся в виде иерархической структуры и доступны вам в любое время. После создания проекта все остальные задачи выполняются в этом проекте.
•Сконфигурируйте станцию. При конфигурировании станции вы указываете, какой программируемый контроллер вы хотите использовать;
например, SIMATIC 300, SIMATIC 400, SIMATIC S5.
•Сконфигурируйте аппаратуру. При конфигурировании аппаратуры вы указываете в конфигурационной таблице, какие модули вы хотите использовать для решения своей задачи автоматизации и какие адреса должны быть использованы для доступа к модулям из программы пользователя. Модулям также могут быть назначены свойства с помощью параметров.
•Спроектируйте сети и коммуникационные связи. Основой для коммуникаций является предварительно спроектированная сеть. Для этого вам нужно будет создать подсети, необходимые для ваших задач автоматизации, установить свойства подсетей и установить свойства сетевых подключений и всех коммуникационных связей, требуемых для сетевых станций.
3
•Определите символы. Вы можете определить в таблице символов локальные или совместно используемые символы, имеющие более наглядные имена, для использования вместо абсолютных адресов в своей пользовательской программе.
•Создайте программу. Используя один из доступных языков программирования, создайте программу, связанную с модулем или независимую от модуля, и сохраните ее в виде блоков, исходных файлов или схем.
•Спроектируйте сообщения. Сообщения, относящиеся к блокам, создаются, например, с помощью их текстов и атрибутов. Используя передающую программу, вы переносите созданные данные о конфигурации сообщений в базу данных системы взаимодействия с оператором.
•Спроектируйте переменные для управления и наблюдения оператором. Вы создаете переменные для управления и наблюдения оператором один раз в STEP 7 и назначаете им требуемые атрибуты. Используя передающую программу, вы переносите созданные переменные для управления
инаблюдения оператором в базу данных системы взаимодействия с оператором
WinCC.
•Загрузите программы в программируемый контроллер. После завершения конфигурирования, назначения параметров и программирования задач вы можете загрузить всю свою пользовательскую программу или отдельные боки из нее в программируемый контроллер (программируемый модуль для вашего аппаратного решения). C уже содержит операционную систему.
•Протестируйте программу. Для тестирования необходимо отобразить значения переменных из своей пользовательской программы или CPU, или присвоить значения переменным и создать таблицу для переменных, которые вы хотите отображать или изменять.
•Наблюдайте за работой, диагностируйте аппаратуру. Причина неисправности модуля определяется отображением информации о модуле в режиме online. Причины ошибок в обработке программы пользователя определяются с помощью диагностического буфера и содержимого стеков. Вы можете также проверить, может ли программа пользователя исполняться на конкретном CPU.
2.ОСНОВЫ ПРОЕКТИРОВАНИЯ СТРУКТУРЫ ПРОГРАММЫ
Программы в CPU
ВCPU всегда исполняются две программы:
•операционная система;
•программа пользователя.
4
ОПЕРАЦИОННАЯ СИСТЕМА
Каждый CPU содержит операционную систему, которая организует все функции и последовательности в CPU, не связанные с конкретной задачей управления. Задачи операционной системы состоят в следующем:
•обработка "теплого" и "горячего" перезапуска;
•обновление таблицы образа процесса для входов и вывод таблицы образа процесса для выходов;
•вызов программы пользователя;
•обнаружение прерываний и вызов ОВ прерываний;
•обнаружение и обработка ошибок;
•управление областями памяти;
•обмен информацией с устройствами программирования и другими коммуникационными партнерами.
Если вы измените параметры операционной системы (настройку операционной системы по умолчанию), вы можете повлиять на работу CPU в определенных областях.
ПРОГРАММА ПОЛЬЗОВАТЕЛЯ
Вы должны сами создать программу пользователя и загрузить ее в CPU. Она содержит все функции, необходимые для обработки вашей конкретной задачи автоматизации. Задачи программы пользователя состоят в следующем:
•определение условий для "теплого" и "горячего" перезапуска в CPU (например, инициализация сигналов с определенным значением);
•обработка данных процесса (например, логическая комбинация двоичных сигналов, считывание и анализ аналоговых сигналов, задание двоичных сигналов для вывода, вывод аналоговых значений);
•определение реакции на прерывания;
•обработка нарушений в нормальном исполнении программы.
3. БЛОКИ В ПРОГРАММЕ ПОЛЬЗОВАТЕЛЯ
БЛОКИ В ПРОГРАММЕ ПОЛЬЗОВАТЕЛЯ
Программное обеспечение STEP 7 дает вам возможность структурировать свою пользовательскую программу, иными словами, разбивать программу на отдельные автономные программные секции. Это дает следующие преимущества:
•Такие программы проще для понимания.
•Отдельные программные секции могут быть стандартизованы.
•Упрощается организация программы.
•Легче производить модификацию программы.
•Отладка упрощается, так как можно тестировать отдельные секции.
•Значительно упрощается прием системы в эксплуатацию.
5
ТИПЫ БЛОКОВ
Имеется несколько различных типов боков, которые вы можете использовать внутри пользовательской программы S7:
Блок |
Краткое описание функции |
|
См. также |
|
||||||
Организационные |
OB |
определяют |
структуру |
Организационные |
||||||
блоки (OB) |
|
программы пользователя. |
|
блоки |
и |
структура |
||||
|
|
|
|
|
|
|
программы |
|
|
|
Системные |
|
SFB и SFC встроены в CPU S7 |
Системные |
|
|
|||||
функциональные |
и обеспечивают вам доступ ко |
функциональные блоки |
||||||||
блоки |
(SFB) и |
всем |
важным |
системным |
(SFB) |
и |
системные |
|||
системные функции |
функциям. |
|
|
функции (SFC) |
|
|||||
(SFC) |
|
|
|
|
|
|
|
|
|
|
Функциональные |
FB – это блоки с "памятью", |
Функциональные |
|
|||||||
блоки (FB) |
|
которые |
вы |
можете |
блоки (FB) |
|
|
|||
|
|
программировать сами. |
|
|
|
|
|
|||
Функции (FC) |
FC |
содержат программы для |
Функции (FC) |
|
||||||
|
|
часто встречающихся функций. |
|
|
|
|
||||
Экземплярные блоки |
Экземплярные DB связываются |
Экземплярные |
блоки |
|||||||
данных |
|
с блоком, когда вызывается |
данных |
|
|
|||||
(экземплярные DB) |
FB/SFB. |
Они |
создаются |
|
|
|
|
|||
|
|
автоматически |
|
при |
|
|
|
|
||
|
|
компиляции. |
|
|
|
|
|
|
||
Блоки данных (DB) |
DB – это области данных для |
Совместно |
|
|
||||||
|
|
хранения данных пользователя. |
используемые |
блоки |
||||||
|
|
Кроме |
|
данных, |
данных (DB) |
|
|
|||
|
|
соответствующих |
|
|
|
|
|
|
||
|
|
функциональному блоку, |
могут |
|
|
|
|
|||
|
|
быть |
определены |
также |
|
|
|
|
||
|
|
данные, |
|
совместно |
|
|
|
|
||
|
|
используемые |
любыми |
|
|
|
|
|||
|
|
блоками. |
|
|
|
|
|
|
OB, FB, SFB, FC и SFC содержат секции программы и поэтому известны также как логические блоки. Допустимое количество блоков каждого типа и допустимая длина блоков зависят от CPU.
ОРГАНИЗАЦИОННЫЕ БЛОКИ И СТРУКТУРА ПРОГРАММЫ
Организационные блоки (ОВ) образуют интерфейс между операционной системой и программой пользователя. Они вызываются операционной системой и управляют циклическим и по прерываниям исполнением программы, а также запуском программируемого логического контроллера. Они также
6
обрабатывают реакцию на ошибки. Программируя организационные блоки, вы определяете реакцию CPU.
ПРИОРИТЕТ ОРГАНИЗАЦИОННОГО БЛОКА
Организационные блоки определяют порядок, в котором исполняются отдельные программные секции. Исполнение ОВ может быть прервано вызовом другого ОВ. Какому ОВ разрешается прервать другой ОВ, зависит от его приоритета. ОВ с более высоким приоритетом могут прерывать ОВ с более низким приоритетом. Фоновый ОВ имеет самый низкий приоритет.
ТИПЫ ПРЕРЫВАНИЙ И КЛАССЫ ПРИОРИТЕТА
События, которые приводят к вызову ОВ, известны как прерывания. Следующая таблица показывает типы прерываний в STEP 7 и приоритеты соответствующих им организационных блоков. Перечисленные организационные блоки и их классы приоритета доступны не во всех CPU S7 (см. “Программируемый контроллер S7-300. Руководство по аппаратному обеспечению и монтажу” и “Программируемые контроллеры S7-400, M7-400. Спецификации модулей. Справочное руководство”).
Тип |
Организационный |
Приоритет |
См. также |
|
|
прерывания |
блок |
(по |
|
|
|
|
|
умолчанию) |
|
|
|
Главный |
OB1 |
1 |
Организационный |
блок |
|
программный |
|
|
для |
циклической |
|
цикл |
|
|
обработки |
программы |
|
|
|
|
(OB1) |
|
|
Прерывания |
OB10 − OB17 |
2 |
Организационные |
блоки |
|
по времени |
|
|
прерываний |
по |
времени |
суток |
|
|
(OB10 − OB17) |
|
|
Прерывания с |
OB20 |
3 |
Организационные |
блоки |
|
задержкой |
OB21 |
4 |
прерываний |
с задержкой |
|
|
OB22 |
5 |
(OB20 − OB23) |
|
|
|
OB23 |
6 |
|
|
|
Циклические |
OB30 |
7 |
Организационные |
блоки |
|
прерывания |
OB31 |
8 |
циклических |
прерываний |
|
|
OB32 |
9 |
(OB30 − OB38) |
|
|
|
OB33 |
10 |
|
|
|
|
OB34 |
11 |
|
|
|
|
OB35 |
12 |
|
|
|
|
OB36 |
13 |
|
|
|
|
OB37 |
14 |
|
|
|
|
OB38 |
15 |
|
|
|
Аппаратные |
OB40 |
16 |
Организационные |
блоки |
7
Тип |
Организационный |
Приоритет |
См. также |
|
|||
прерывания |
|
блок |
|
(по |
|
|
|
|
|
|
|
умолчанию) |
|
|
|
прерывания |
OB41 |
|
|
17 |
аппаратных |
прерываний |
|
|
OB42 |
|
|
18 |
(OB40 − OB47) |
|
|
|
OB43 |
|
|
19 |
|
|
|
|
OB44 |
|
|
20 |
|
|
|
|
OB45 |
|
|
21 |
|
|
|
|
OB46 |
|
|
22 |
|
|
|
|
OB47 |
|
|
23 |
|
|
|
Мультипроце |
OB60 |
|
|
25 |
Многопроцессорный |
|
|
ссорное |
Многопроцессорный |
|
режим |
–Синхронная |
|||
прерывание |
режим |
|
|
|
работа нескольких CPU |
||
|
|
|
|
|
|
||
Ошибки |
OB70 Ошибка |
|
25 |
Организационные |
блоки |
||
резервирован |
резервирования |
|
|
обработки |
ошибок |
(OB70 |
|
ия |
ввода/вывода |
|
|
− OB87 / OB121 − OB122) |
|||
(только в Н- |
OB72 Ошибка |
|
28 |
|
|
|
|
системах) |
резервирования CPU |
|
|
|
|
||
Асинхронные |
OB80 |
Временная |
26 |
Организационные |
блоки |
||
ошибки |
ошибка |
|
|
(или 28, если |
обработки |
ошибок |
(OB70 |
|
OB81 Ошибка |
по |
ОВ |
− OB87 / OB121 − OB122) |
|||
|
питанию |
|
асинхронны |
|
|
|
|
|
OB82 |
|
|
х ошибок |
|
|
|
|
Диагностическое |
|
существует в |
|
|
|
|
|
прерывание |
|
программе |
|
|
|
|
|
OB83 |
Ошибка |
запуска) |
|
|
|
|
|
установки/ удаления |
|
|
|
|
||
|
модуля |
|
|
|
|
|
|
|
OB84 |
Аппаратная |
|
|
|
|
|
|
неисправность CPU |
|
|
|
|
||
|
OB85 Ошибка класса |
|
|
|
|
||
|
приоритета |
|
|
|
|
|
|
|
OB86 Неисправность |
|
|
|
|
||
|
стойки |
|
|
|
|
|
|
|
OB87 Ошибка связи |
|
|
|
|
||
Фоновый |
OB90 |
|
|
29 1) |
Фоновый |
|
|
цикл |
|
|
|
|
организационный |
блок |
|
|
|
|
|
|
(OB90) |
|
|
Запуск |
OB100 |
Теплый |
27 |
Организационные |
блоки |
||
|
рестарт |
|
|
|
запуска |
|
|
|
OB101 |
Горячий |
27 |
(OB100/OB101/OB102) |
|||
|
рестарт |
|
|
|
|
|
|
8
Тип |
Организационный |
Приоритет |
См. также |
|
|
прерывания |
|
блок |
(по |
|
|
|
|
|
умолчанию) |
|
|
|
OB102 |
Холодный |
27 |
|
|
|
рестарт |
|
|
|
|
Синхронные |
OB121 |
Ошибка |
Приоритет |
Организационные |
блоки |
ошибки |
программирования |
ОВ, |
обработки ошибок |
(OB70 |
|
|
OB122 |
Ошибка |
вызвавшего |
− OB87 / OB121 − OB122) |
|
|
доступа |
|
ошибку |
|
|
1) Класс приоритета 29 соответствует приоритету 0,29. Фоновый цикл имеет более низкий приоритет, чем свободный цикл.
ИЗМЕНЕНИЕ ПРИОРИТЕТА
Прерываниям с помощью STEP 7 могут быть назначены параметры. Назначая параметры, вы можете, например, отменить выбор ОВ прерываний или классы приоритета в блоках параметров: прерывания по времени суток, прерывания с задержкой, циклические прерывания и аппаратные прерывания.
Приоритет организационных блоков в CPU S7-300 фиксирован.
У CPU S7-400 (и CPU 318) вы можете изменять приоритет следующих организационных блоков с помощью STEP 7:
•OB10−OB47;
•OB70 − OB72 (только H-CPU) и OB81 − OB87 в режиме RUN.
Разрешены следующие классы приоритета:
•классы приоритета от 2 до 23 для OB10 − OB47;
•классы приоритета от 2 до 28 для OB70 − OB72;
•классы приоритета от 24 до 26 для OB81 − OB87.
Вы можете назначить нескольким ОВ одинаковые приоритеты. ОВ с одинаковым приоритетом обрабатываются в порядке наступления событий, вызвавших их запуск.
ОВ ошибок, запущенные синхронными ошибками, исполняются в том же классе приоритета, что и блок, исполняющийся в тот момент, когда ошибка произошла.
ЛОКАЛЬНЫЕ ДАННЫЕ
При создании логических блоков (OB, FC, FB) вы можете описать временные локальные данные. Область локальных данных в CPU делится между классами приоритета.
В S7-400 вы можете изменить количество локальных данных на класс приоритета в блоке параметров ”priority classes [классы приоритета]" с помощью STEP 7.
9