Программное обеспечение систем управления
Проектирование автоматизированных систем управления в наше время практически
всегда включает в себя разработку программного обеспечения. В данной контрольной работе
представлен простой пример автоматизации технологического объекта, основой системы управления
которого является микроконтроллер серии AVR.
|
Дисциплина:
Программное обеспечение компьютерных систем управления
Тема:
Система управления технологическим объектом
Всё это вместе с чертежами, схемами и исходными кодами можно скачать бесплатно
ЗДЕСЬ
Не могу скачать :о(
|
ВНИМАНИЕ!
Контрольная работа по ПО КСУ здесь приводится в сокращённом виде.
Полную версию можно скачать бесплатно по указанной выше ссылке.
Содержание
Введение ………………………………………………………………………………………………………………………………………………
1. Описание объекта …………………………………………………………………………………………………………………
2. Анализ объекта проектирования ………………………………………………………………………………
3. Протокол обмена данными ………………………………………………………………………………………………
4. Алгоритм работы ……………………………………………………………………………………………………………………
4.1. Обработка состояния датчиков ……………………………………………………………………
4.2. Обработчик прерывания ………………………………………………………………………………………
4.3. Установка выходных сигналов ………………………………………………………………………
5. Выбор микроконтроллера …………………………………………………………………………………………………
6. Разработка схемы устройства ……………………………………………………………………………………
7. Разработка программного обеспечения ………………………………………………………………
7.1. Инициализация ……………………………………………………………………………………………………………
7.2. Процедуры ………………………………………………………………………………………………………………………
7.3. Обработка состояния датчиков ……………………………………………………………………
7.4. Обработчик прерывания ………………………………………………………………………………………
Источники информации ………………………………………………………………………………………………………………
ПРИЛОЖЕНИЯ
Приложение А: Полный текст программы
Приложение Б: Описание МК серии AVR
Введение
Целью данной контрольной работы является изучение и практическая реализация
методов управления технологическим объектом.
Технологический объект управления (ТОУ) в нашем
случае - это система, состоящая из бака, датчиков уровня, задвижки и электромотора
с насосом (рис. 1.1). Эта система, в свою очередь, является частью
автоматизированной линии взвешивания и складирования растительного масла.
На первый взгляд, выбран слишком простой объект. Но любая сложная система состоит
из простых подсистем, поэтому «сложно» и «просто» - это понятия относительные.
Декомпозиция системы, какой бы сложной она ни была, приведет нас к набору простых узлов. С другой стороны,
на примере данного объекта мы рассмотрим многие части АСУТП, такие как протокол
обмена данными между объектами, принципы работы используемых микроконтроллеров и т.п.
Описание объекта автоматизации
Объект является частью линии производства растительного масла.
В исходном варианте практически все операции данного производства выполняются операторами.
Задвижки, предназначенные для закрытия/открытия трубопроводов и насосы для перекачивания
растительного масла по производственному маршруту, также управляются операторами.
В проектируемой автоматизированной системе управления задвижки будут заменены на задвижки
с электроприводом. Общий вид объекта представлен на рис 1.1.
Рисунок и таблицу см. в полной версии, скачать которую можно по указанной выше ссылке.
Рис. 1.1. Технологический объект управления. Общий вид.
Назначение элементов системы приведено в таблице 1.1.
Таблица 1.1. Назначение элементов системы.
Анализ объекта
Наш объект будет управляться микроконтроллером. Но так как данный объект является
частью большой системы, то необходимо обеспечить возможность взаимодействия с другими
объектами и возможность управления исполнительными устройствами с ЭВМ. Таким образом,
задача микроконтроллера сводится к следующему:
- Преобразование входных сигналов к виду, пригодному для передачи по принятому протоколу обмена данными
- Передача преобразованных входных сигналов на ЭВМ
- Получение сигналов управления от ЭВМ
- Преобразование сигналов управления от ЭВМ в выходные сигналы для воздействия на исполнительные устройства
- Управление технологическим объектом
Проанализировав рис. 1.1. и 1.2, можно составить таблицы входных и выходных сигналов.
Итак, у нас 4 входных и 4 выходных сигнала. Прежде чем продолжить разработку проекта,
мы рассмотрим протокол обмена данными между технологическим объектом и ЭВМ.
Протокол обмена данными
Протокол обмена данными мы разработаем сами. Он необходим для
управления несколькими объектами по одной шине данных. В нашем случае система
не требует большого быстродействия, поэтому мы позволили себе объединить шину
адреса и шину данных.
Обмен данными происходит по принципу «запрос-ответ». Главное устройство (ЭВМ)
выдает запрос подчиненному устройству. Подчиненное устройство (микроконтроллер)
реагирует на запрос в зависимости от номера функции, переданной в запросе.
Формировать запросы может только главное устройство. После формирования запроса
подчиненное устройство выдает ответ на запрос в течение определенного периода (таймаута).
Если по истечении таймаута ответ не был получен, то главное устройство воспринимает
это как ошибку. Если подчиненное устройство по каким-либо причинам не может ответить
в установленный интервал времени, то запрос игнорируется, чтобы избежать конфликта
сигналов на шине.
Алгоритм работы
Общий алгоритм работы устройства показан на рис. 4.1.
Отдельные блоки будут рассмотрены далее более подробно.
Программа МК работает в цикле проверки состояния датчиков и установки состояния выходов,
которые управляют исполнительными устройствами. Если главное устройство выполняет запрос,
то возникает прерывание. Обработчик прерывания анализирует запрос, выполняет необходимые
действия и возвращается в главный цикл. Далее эти действия рассмотрены более подробно.
Обработчик прерывания
Как уже было сказано, прерывание возникает при поступлении запроса от главного устройства,
т.е. когда биты 7 и 6 равны 1. Независимо от результатов обработки прерывания программа
должна выйти из прерывания и продолжить работу в нормальном режиме.
Алгоритм обработчика прерывания показан на рис. 4.3.
Прерывание происходит только в том случае, если главное устройство выставило на шину запрос.
В обработчике прерывания мы получаем данные с шины и проверяем адрес. Если это адрес
не нашего устройства, то выходим из прерывания.
Если главное устройство отправило запрос нашему устройству, то адрес на шине совпадает
с адресом устройства (адрес устройства устанавливается при программировании МК).
В этом случае мы проверяем номер функции. Если это функция 2 (управление исполнительными
устройствами), то мы выдерживаем таймаут в соответствии с протоколом обмена данными и
снова читаем шину, где к этому моменту главным устройством уже должны быть переданы
состояния выходов. Затем в соответствии с полученными данными устанавливаем состояния
выходов и выходим из прерывания.
Выбор микроконтроллера
Выбор микроконтроллеров на рынке очень велик. Поэтому заранее привязываться к
какой-то модели не стоит. Обычно сначала проектируется устройство, а потом
выбирается микроконтроллер, наиболее полно отвечающий заданным условиям. Основной
параметр микроконтроллера, который нас интересует – это количество входов и выходов.
Для управления объектом необходимо контролировать состояния датчиков (4 сигнала)
и управлять четырьмя исполнительными устройствами. Кроме того, необходимо еще 8
выводов для обмена данными с главным устройством. Есть еще один момент – в нашем
устройстве используется прерывание по запросу от главного устройства. Для внешних
прерываний в микроконтроллерах обычно отводится один или несколько выводов. Как правило,
это не отдельные выводы, а стандартные входы-выходы, которые могут менять свое назначение
в зависимости от программных настроек. Но, если мы будем использовать один вывод для
внешнего прерывания, то мы не сможем использовать этот же вывод для других целей.
Таким образом, получаем необходимое количество контактов ввода/вывода, которое
должен иметь микроконтроллер:
4 + 4 + 8 + 1 = 17
В семействе микроконтроллеров AVR фирмы Atmel имеется близкая к указанным
характеристикам недорогая модель AT90S1200. Но, к сожалению, у этой модели только
15 контактов ввода/вывода.
Для решения задачи этого недостаточно, но тут можно вспомнить наши мысли по
поводу сокращения сигналов ввода-вывода. Мы можем сократить это количество на 2 за
счет сокращения выходных сигналов без ущерба для работоспособности системы
(см. «4.3. Установка выходных сигналов»). После некоторой корректировки получим
окончательный список выходных сигналов (таблица 5.1).
Разработка схемы устройства
Разработка электронных схем - это отдельная тема. Поэтому слишком подробно
описывать этот процесс не будем.
Схема получится не очень сложной. Главное, что следует обеспечить – это гальваническую
развязку выводов МК и цепей, через которые протекает высокое напряжение. В случае
входных сигналов используем оптроны, а в случае выходных сигналов – электромагнитные реле.
К сожалению, на момент разработки данного объекта, нам не известны характеристики
датчиков и задвижек, так как окончательный выбор этих элементов еще не сделан.
Поэтому номиналы некоторых радиодеталей на схеме не указаны.
Есть еще одна проблема – нам необходимо не только отправлять данные главному устройству,
но и принимать запросы от главного устройства. Здесь возможны различные варианты решения,
например, мультиплексирование выводов на шину. Но выводы современных микроконтроллеров
устанавливаются на вход или на выход программно. И ничто не мешает нам делать выводы
выходами или входами во время выполнения программы (во всяком случае, в документации
никаких запретов по этому поводу я не нашел). Поэтому мы используем выводы РВ0…РВ7 как
для ввода, так и для вывода данных в зависимости от ситуации.
Внешнее прерывание возникает по низкому уровню на выводе INT0 (PD2). Чтобы получить
такой сигнал в соответствии с нашим протоколом обмена данными, нам нужно использовать
логический элемент И-НЕ, выход которого подключим к выводу INT0.
Вывод сброса оставим свободным – это вполне допустимо, т.к. при включении питания
происходит корректный сброс МК благодаря его схемотехнике.
Схема устройства приведена на рис. 6.1.
Разработка программного обеспечения
Технология разработки программного обеспечения - также тема отдельная и непростая.
Процесс создания программного обеспечения - занятие увлекательное.
Разработать программу может каждый. Но не каждый может это сделать с должным качеством
и надёжностью. Начинающим программистам рекомендую книгу
Как стать программистом,
а мы здесь коротко опишем нашу программу.
Основные алгоритмы нами уже рассмотрены. Осталось только, используя эти алгоритмы,
написать программу для микроконтроллера. Общее описание микроконтроллера и используемых
в нашей программе команд приведено в приложении Б, поэтому в данном разделе мы
ограничимся исходными кодами и краткими комментариями...
Источники информации
- Мортон Дж. Микроконтроллеры AVR. Вводный курс. /Пер. с англ. – М.: Издательский дом «Додэка-XXI», 2006. – 272 с.: ил. (Серия «Мировая электроника»).
- Ганенко А.П. Оформление текстовых и графических материалов при подготовке дипломных проектов, курсовых и письменных экзаменационных работ (требования ЕСКД): Учеб. для нач. проф. образования: Учеб. пособие для сред. проф. образования. – 2-е изд., перераб. / А.П. Ганенко, М.И. Лапсарь. – М.: Издательский центр «Академия», 2005. 336 с.