- •1.Техническое задание на проектирование
- •1.1. Обобщенный алгоритм функционирования мкс
- •1.2. Обработка информации, поступающей с дискретных датчиков (х1, …, Хn)
- •1.3. Обработка информации, поступающей с аналоговых датчиков (v1, …,Vm)
- •1.4. Управление пуском –остановом электродвигателя
- •1.5.Управление технологическим параметром в заданных пределах
- •1.6.Обработка запроса прерывания
- •1.7. Пульт управления
- •1.8. Последовательный канал связи
- •2. Результаты курсовой работы
- •3. Этапы разработки и отладки программного обеспечения
- •4. Описание симулятора adSim812
- •1..Техническое задание на проектирование…………………………………………
ПРОГРАММИРОВАНИЕ МИКРОКОНТРОЛЛЕРНОЙ СИСТЕМЫ УПРАВЛЕНИЯ
Введение
Целью курсовой работы является разработка и отладка алгоритмов и программ для реализации заданного набора функций микроконтроллерной системы управления некоторым объектом управления (ОУ) , представленной на. рис.1.
Микроконтроллерная система (МКС) принимает множество информационных сигналов {X} об объекте управления от аналоговых и цифровых датчиков (Д), вырабатывает множество управляющих сигналов {Y} в соответствии с законом управления и подает их на исполнительные механизмы (ИМ). Закон управления реализуется в МКС, состоящей из микроконтроллера (МК) – управляющей микроЭВМ и пульта управления (ПУ). МК содержит основные модули , обеспечивающие выполнение и хранение данных и программ управления объектом, а также периферийные модули для подключения датчиков и исполнительных механизмов.
С помощью ПУ оператор получает возможность управлять работой МКС: запускать и останавливать ее, загружать в контроллер значения некоторых устaвок (констант), выводить на индикаторы информацию о состоянии объекта и т.п.
С помощью последовательного канала связи (ПсК) МКС может передавать обработанную информацию персональному компьютеру (ПК) более высокого уровня по запросу от него, обеспечивать интерфейс в мультиконтроллерных системах (локальные сети контроллеров).
В курсовой работе разрабатывается структурная схема МКС, включая устройства ввода с дискретных датчиков (ДД), аналоговых датчиков (АД) , исполнительные механизмы ( ИМ), алгоритмы и программы, обеспечивающие выполнение заданных функций, осуществляется отладка разработанных программ на модели контроллера и выполняется оценка характеристик МКС: время выполнения программ и емкость памяти программ в байтах.
1.Техническое задание на проектирование
1.1. Обобщенный алгоритм функционирования мкс
МКС реализует обобщенный алгоритм сбора и обработки данных с датчиков, представленный на рис 2. Блок 1 выполняет начальную установку системы и загрузку в выходные каналы начальных значений управляющих воздействий и настраивает модули контроллера на выбранные режимы работы.
Блок 2 реализует задачу логического управления: принимает информацию от дискретных датчиков Х1, …, Хn, вычисляет значение булевой функцииY1= f(Х1, …, Хn) в соответствии с заданным выражением и выдает это значение в качестве управляющего сигнала (УС) Y1 по соответствующему выходному каналу контроллера на ИМ.
Блок 3 обеспечивает прием информации от аналоговых датчиков V1, …, Vm, ее преобразование в цифровую форму, вычисление значений управляющих воздействий Y2 и Y3 и выдает их на ИМ ,.
При этом сигналы Y2 и Y3 являются двоичными сигналами, поступающими по выбранным каналам контроллера. При выполнении этой функции оператор задает значения уставок регулируемого параметра с пульта управления (ПУ) контроллера.
Блок 4 обеспечивает циклический режим управления или останов МКС в соответствии с командой, поступающей от оператора. с ПУ.
Кроме того, в системе имеется также двоичный датчик аварийной ситуации INT, поступающий в контроллер в режиме прерывания выполняемой программы. Сигнал прерывания INT от аварийного датчика включает на пульте управления аварийную световую или звуковую сигнализацию путем запуска зуммера.
1.2. Обработка информации, поступающей с дискретных датчиков (х1, …, Хn)
МКС опрашивает двоичные датчики Х1, …, Хn и вычисляет логическую (булеву ) функцию Y1= f(Х1, …, Хn) в соответствии с табл. 1 вариантов заданий. При единичном значении функции МКС вырабатывает в ИМ выходной сигнал Y1 = 1 заданной длительности t1. Это означает, что через t1 после выдачи единичного сигнала Y1 необходимо выработать нулевое значение сигнала Y1. Реализация длительности импульса t1 будет рассмотрена ниже. Номер варианта соответствует порядковому номеру студента в группе и представлены в табл.1.
Реализация логических функций.
Одной из распространенных функций в контроллерах логического управления является реализация булевых функций. Программная реализация таких функций в контроллере возможна различными способами, ниже будет рассмотрен один из них. Варианты задания приведены в табл.2.1. В соответствии с вариантом задания необходимо составить таблицу истинности заданной функции , подготовить алгоритм и текст программы на одном из языков программирования и выполнить отладку программы. Рассмотрим реализацию заданной логической функции с использованием рекомендуемого в курсовой работе метода.
В реальной системе входные сигналы из датчиков поступают в контроллер через один из входных портов. В курсовой работе при использовании симулятора контроллера используются два варианта формирования входных сигналов.
Первый вариант соответствует моделированию реальной ситуации, для которой любой из наборов входных сигналов загружается с клавиатуры компьютера во входной порт контроллера. Однако, при большом количестве возможных комбинаций входных сигналов это потребует большого времени для набора и выполнения программы для каждой из комбинаций, чтобы выполнить полное тестирование программы.
Второй вариант предусматривает вначале формирование значения всевозможных наборов входных сигналов хранящихся в виде массива данных в резидентной памяти данных контроллера. Значения функций также формируются в отдельном массиве этой же памяти данных.
Рассмотрим реализацию логической функции для первого варианта посредством способа, использующего команды условных переходов. При данном способе вычисление функции выполняется на основе разветвленного алгоритма типа дерева решений. Значения булевых аргументов последовательно анализируются командами условного перехода до тех пор пока не определится значение функции. На рис.3 в качестве примера приведен алгоритм реализации функции с использованием команд условных переходов. Анализируемые входные наборы сигналов Хi должны быть вначале загружены из входного порта в аккумулятор контроллера, а затем анализироваться последовательно, начиная с переменной X1, поступающим в нулевой разряд входного порта (см. алгоритм).
Анализируемые биты должны заноситься в триггер переноса C командой циклического сдвига аккумулятора RRC A (для чего исходный код должен быть предварительно загружен в аккумулятор), а затем анализироваться командами условного перехода JC или JNC. Отметим, что эффективность алгоритма в данном случае может зависеть от порядка проверки переменных с учетом конкретных особенностей реализуемой функции. Программа выполнения данного алгоритма на языке инструкций приведена ниже.
$mod812 ; данная директива подключает файл описания регистров и сигналов
;контроллера
org 100h ; данная директива определяет начальный адрес программы в РПП
mov A,P0 ; ввод сигналов х3,х2,х1 из порта Р0 в аккумулятор МП
rrc A ; сдвиг переменной х1 в флажок переноса «С»
jc m1 ;анализ значения х1, если х1=1, то выполняется переход к метке «m1»
rrc a ;иначе будет переход к следующей команде
jc m2
rrc A
jnc m2
m1: setb P1.0; установка 0 разряда порта Р1 в 1 для формирования сигнала У=1
jmp m3
m2: clr P1.0 ; установка 0 разряда порта Р1 в 0 для формирования сигнала У=0
m3: jmp m3 ; данная команда безусловного перехода имитирует останов
; выполнения программы
end ; директива конца программы для транслятора
Рис. Х Блок-схема алгоритма выполнения
логической функции
Рис.3 Блок-схема алгоритма выполнения логической функции
Таблица 1
Номер варианта |
Функция y1 = f(x1, …, xn) |
1 |
x1vx2x3vx4 |
2 |
x1x2x3 |
3 |
_ _ _ x1x2x3x4 |
4 |
_ x1x2x3x4 |
5 |
x1vx2vx3x4 |
6 |
_ x1x2x3 |
7 |
x1x2x3 |
8 |
_ x1x2x3x4 |
9 |
_ x1x2x3x4 |
10 |
x1x2x3x4 |
11 |
_ x1x2x3 |
12 |
_ x1x2x3 |
13 |
_ _ x1x2x3 |
14 |
_ x1 (x2x3) |
15 |
_ _ x1x2x3x4 |
16 |
____ x1x2x3x4 |
17 |
_ _ x1x2x1x2 |
18 |
_ _ x1x2x3x4 |
19 |
_ x1x2x3 x1x4 |
20 |
_ x1x2 x2x3x4 |
21 |
_ _ x1x2x3x4 |
22 |
_ x1\/ x2x3 |
23 |
x1x2 \/ x3x4 |
24 |
_ x1x2x3x4 |
25 |
x1x2 x3 x4 |