Программы в CPU
В ЦПУ постоянно исполняются две программы:
· Операционная система;
· Программа пользователя.
Операционная система (ОС) содержит общую часть всех инструкций и соглашений для реализации внутренних функций (например, сохранение данных при сбросе напряжения питания, управление реакцией пользователя при прерывании и т.д.). Она расположена на так называемом EPROMe (Erasable Programmable Read Only Memory) и является фиксированной составной частью процессора. Как пользователь, вы не имеете возможности обращаться к операционной системе.
К задачам операционной системы относятся:
· управление запуском;
· обновление таблицы отображения входов-выходов процесса;
· вызов программы пользователя;
· обнаружение прерываний и вызов ОВ прерываний;
· обнаружение и обработка ошибок;
· управление адресными областями;
· обеспечение связи с устройством программирования и другими коммуникационными устройствами.
Программа пользователя содержит набор всех написанных пользователем инструкций и соглашений для обработки сигналов, с помощью которых производится управление процессом (установкой).
|
|
К задачам программы пользователя относится следующее:
· определение условий запуска ЦПУ (например, инициализация сигналов с конкретными значениями);
· обработка данных процесса (например, логическое объединение двоичных сигналов, считывание и оценка аналоговых сигналов, определение выходных двоичных сигналов, вывод аналоговых значений);
· задание отклика на прерывание;
· обработка отклонений от нормального выполнения программы.
Программа пользователя распределяется на блоки. Деление программы на блоки значительно проясняет структуру программы и подчеркивает программно-технические связи отдельных частей установки (процесса).
Блоком называется часть программы пользователя, ограниченная функционально и структурно или по целям использования.
Принцип выполнения программы в S7-CPU
Работа ЦПУ выполняется циклически под управлением операционной системы (см. рисунок 3.1).
Фазы циклической обработки программы:
· Операционная система запускает время контроля цикла;
· ЦПУ записывает значения из отображения процесса на выходах в модули вывода;
· ЦПУ считывает состояние входов на модулях ввода и обновляет отображение процесса на входах;
· ЦПУ обрабатывает прикладную программу и исполняет указанные в программе команды;
· В конце цикла ОС выполняет стоящие на очереди задачи, например, загрузку и стирание блоков, статус блоков, прием и передачу глобальных данных.
Рисунок 3.1 – Принцип выполнения программы в S7-CPU
|
|
Время, необходимое для выполнения всех перечисленных операций, называется циклом сканирования или временем цикла. Время цикла является величиной переменной и может меняться от цикла к циклу. В начале каждого цикла ОС перезапускает счетчик времени цикла.
Типы блоков
Пакет программного обеспечения 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 (ОВ аппаратных прерываний) в своей стартовой информации содержит адрес модуля, сгенерировавшего прерывание.
Типы программ
Вы можете записать всю свою программу в одном блоке ОВ1 (линейное программирование). Это целесообразно только в случае простых программ и требующих мало памяти.
Сложными задачами автоматизации проще управлять, если они разделены на более мелкие задачи, которые отражают технологические функции процесса и могут быть использованы неоднократно. Эти задачи представляются соответствующими программными блоками FC или FB (структурное программирование).
На рисунке 3.2 представлены схемы линейного и структурного программирования.
Рисунок 3.2 – Типы программ