Средства разработки ПО для контроллера
Базовый пакет STEP 7 предназначен для создания проектов, решающих задачи автоматизации отдельных станков, участков, технологических процессов. Рассматриваемый пакет позволяет проводить разработку как программных, так и аппаратных средств в пределах одного проекта, в результате чего на основе требований к программной и аппаратной частям происходит создание и конфигурирование необходимых средств и сетей, рабочих программ и блоков данных для решения задач автоматизации.
Для создания программного обеспечения требуется разработать:
- структуру программы;
- управление данными автоматического процесса;
- структуру данных;
- передачу данных;
- документацию программы и проекта.
Общая структура системы, работающей под управлением STEP 7, показана на рисунке 11.
Рисунок 11. Структура схемы автоматизации
В полную программу процесса входят:
Операционная система: содержит общую часть всех инструкций и соглашений для реализации внутренних функций (например, сохранение данных при сбросе напряжения питания, управление реакцией пользователя при прерывании и т. д.). Она расположена на так называемом EPROMe (Erasable Programmable Read Only Memory) и является фиксированной составной частью процессора.
Программа пользователя: содержит набор всех написанных пользователем инструкций и соглашений для обработки сигналов, с помощью которых производится управление агрегатом. Программа пользователя распределяется на блоки. Деление программы на блоки значительно проясняет структуру программы и подчеркивает программно-технические связи отдельных частей агрегата. Блоком называется часть программы пользователя, ограниченная функционально и структурно или по целям использования. Различают блоки, которые содержат инструкции для обработки сигналов и блоки, содержащие данные (блоки данных). Блоки идентифицируются по типу (OB, PB, SB, FB, FX, DB, DX) и по номеру.
Инструкция языка STEP является наименьшей самостоятельной единицей программы пользователя. Она является предписанием для работы процессора. Инструкция может быть представлена в виде:
- Список команд (инструкций) - STL. Представляет собой список команд подобно обычному языку Ассемблера.
- Контактный план - LAD. Управляющая программа записывается при помощи изображений элементов релейных контактных схем.
- Функциональный план – FDB. Для отображения программы используются схемы логических элементов.
-
Рисунок 12. Виды представления инструкций Step 7
STL -программа состоит из ряда отдельных выражений (statement). Выражение - это наименьшая самостоятельная единица пользовательской программы. Выражение содержит описание работы для CPU. Инструкция языка STEP состоит из операции и операнда. Операнд может быть представлен абсолютно или символически (через список соответствия).
Таблица 4 содержит перечень и краткое описание программных блоков для контроллеров SIMATIC S7, а также блоков данных. В контроллерах SIMATIC S7 существует несколько способов обработки управляющей программы:
1) Циклическая обработка состоит из повторных (периодически повторяющихся) обработок управляющей программы, которая начинается с вызова организационного блока ОВ1. В начале цикла обработки программы ОС заполняет область отображения входов, сбрасывает таймер контроля длительности цикла, после этого вызывает для обработки блок ОВ1. В конце цикла обработки ОС переписывает в выходные модули значения из области отображения выходов, после чего начинается следующий цикл обработки. В блоке ОВ1 можно вызывать функции и функциональные блоки. После обработки вызванного блока управление передается блоку, из которого был произведен вызов данного блока.
Таблица 4.Программные блоки и блоки данных
Блок
| Выполняемые функции
| ОВ
| Организационные блоки. Предназначены для организации циклического выполнения программы пользователя (ОВ1), обработки событий: включения питания (ОВ100), циклического прерывания (ОВЗ0-ОВ38), прерывания по дате и времени (ОВ10-ОВ17), прерывания по задержке времени (ОВ20-ОВ23), возникновения ошибки (ОВ40-ОВ47, ОВ80-ОВ87, ОВ121, ОВ122). Блоки вызываются автоматически операционной системой контроллера в случае возникновения того или иного события.
| FC
| Функция. Может быть вызвана из любого блока. Допускается передача параметров в функцию и обратно. Функция может также иметь локальные переменные, которые теряются при выходе из блока.
| FB
| Функциональный блок. Также может быть вызван из любого блока и может иметь формальные и локальные параметры. Особенностью FB является наличие переменных типа STAT, которые сохраняют свое значение при выходе из блока. Поэтому функциональный блок имеет один или несколько связанных с ним блоков данных (Instance Data Block, DI).
| SFC
| Системная функция. Это функция, уже имеющаяся в ОС CPU. Предназначена для выполнения определенных стандартных действий.
| SFB
| Системный функциональный блок. Аналогичен FB, но, как и SFC, уже имеется в составе ОС контроллера.
| DB
| Блок данных программы пользователя. Предназначен для долговременного хранения информации.
| DI
| Блок данных функционального блока. Используется для хранения значений переменных функционального блока. Отличается от DB наличием жесткой структуры, определяемой связанным с ним функциональным блоком.
|
2) Циклические прерывания. При управлении ТП всегда существуют программы, которые должны обрабатываться через одинаковые, заранее заданные, промежутки времени. Для этих целей в контроллерах SIMATIC S7 существуют блоки обработки циклических прерываний. Промежуток времени, через который должен вызываться данный блок, задается программистом.
3) Прерывания по дате и времени. Существуют программы, которые должны выполниться один раз в определенный день и час или выполняться периодически. Начиная с определенных даты и времени. Для этих целей в контроллерах SIMATIC S7 можно запрограммировать блоки прерываний по дате и времени.
4) Прерывания по задержке времени. Такие блоки вызываются по истечении определенного времени после возникновения какого-либо события.
5) Обработка включения питания. Часто при включении питания необходимо выполнить какие-либо однократные действия: первичную установку, инициализацию и т.д. Для этих целей предусмотрены блоки обработки включения питания.
6) Обработка ошибок. Такие блоки выполняются в случае возникновения аппаратных или программных ошибок.
Организационные блоки обрабатываются циклически. Период и приоритет обработки определяется номером организационного блока (см. таблицу 5).
Контроллеры SIMATIC S7 могут работать со следующими типами данных:
Бит (BOOL). Бит - это единица, соответствующая одному двоичному разряду. Два возможных значения бита обозначаются "0" (FALSE) и "1" (TRUE).
Таблица 5. Приоритеты обработки
Организационный
блок
| Условия вызова
| Приоритет
| OB1
| Вызывается операционной системой
|
| OB10 - OB17
| В заданное время
|
| OB20 - OB23
| По истечении времени
| 3..6
| OB30 - OB38
| Через заданный интервал
| 7..15
| OB40 - OB47
| От входов и выходов
| 16..23
| OB60
| Мультипроцессорное
|
| OB70, OB72, OB73
| Ошибки резервирования
| 25, 28, 25
| OB80 - OB85
| Асинхронные ошибки
|
| OB90
| Фоновая обработка
|
| OB100
| При запуске
|
| OB121, OB122
| Ошибки выполнения программы
| Приоритет блока, вызвавшего программу
|
Байт (BYTE). Байт состоит из 8 бит, которым соответствуют битовые адреса от 0 до 7 (справа налево). Старшим является бит с большим адресом. Байт могут образовать только те биты, адрес младшего из которых кратен 8, например: 0, 8, 16 и т.д. В контроллерах Simatic S7 байт может интерпретироваться как просто байт (набор бит) или как ASCII - символ.
Слово (WORD). Слово - это следующая после байта по величине единица, ее длина 16 бит. Любые два соседних байта можно объединить в слово, старшим будет являться байт с меньшим адресом. Адрес слова - это адрес байта с меньшим адресом. В контроллерах Simatic S7 слово может интерпретироваться как просто слово (набор бит), целое число со знаком, дата, время и т.д.
Двойное слово (DWORD). Любые два соседних слова можно объединить в двойное слово, его длина - 32 бита или 4 байта. Старшим словом (байтом) является слово (байт) с меньшим адресом. Адрес двойного слова - это адрес байта с меньшим адресом. В контроллерах Simatic S7 двойное слово можно интерпретировать как просто двойное слово, длинное целое число со знаком, вещественное число в формате IEEE и т.д.
Char (литера). Переменная типа CHAR (character, литера) занимает один байт. Тип данных CHAR представляет одну литеру в ASCII -формате, например, 'А'. Работая с этим типом данных, можно использовать любую печатную литеру в апострофах.
INT (целое число). Переменная типа INT (integer) хранится как целое число (16 -битное число с фиксированной запятой или десятичной точкой). Тип данных INT не имеет специального идентификатора. Целочисленная переменная занимает одно машинное слово.
DINT (двойное целое число). Переменная типа DINT хранится как целое число (32 - битное число с фиксированной запятой). Целое сохраняется в DINT -переменной когда оно превышает 32 767 или меньше - 32768, или когда число предваряется идентификатором типа L#.
REAL (вещественный). Переменная типа REAL представляет дробь и хранится как 32 - битное число с плавающей запятой (десятичной точкой). Целое сохраняется как переменная типа REAL при добавлении десятичной точки и тая. В экспоненциальном представлении можно предварить «е» или «Е» целым числом или дробью из семи соответствующих чисел и знака. Цифры, которые расположены за «е» или «Е» представляют экспоненту по базе 10. STEP 7 производит преобразование REAL - переменной во внутренне представление числа с плавающей точкой.
S5TIME. Переменная типа S5TIME используется в базовых языках STL, LAD и FBD для установки таймеров системы SIMATIC. Она занимает одно 16 -битное слово с 1 + 3 декадами. Время устанавливается в часах (hours), минутах (minutes), секундах (seconds) и миллисекундах (milliseconds).
DATE (Дата). Переменная типа DATE хранится в машинном слове как число с фиксированной точкой без знака. Содержимое переменной соответствует количеству дней, начиная с 01.01.1990. Ее представление показывает год, месяц и день, разделенные дефисом.
TIME (Время). Переменная типа TIME резервирует одно двойное слово. Ее представление содержит информацию о днях (d), часах (h), минутах (m), секундах (s) и миллисекун дах (ms), отдельные элементы этих данных могут быть опущены. Содержимое переменной интерпретируется в миллисекундах (ms) и хранится как 32 -битное число с фиксированной точкой со знаком.
TIME_OF_DAY (Время суток ). Переменная типа данных TTMEOFDAY резервирует для себя одно двойное слово. Она содержит количество миллисекунд с начала суток (со времени 00:00) в виде числа с фиксированной точкой без знака. Ее представление содержит информацию о часах, минутах и секундах, разделенных двоеточием. Миллисекунды, которые следуют за секундами, отделены от них десятичной точкой. Миллисекунды могут отсутствовать.
User data type - UDT (Пользовательский тип данных ) соответствует структуре (комбинация компонентов любых типов) с действием на глобальном уровне. Можно воспользоваться пользовательским типом данных, если в программе часто фигурирует структурный тип и переменные, или нужно структуре данных присвоить имя. Типы UDT обладают глобальным действием; то есть, они описываются один раз и доступны для использования во всех блоках. При объявлении переменных определяются следующие их свойства: символическое имя, тип данных, видимость переменной. Переменные могут быть объявлены: в глобальной символьной таблице (элементарные типы данных), в таблице описаний глобального блока данных (все типы данных), таблице описаний логического блока (OB, FB и FC)
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|