- •Основы языка
- •Содержание
- •Введение
- •1 Общие сведения
- •1.1 Программируемый логический контроллер
- •1.2 Плк Siemens simatic s7-300
- •1.3 Визуальный контроль индикаторов в s7-300
- •2 Типовая архитектура процессораs7
- •2.1 Области памяти cpu
- •2.2 Регистры cpu
- •3 Основы разработки программы
- •3.1 Программы в cpu
- •3.2 Принцип выполнения программы в s7-cpu
- •3.3 Типы блоков
- •3.4 Типы программ
- •3.5 Способы обработки программы
- •3.6 Иерархия вызовов в программе пользователя
- •3.7 Типы данных
- •3.8 Обращение к данным в областях памяти
- •4 Обзор пакетаstep7lite
- •4.1 Создание решения автоматизации
- •4.2 Структура пользовательского интерфейса Step 7 Lite
- •4.3 Окно проекта в Step 7 Lite
- •4.3 Справка и документация по Step 7 Lite
- •5 Работа с проектом вstep7lite
- •5.1 Понятие проекта в Step 7 Lite
- •5.2 Работа с проектом
- •5.3 Определение символьных имен
- •5.4 Структура и компоненты таблицы символьных имен
- •5.5 Работа с блоками
- •5.6 Редактирование элементов lad в области кода
- •5.7 Создание блоков данных
- •5.8 Установка online-соединения с процессором
- •5.9 Загрузка в цпу и обратная загрузка в программатор
- •Библиографический список
3 Основы разработки программы
3.1 Программы в cpu
В ЦПУ постоянно исполняются две программы:
Операционная система;
Программа пользователя.
Операционная система (ОС) содержит общую часть всех инструкций и соглашений для реализации внутренних функций (например, сохранение данных при сбросе напряжения питания, управление реакцией пользователя при прерывании и т.д.). Она расположена на так называемом EPROMe (Erasable Programmable Read Only Memory) и является фиксированной составной частью процессора. Как пользователь, вы не имеете возможности обращаться к операционной системе.
К задачам операционной системы относятся:
управление запуском;
обновление таблицы отображения входов-выходов процесса;
вызов программы пользователя;
обнаружение прерываний и вызов ОВ прерываний;
обнаружение и обработка ошибок;
управление адресными областями;
обеспечение связи с устройством программирования и другими коммуникационными устройствами.
Программа пользователя содержит набор всех написанных пользователем инструкций и соглашений для обработки сигналов, с помощью которых производится управление процессом (установкой).
К задачам программы пользователя относится следующее:
определение условий запуска ЦПУ (например, инициализация сигналов с конкретными значениями);
обработка данных процесса (например, логическое объединение двоичных сигналов, считывание и оценка аналоговых сигналов, определение выходных двоичных сигналов, вывод аналоговых значений);
задание отклика на прерывание;
обработка отклонений от нормального выполнения программы.
Программа пользователя распределяется на блоки. Деление программы на блоки значительно проясняет структуру программы и подчеркивает программно-технические связи отдельных частей установки (процесса).
Блоком называется часть программы пользователя, ограниченная функционально и структурно или по целям использования.
3.2 Принцип выполнения программы в s7-cpu
Работа ЦПУ выполняется циклически под управлением операционной системы (см. рисунок 3.1).
Фазы циклической обработки программы:
Операционная система запускает время контроля цикла;
ЦПУ записывает значения из отображения процесса на выходах в модули вывода;
ЦПУ считывает состояние входов на модулях ввода и обновляет отображение процесса на входах;
ЦПУ обрабатывает прикладную программу и исполняет указанные в программе команды;
В конце цикла ОС выполняет стоящие на очереди задачи, например, загрузку и стирание блоков, статус блоков, прием и передачу глобальных данных.
Рисунок 3.1 – Принцип выполнения программы в S7-CPU
Время, необходимое для выполнения всех перечисленных операций, называется циклом сканирования или временем цикла. Время цикла является величиной переменной и может меняться от цикла к циклу. В начале каждого цикла ОС перезапускает счетчик времени цикла.
3.3 Типы блоков
Пакет программного обеспечения Step 7 Lite позволяет структурировать пользовательскую программу, другими словами, разбивать программу на отдельные блоки. Такой подход имеет следующие достоинства:
упрощается чтение больших программ;
можно стандартизировать отдельные блоки программы;
упрощается структура программы;
упрощается внесение изменений в программу;
упрощается отладка, поскольку можно тестировать отдельные блоки;
ввод в действие становится значительно проще.
Таблица 3.1 содержит перечень и краткое описание программных блоков для контроллеров SIMATIC S7, а также блоков данных.
Таблица 3.1 – Типы блоков для SIMATIC S7
Блок |
Выполняемые функции |
Организационные блоки (ОВ) |
Предназначены для организации циклического выполнения программы пользователя (ОВ1), обработки событий: ‒ включения питания (ОВ100); ‒ циклического прерывания (ОВ30 – ОВ38); ‒ прерывания по дате и времени (ОВ10 – ОВ17); ‒ прерывания по задержке времени (ОВ20 – ОВ23); ‒ возникновения ошибки (ОВ40 – ОВ47, ОВ80 – ОВ87, ОВ121, ОВ122) |
Системные функциональные блоки (SFB) и системные функции (SFC) |
Встроены в ЦПУ S7 и обеспечивают доступ ко всем важным функциям системы |
Функциональные блоки (FB) |
Блоки с памятью, которые вы можете запрограммировать самостоятельно. FBможет быть вызван из любого блока и может иметь формальные и локальные параметры. ОсобенностьюFBявляется наличие переменных типаSTAT, которые сохраняют свое значение при выходе из блока |
Функции (FC) |
Содержат запрограммированные процедуры часто встречающихся функций. Функция может быть вызвана из любого блока. Допускается передача параметров в функцию и обратно. Функция может также иметь локальные переменные, которые теряются при выходе из блока |
Экземпляр блока данных (экземпляр DB) |
Назначаются блоку при вызове блока FB/SFB. Они создаются автоматически во время компиляции |
Блоки данных (DB) |
Являются областями памяти для хранения данных пользователя. Блоки данных назначаются функциональным блокам. Кроме этого, блоки данных могут быть определены и использоваться другими блоками |
ОВ, FB, SFB, FC и SFC содержат блоки программы и поэтому также называются логическими блоками. Допустимое количество блоков каждого типа и длина блоков зависит от типа ЦПУ.
Организационные блоки являются интерфейсом между операционной системой (ОС) и программой пользователя. Они вызываются ОС, обеспечивают исполнение циклической программы и программы с прерываниями, управляют запуском ПЛК, обеспечивают обработку ошибок. Программы организационных блоков определяют реакцию ЦПУ.
Организационные блоки определяют очередность, в которой исполняются отдельные блоки программы. Выполнение блока может быть прервано вызовом другого ОВ. Иерархия вызовов определяется приоритетами ОВ. ОВ с большим приоритетом может вызвать прерывание ОВ с более низким приоритетом. Фоновый ОВ имеет низший приоритет.
События, которые приводят к вызову ОВ, называют прерываниями. В таблице 3.2 приведены типы прерываний Step 7 Lite и приоритеты соответствующих им организационных блоков.
Таблица 3.2 – Типы прерываний Step 7 Lite
Типы прерывания |
Организационный блок |
Приоритет (по умолчанию) |
Выполнение основной программы |
ОВ1 |
1 |
Прерывание по времени |
ОВ10 – ОВ17 |
2 |
Прерывание с задержкой |
ОВ20 – ОВ23 |
3 … 6 |
Циклические прерывания |
ОВ30 – ОВ38 |
7 … 15 |
Аппаратные прерывания |
ОВ40 – ОВ47 |
16 … 23 |
Асинхронные ошибки |
ОВ80 – Временная ошибка ОВ82 – Диагностическое прерывание ОВ84 – Аппаратная неисправность ЦПУ ОВ85 – Ошибка по приоритету класса ОВ86 – Неисправность корзины ОВ87 – Ошибка связи |
26 (или 28, если асинхронный ОВ существует в программе запуска) |
Запуск |
ОВ100 – Теплый перезапуск ОВ102 – Холодный перезапуск |
27 |
Синхронные ошибки |
ОВ121 – Ошибка программирования ОВ122 – Ошибка доступа |
Приоритет ОВ, вызвавшего ошибку |
Приоритеты организационных блоков изменить нельзя. Организационные блоки обработки ошибок, запущенные синхронными ошибками, имеют тот же приоритет, что и блок во время которого произошла ошибка.
При создании логических блоков (ОВ, FC, FB) можно объявить локальные временные данные. Область локальных данных в ЦПУ делится между классами приоритета.
Каждый организационный блок имеет стартовую информацию, занимающую 20 байт локальных данных, которые ОС выделяет при запуске ОВ. Стартовая информация определяет событие, вызвавшее запуск ОВ, дату и время запуска ОВ, произошедшие ошибки и диагностические события.
Например, ОВ40 (ОВ аппаратных прерываний) в своей стартовой информации содержит адрес модуля, сгенерировавшего прерывание.