Основы разработки программы

Программы в 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 – Типы программ


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: