Контроллер промышленного назначения
Разработка
устройства логического управления (контроллера) промышленного назначения
Введение.
В данном
курсовом проекте поставлена задача разработать некий промышленный контроллер
для работы в условиях производства. Задача может быть выполнена на
микропроцессоре с гибкой программируемой логикой, а также на дискретных
элементах с жесткой логикой.
Реализация
на микропроцессоре обладает весомыми преимуществами. Гибкая логика, возможность
легкой модернизации контроллера, перспективность.
Программируемая
логика реализована на микропроцессоре типа МК-51 фирмы ATMEL – AT89C51, который благодаря встроенной
FLASH памяти, обладает возможностью электрического перепрограммирования, а
значит быстрой модернизации управляющей программы.
Наличие
микропроцессора в современных контроллерах позволяет создавать сложные, гибкие,
компактные и надежные системы управления с централизованным управлением и
диагностикой.
Структурный
синтез цифрового автомата
Обозначим
структуру проектируемого микроконтроллера.
Управляющий
логический блок на основе микропроцессора.
Блок
сбора информации и преобразования ее в вид, требуемый для обработки
микропроцессором.
Блок
гальванической развязки входных сигналов и сигналов, поступающих на
микропроцессор.
Блок
связи с исполнительными устройствами (включающий гальваническую развязку) для
преобразования выходных сигналов микропроцессора в мощные сигналы управления.
Блок
начального сброса микропроцессора.
Блок
индикации входных и выходных сигналов.
Блок
электропитания контроллера.
2.
Разработка принципиальной схемы.
1.
Управляющий логический блок.
В
качестве основы для контроллера выбран популярный микропроцессор типа MK-51 от
фирмы Atmel – AT89C51.
Его основные преимущества перед подобными процессорами
иных фирм:
Полностью совместим с семейством МК-51.
4 кб встроенной перепрограммируемой Flash памяти
(включая перепрограммирование непосредственно на плате по протоколу SPI)
при не менее 103 циклов перезаписи.
Работа на частотах от 0 до 40 МГц.
128х8 бит ОЗУ.
32 программируемых линии портов ввода/вывода.
Два 16-битных таймера счетчика
Шесть источников прерываний
Программируемый последовательный канал совместимый с RS-232-S.
2.
Блок сбора информации и преобразования ее в вид, пригодный для обработки
микропроцессором.
Входная информация и выходная информация проходит через
внешний разъем типа
РШ2Н-2-16.
В
таблице 1 приведен список и условное обозначение входных и выходных сигналов из
задания.
Табл.
1.
Наименование сигнала по заданию
|
Присвоенное название
|
Входные сигналы
|
S1 - контактный датчик
|
S1
|
S2 – контактный датчик
|
S2
|
S3 – контактный датчик
|
S3
|
Ua - Аналоговый сигнал напряжения в диапазоне 0..10В
|
UA
|
Ev – датчик освещенности 0..200лк
|
EV
|
Выходные сигналы
|
Электромагнит Y1
|
Y1
|
Электромагнит Y2
|
Y2
|
Тр. Модуль – VT1
|
Y3
|
Тр. Модуль – VT2
|
Y4
|
Условия переходов автомата
|
S1 Ú U < 7 B
|
X1
|
EV < 40 лк
|
X2
|
(S1 Ú S2) Ú U > 1 B
|
X3
|
S3 ^ EV < 50 лк
|
X4
|
S2 ^ U < 3 B
|
X5
|
EV > 100 лк
|
X6
|
Сигнал с
датчика освещенности (фоторезистора СФ2-1) снимаем по такой схеме:
Далее
сигнал поступает на делительный мост из резисторов, формирующий нужный уровень
сигнала, подаваемый на схему из двух компараторов. На не инвертирующий вход
компаратора подается измеряемая величина напряжения, а на инвертирующий –
величина опорного напряжения, при достижении которой значение логического
сигнала на выходе компаратора меняется на противоположное. Срабатывание при нужном значении освещенности
регулируется подстроечными резисторы марки РП1 – 48 10КОм±10%.
Компаратор
LM29000.
Максимальный
потребляемый ток 2 мА.
Напряжение
смещения 1 мВ.
Корпус DIP-14.
Для
организации высокостабильного опорного напряжения выбраны специализированная
микросхема LM4130 фирмы National Semiconductor.
Выходное
опорное напряжение 4.096 В
Погрешность
выходного напряжения 0.05%
Температурный
коэффициент нестабильности 3*10-6/оС
Минимальное
входное напряжение 5 В
Потребляемый
ток 1 мА
Максимальный
выходной ток 30-50 мА
Изменение
выходного напряжения (при Iвых=30..50 мА) 0.05%
По такой
же схеме организован прием и формирование логических сигналов UA на микропроцессор.
3.
Блок гальванической развязки входных сигналов и сигналов, поступающих на
микропроцессор.
Входные
величины поступают из внешней (для контроллера) среды, что говорит о возможном
наличии помех различных типов. Так же необходимо предусмотреть возможность
неправильной полярности подключения датчиков. Поэтому возникла необходимость в
гальванической развязке сигналов.
Для
того, чтобы развязать входные уровни микропроцессора и входных сигналов от
датчиков применены три оптопары К249КН4П. Характеристики, по которым они были
выбраны:
Uмахком=60
В;
Iвхmin=10
мА;
Iвхmax=25
мА;
Iком=8
мА.
Резисторы
R1 и R2 рассчитываются из условий максимального входного и коммутируемого
токов. Диод обеспечивает защиту от неправильной полярности включения.
Резисторы:
R1 C2 –
23 0.25Вт 1600 Ом±0.25%
R2 C2 –
23 0.125Вт 270 Ком±0.1%
Диод
КД521А(Д220А):
Uпр=1В, Uобр=75В, Iпр.ср=50мА, Iобр=1мкА.
Обработка
выходных величин:
Электромагнит.
В данной
работе автомат генерирует выходной сигнал управления электромагнитом (=24В,
10Вт). Данная мощность явно не позволяет подключать электромагнит
непосредственно к выходу микропроцессора, поэтому здесь целесообразно применить
мощные твердотельные оптоэлектронные реле. Мощность на выходе которых может
достигать достаточно больших значений. В оптопаре одновременно реализуется
гальваническая развязка силовой и управляющей цепей, а также усиление по
мощности сигнала.
Схема
подключений оптоэлектронного реле:
Твердотельное
реле для цепей постоянного тока 5П19А1:
Напряжение
коммутации -60..+60В
Ток
коммутации -3..3А
Входной
ток 10 – 25мА
Входное
напряжение в выключенном состоянии -3.5..0.8 В
Рассеиваемая
мощность 1000мВт
Температура
окр. среды -45..+85
Корпус SIP12
Резистор:
R C2 –
23 0.125Вт 360 Ом±0.1%
Транзисторный
модуль
Транзисторный
модуль М2ТКИ-50-12 управляется специализированным драйвером - драйвер
транзисторных модулей такого типа - IR2112 фирмы
International
Rectifier. Драйвер способен выдерживать
напряжения до 600 вольт.
Схема включения
приведена ниже:
Symbol
Description
VDD Logic supply
HIN Logic input for high side gate driver output (HO),
in phase
SD Logic input for shutdown
LIN Logic input for low side gate driver output (LO), in
phase
V SS Logic ground
VB High side floating supply
HO High side gate drive output
V S High side floating supply return
VCC Low side supply
LO Low side gate drive output
COM Low side return
Диод VD должен выдержать обратное
напряжение 600В.
Диод
КД105Г(КД209В):
Uпр=1В
Iср.пр=300мА
Iср.обр=0.1мА
Uобр=800В
Драйвер IR2112:
Параметры
драйвера:
VOFFSET 600V max.
IO+/- 200 mA / 420 mA
VOUT 10 - 20V
ton/off (typ.) 125 & 105 ns
Delay Matching 30 ns
Корпус DIP14.
R
C2 – 29 0.5 10 Ом±0.25%
Конденсатор:
C
К73 – 17 630В 0.1мкФ±10%
Начальный
сброс микропроцессора
Для
системы, построенной на базе микропроцессора необходима схема начального сброса
и система предохранения от зависания. Так как из-за сильной электромагнитной
помехи может исказиться часть информации, обрабатываемой микропроцессором в
данный момент, что чревато сбоем в алгоритме управляющей программы, а так же
зацикливанием работы процессора или его “зависанием”. Все это приводит к отказу
в работе контроллера.
Как
правило, такие сильные и фатальные помехи случаются очень редко, но если контроллер
выполняет часть операций в отлаженном техническом процессе, то такой его отказ
приводит к возникновению незапланированного простоя в работе и большими
экономическими убытками.
Работоспособность
контроллера можно восстановить, подав на процессор команду сброса (reset).
Такие функции выполняет WatchDog
Taimer. В данной
работе эта система не реализована. Сброс микроконтроллера можно будет
произвести кратковременным сбросом питающего напряжения или кнопкой Reset, расположенной на передней панели.
Конденсатор:
C
К50-16-50В-1 мкФ
Индикация
Возможны
несколько способов реализации индикации:
на
светодиодах,
на ЖК
элементах,
на
цифровых или символьных индикаторах и др.
Для
обеспечения визуального наблюдения за функционированием контроллера введен блок
индикации сигналов. Его реализация является программной.
Подпрограмма
опрашивает состояния входов и выходов и выводит эти значения в порт P0
микропроцессора МК51.
Непосредственно
на эти выходы подключены светодиоды, которые визуально отображают состояние
входов и выходов.
Для
того, чтобы светодиоды можно было подключить напрямую к порту, они должны
потреблять как можно меньше тока, но при этом обеспечивать достаточную яркость
свечения.
Этим
запросам полностью удовлетворяют выбранные светодиоды КИПД02Б-1К. Ниже в
таблице приведены их основные параметры.
Тип
прибора
|
Цвет
свечения
|
Значения параметров при Т=25°С
|
Iпр.мах.
mA
|
Uобр
(Uобр.и)
B
|
Iv. мккд
(L, кд/м2)
|
Uпр.
B
|
Iпр.ном.
mA
|
мах.
mkM
|
КИПД02Б-1К
|
Красный
|
900
|
1,8
|
5
|
0,7
|
20
|
3.0
|
При
напряжении питания и токе светодиода 5 мА токоограничивающий резистор принимаем
равным R=1кОм
Резисторы:
R
C2 – 23 0.125Вт 1КОм±0.1%
Питание
элементов схемы
На вход
контроллера поступает питающее напряжение 24В, а в состав контроллера входят
устройства, питающиеся от 5В, а также 15В. Проблема питания может быть решена с
помощью специализированной интегральной схемы импульсного преобразователя
постоянного напряжения. Примером такого преобразователя может служить
интегральный преобразователь DCP. На вход этого преобразователя поступает
постоянное напряжение, и на выходе тоже имеется постоянное напряжение, но
другого уровня. При этом осуществляется полная гальваническая развязка между
входом и выходом с помощью встроенного трансформатора. Микросхема заключена в
корпус DIP14, компактна и удобна в использовании. В данной работе будет использоваться микросхема
(DCP022405P(на выходе 5В)). Выходная мощность микросхем составляет 2Вт.
ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ DC/DC серии DCP02
На входе
имеются две емкости: керамический конденсатор для устранения кратковременных
пиков тока, возникающих при переключениях транзисторов и электролитический -
для поддержания входного напряжения постоянным при его медленных колебаниях.
На
выходе также имеются керамические конденсаторы, емкость которых будет
рассчитана ниже.
Схема
подключения интегральных импульсного преобразователя:
Конденсатор
на входе преобразователя имеет емкость 470мкФ.
DA1
Импульсный
преобразователь DCP022405P
Выходная
мощность 2Вт
Выходное
напряжение 5В
Входное
напряжение 24В
DA1
Импульсный
преобразователь DCP022415DP
Выходная
мощность 2Вт
Выходное
напряжение ±15В
Входное
напряжение 24В
Конденсаторы:
C1 К50 –
16 50В 470мкФ +50 -20%
C4 К50 –
16 50В 10мкФ +50 -20%
4.
Конструирование контроллера
Конструкция
контроллера представляет собой плату печатную, вдвижную. Для выполнения
основной печатной платы рекомендуется использовать двусторонний фольгированный
стеклотекстолит марки ФТС2-35 ТУ 16-503.161-83. Двустороннее фольгирование
выбрано из соображений уменьшения плотности расположения проводников и
уменьшения размеров основной печатной платы устройства. Плату изготовить
фотохимическим способом. Дорожки на плате
травление по “позитиву”. Размеры печатной платы определяются в
соответствии с ГОСТ 2.109-73.
Для увеличения жесткости печатной платы монтировать на
специальную рамку, отлитую с лицевой панелью из легкого алюминиевого сплава
АЛ9. Толщина рамки и панели - 3 мм. Плата крепить к рамке при помощи стяжных
винтов М3.
На лицевой панели расположены отверстия под светодиоды,
кнопка сброса.
Крепление
кнопки сброса производится “под гайку” на передней панели.
Внешний
разъем типа РШ2Н-2-16. Разъем - электрический соединитель для печатного
монтажа, расположение штырьков линейное. Предназначен для работы в электрических
цепях постоянного и переменного тока с частотами до 3 МГц и цепях импульсного
тока.
Рекомендуемый
тип припоя – ПОС 60 ГОСТ 21930-76.
Конструкция
блока представляет из себя алюминиевое шасси, на котором закреплена печатная
плата. Шасси блока одновременно является и направляющей при установке блока в
основное (либо управляемое) устройство. На передней панели закреплены кнопка
сброса и индикаторы. Плата соединена с кнопкой сброса гибкими проводами.
Разработка
программного обеспечения
При
выборе микропроцессорной системы управления существенно уменьшается количество
дискретных элементов. Что упрощает систему, и, следовательно, повышает ее
надежность. С другой стороны отказ самого микропроцессора (само по себе это
явление редкое, чаще сказываются ошибки проектирования) ведет к выходу
абсолютно всей системы. В то же время появляется необходимость в управляющей
программе. Каждый тип микропроцессора обладает рядом только ему присущих
особенностей: архитектурой, набором команд, функциональными возможностями и так
далее. Все это было принято к сведению при написании программы для
спроектированной системы управления.
Программа
была написана на языке ассемблера для МК-51 с использованием системы отладки AVSIM51. Далее приводится алгоритм работы
программы, листинг программы и hex файл, представляющий собой образ
ПЗУ предназначенный непосредственно для прошивки в микросхему.
Алгоритм
работы программы.
Используя
особенность микропроцессора МК-51 работать с отдельными битами (булев
процессор) данное задание можно выполнить напрямую запрограммировав все
состояния и условия переходов.
Листинг
программы:
2500
A.D. 8051 Macro Assembler - Version 4.02a
------------------------------------------------
Input
Filename : kurs.asm
Output
Filename : kurs.obj
1 ;
2 ;
3 ;
4 ;
5 ;
6
7 ;Для
удобства именуем переменные состояния
8 0020
X0: EQU 20h
9 0021
X2: EQU 21h
10 0022
X3: EQU 22h
11 0023
X4: EQU 23h
12 0024
X5: EQU 24h
13
14 0040
R_N: EQU 55h ;задержка для антидребезговой подпрограммы
15 0001
R_C: REG R1 ;именуем регистр для антидребезговой подпрограммы
16 0000
17 0025
PER: EQU 25h ;временная переменная для сравнения
18 0000
19 0000
BSECT ;переход к битовой секции
20
21
;Задаем имена переменных для обозначения входных параметров
22 0090
S1:REG P1.0 ;
23 0091
S2:REG P1.1 ;
24 0092
S3:REG P1.2 ;
25 0093
U1:REG P1.3 ;
26 0094
U3:REG P1.4 ;
27 0095
U7:REG P1.5 ;
28 0096
L40:REG P1.6 ;
29 0097
L100:REG P1.7 ;
30 00B1
L50:REG P3.1 ;
31 00B2
INDL50:REG P3.2 ;
32 0000
33
;Задание имен переменных для индикации выходных величин
34 0000
35 0080
IND:REG P0.0 ;имя переменной для обозначения порта индикации
36 0000
37
;Начало программы располагаем по адресу 30h
38 0000
02 00 30 JMP x0
39 0030
ORG 30H
40
41
;Обработка состояния X0
42 0030
C3 x0: CLR C ;сбрасываем флаг переноса C
43 0031
75 A0 FF MOV P2, #11111111b ;обнуляем выходы порта P2 (Q2,Q1,Q0)
44 0034
12 00 91 CALL drbzg ;вызов подпрограммы обработки дребезга
45 0037
12 00 AA CALL xx0 ;вызов подпрограммы обработки условия X0
46 003A
A2 20 MOV C,X0 ;записываем в C 1, если X0=1
47 003C
40 43 JC x5 ;переход на метку x5, если перенос C=1
48 003E
02 00 41 JMP x1 ;иначе переход на метку x1
49
50
52 0041
C3 x1: CLR C
53 0042
75 A0 F6 MOV P2, #11110110b ;записываем в P2 значения выходов и индикации
54 0045
12 00 91 CALL drbzg
55 0048
A2 96 MOV C,L40
56 004A
40 E4 JC x0
57 004C
02 00 71 JMP x4
58
59
60
;Обработка состояния X2
61 004F
C3 x2: CLR C
62 0050
75 A0 DB MOV P2, #11011011b
63 0053
12 00 91 CALL drbzg
64 0056
12 00 B1 CALL xx2
65 0059
A2 21 MOV C,X2
66 005B
40 03 JC x3
67 005D
02 00 71 JMP x4
68
69
;Обработка состояния X3
70 0060
C3 x3: CLR C
71 0061
75 A0 ED MOV P2, #11101101b
72 0064
12 00 91 CALL drbzg
73 0067
12 00 C1 CALL xx3
74 006A
A2 22 MOV C,X3
75 006C
40 D3 JC x1
76 006E
02 00 71 JMP x4
77
78
79
;Обработка состояния X4
80 0071
C3 x4: CLR C
81 0072
75 A0 E4 MOV P2, #11100100b
82 0075
12 00 91 CALL drbzg
83 0078
12 00 C8 CALL xx4
84 007B
A2 23 MOV C,X4
85 007D
40 02 JC x5
86 007F
01 4F JMP x2
87
88
89
;Обработка состояния X5
90 0081
C3 x5: CLR C
91 0082
75 A0 D2 MOV P2, #11010010b
92 0085
12 00 91 CALL drbzg
93 0088
12 00 CF CALL xx5
94 008B
A2 24 MOV C,X5
95 008D
40 C0 JC x2
96 008F
01 71 JMP x4
97
98
99
;Подпрограмма обработки дребезга, индикации
100 0091
drbzg:
101 0091
79 40 MOV R_C, #R_N ;загрузка в регистр константы для антидребезга
102 0093
E5 90 st: MOV A, P1 ;загрузка в аккум. значение порта P1
103 0095
7B 0A MOV R3, #10 ;задержка для опред. дребезга
104 0097
DB FE DJNZ R3, $ ;
105 0099
B5 90 F5 CJNE A, P1, drbzg ;сравнение аккум. с портом и переход
106 009C
D9 F5 DJNZ R_C, st ;отсчет времени для распознавания дребезга
107 009E
E5 90 MOV A,S1 ;секция индикации входных сигналов
108 00A0
F4 CPL A ;инверсия значений, т.к. управление идет по 0
109 00A1
F5 80 MOV IND,A ;запись в порт для индикации
110 00A3
C3 CLR C
111 00A4
A2 B1 MOV C,L50
112 00A6
B3 CPL C
113 00A7
92 B2 MOV INDL50,C ;
114 00A9
22 RET ;возврат из подпрограммы
115
116
;Подпрограмма обработки условия X0
117 00AA
A2 90 xx0: MOV C,S1 ;
118 00AC
B0 95 ANL C,/U7 ;логическое И бита и переноса
119 00AE
92 20 MOV X0,C
120 00B0
22 RET
121
123
;Подпрограмма обработки условия X2
124 00B1
A2 90 xx2: MOV C,S1 ;
125 00B3
B0 91 ANL C,/S2
126 00B5
92 25 MOV PER,C
127 00B7
A2 91 MOV C,S2
128 00B9
B0 90 ANL C,/S1
129 00BB
72 25 ORL C,PER
130 00BD
82 93 ANL C,U1
131 00BF
92 21 MOV X2,C
132
133
134
;Подпрограмма обработки условия X3
135 00C1
A2 92 xx3: MOV C,S3 ;
136 00C3
B0 B1 ANL C,/L50
137 00C5
92 22 MOV X3,C
138 00C7
22 RET
139
140
141
;Подпрограмма обработки условия X4
142 00C8
A2 91 xx4: MOV C,S2 ;
143 00CA
B0 94 ANL C,/U3
144 00CC
92 23 MOV X4,C
145 00CE
22 RET
146
147
148
;Подпрограмма обработки условия X5
149 00CF
A2 97 xx5: MOV C,L100 ;
150 00D1
92 24 MOV X5,C
151 00D3
22 RET
152 00D4
153 00D4
END
Lines
Assembled : 153 Assembly Errors : 0
Образ
ПЗУ для прошивки
:03000000020030CB
:10003000C375A0FF1200911200AAA2204043020043
:1000400041C375A0F6120091A29640E4020071C36C
:1000500075A0DB1200911200B1A2214003020071D1
:10006000C375A0ED1200911200C1A22240D302007C
:1000700071C375A0E41200911200C8A223400201CE
:100080004FC375A0D21200911200CFA22440C0012C
:10009000717940E5907B0ADBFEB590F5D9F5E590E6
:1000A000F4F580C3A2B1B392B222A290B09592208F
:1000B00022A290B0919225A291B090722582939243
:1000C00021A292B0B1922222A291B094922322A2B4
:0400D00097922422BD
:00000001FF