Разработка микропроцессорной системы управления прокатного стана для вытяжки и прокатки проволоки

Прокатный стан и его оборудование, их основные типы и характеристики. Автоматизация технологического процесса. Разработка принципиальной схемы, выбор управляющего микроконтроллера. Алгоритм программы управления. Описание используемых интерфейсов.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 26.12.2012
Размер файла 1,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Содержание

  • Введение
  • 1. Техническое задание
  • 2. Разработка функциональной схемы
  • 3. Разработка принципиальной схемы
  • 3.1 Выбор управляющего микроконтроллера
  • 3.2 Выбор электронных элементов
  • 4. Разработка программы управления
  • 4.1 Разработка алгоритма программы
  • 4.2 Описание программы
  • 4.3 Описание используемых интерфейсов
  • Приложение

Введение

ПРОКАТНЫЙ СТАН - в металлургии машина или система машин для осуществления прокатки. Оборудование прокатного стана для деформирования металла называется основным, а для прочих операций - вспомогательным (транспортные рольганги, пилы, ножницы, моталки и т.п.) или отделочным (правильные машины, защитные устройства и др.). По назначению прокатные станы делят на 5 основных видов, которые, в свою очередь, можно подразделить на несколько типов: обжимные и заготовочные (блюминги, слябинги, заготовительные сортовые, трубозаготовительные); сортовые (рельсобалочные, крупно-, средне - и мелкосортные, проволочные); листовые - горячей прокатки (широкополосные, толсто - и тонколистовые) и холодной прокатки (листовые, ленто-, фольгопрокатные, плющильные); трубопрокатные; специальные (колесо-, шаро-, бандажепрокатные, для зубчатых колес и др.).

Обжимные, заготовочные и сортовые прокатные станы характеризуются диаметром рабочих валков, листовые - длиной бочки валков, трубопрокатные - наружным диаметром труб. По числу валков прокатные станы классифицируют на двух-, трех-, четырех-, шести - и многовалковые (в т. ч. планетарные); по числу рабочих клетей на одно-, двухклетевые и т.д.; по расположению клетей на линейные (клети расположены в одну или несколько линий), непрерывные (клети располагаются одна за другой) и полунепрерывные; по направлению вращения рабочих валков на: нереверсивные и реверсивные.

Число и расположение рабочих клетей прокатных станов определяется его назначением, требующим числом проходов металла между валками для получения данного профиля и заданной производительностью. По этому признаку станы подразделяются на 8 типов. К одноклетевым станам относят большинство блюмингов, слябинги, шаропрокатные станы, станы для холодной прокатки листов, ленты и труб. Если в одной рабочей клети не удается расположить необходимое число калибров или требуется высокая производительность, применяют станы с несколькими рабочими клетями. Наиболее совершенны многоклетевые непрерывные станы, в которых металл одновременно прокатывается в нескольких клетях. Непрерывные станы служат для горячей прокатки заготовки, полос, сортового проката, проволоки, труб, а также для холодной прокатки листов, жести, ленты и др. профилей. Скорость прокатки на станах весьма различна. У обжимных, заготовительных, толстолистовых, крупносортных станов скорость прокатки составляет 2-8 м/с.

Наибольшие скорости прокатки характерны для непрерывной прокатки: сортового проката - 10-20 м/с; полосового - 25-35 м/с; проволоки - 50-70 м/с; холодной прокатки жести - около 40 м/с. Заготовительные станы могут быть двух типов в зависимости от исходного металла - слитков, отлитых в изложницах, или непрерывнолитых заготовок. В первом случае заготовительный стан является также обжимным. Типичные представители таких станов - слябинг, когда требуется плоская заготовка крупных размеров (слябы) и блюминг с установленным за ним собствственно заготовочным непрерывным станом, если требуется прокатные заготовки квадратного или круглого сечения для сортовых, проволочных и трубопрокатных станов. За последней клетью этих станов располагаются летучие ножницы для разрезки заготовки на части требуемой длины или пилы и стеллажи для резки, охлаждения и осмотра заготовки.

Заготовительный стан может иметь две непрерывных группы клетей с горизонтальными и вертикальными (для исключения кантовки металла) валками. В этом случае заготовительный стан для выпуска заготовок больших размеров имеет в разрыве между группами клетей летучие ножницы и шлеппер для передачи металла на обводной рольганг. В России заготовительные станы обозначают по диаметру прокатных (шестеренчатых) валков в группах клетей, например - 900/700/500. При использования непрерывнолитой заготовки заготовительные станы устанавливают рядом с МНЛЗ в целях использовования тепла неостывшего металла. Листовые и полосовые станы горячей прокатки предназначены для производства плит толщиной 50-350 мм, листов толщиной 3-50 мм и полос (сматываются в рулон) толщиной 1,2-20 мм. Толстолистовые станы состоят из 1-2 двух и четырехвалковых - клетей с длиной бочки валков 2,8-5,5 м, иногда с установленными перед ними дополнительными клетями с вертикальными валками для обжатия боковых кромок.

Для прокатки полос наибольшее применение получили широкополосные непрерывные или полунепрерывные станы, состоящие из 10-15 четырехвалковых клетей с длиной бочки валков 1,5-2,5 м и нескольких клетей с вертикальными валками. Весь прокатываемый металл сматывается в 15-50-т рулоны. Эти станы значительно более производительны, чем толстолистовые, поэтому они используются также и для прокатки толстых (4-20-мм) листов, которые изготавливаются при разматывании рулонов и их разрезке. Со стороны выхода металла из валков устанавливаются выходные рольганги и большое количество вспомогательного оборудования для обработки и транспортиртировки проката; у толстолистовых станов - правильные машины, ножницы, печи для термической обработки и т.д., а у широкополосных станов - моталки для сматывания полос в рулоны, конвейер для транспортировки рулонов и оборудование для разматывания рулонов, их правки и разрезки на листы. "

прокатный стан микроконтроллер

1. Техническое задание

Для обеспечения интерфейса система имеет клавиатуру управления с достаточным числом клавиш.

Отображение ведется на специализированном четырехстрочном ЖК индикаторе. Для контроля технологического процесса используется несколько датчиков температуры в виде термопар или пирометрических сенсоров. так как предпочтителен безконтактный контроль то пирометрические сенсоры предпочтительнее. Для контроля процесса протяжки и исключения провисания проволоки из-за неравномерности натяжения используется комплекс оптических и пъезодатчиков контролирующих силу натяжения. Блок специализированных ключей использующий широтно-импульсную модуляцию управляет скоростью вращения 8ми двигателей приводящих в движение прокатные вальцы. При этом каждый из вальцов может вращаться со своей произвольной скоростью в зависимости от требований. Также контроллер управляет через специальный клапан подачей пропана и кислорода обеспечивая равномерность работы горелки подогрева и требуемую температуру В общем контроллер предусматривает управления процессом прокатки проволоки, при этом выполняется нагрев исходной болванки с помощью специализированной горелки до заданных температур и через 6-8 вальцов протягивания с уменьшением диаметра до получения нужного диаметра проволоки. Необходимо контролировать с помощью термофазы температуру в 4 точках.

2. Разработка функциональной схемы

Для правильного последующего проектирования устройства и реализации его в виде принципиальной электрической схемы требуется первоначально провести анализ основных функций и построение функциональной схемы устройства.

АЦП-Аналогово-цифровой преобразователь

ТП - термопара

БК-блок клавиатуры

ЭК - электронный ключ управления моторами и горелками.

ЖКИ - четырехстрочный жидкокристаллический индикатор.

ДН - датчик натяжения проволки

Rs232 - модуль сопряжения с COM портом компьютера

АЦП преобразует аналоговый код в цифровой, соединяет термопары с микроконтроллером, термопара контролирует температуру, датчики натяжения контролируют натяжение проволоки, на ЖКИ отображаются параметры, электронные ключи управляют моторами и горелками.

3. Разработка принципиальной схемы

3.1 Выбор управляющего микроконтроллера

Для того, чтобы решить задачу нам нужно выбрать микроконтроллер. Основные требования для выбора данного микроконтроллера:

- наличие достаточного количества портов ввода-вывода. К микроконтроллеру необходимо подключить 4 датчика температуры, датчик движения, клавиатуру, четырехстрочный ЖК - индикатор.

- наличие программного пакета для написания и отладки программы микроконтроллера.

- достаточная изученность микроконтроллера.

Для реализации МПС были выбраны 3 контроллера: МК AT89S52, AVR Atmega8 и PIC16F628. Для выполнения выбора подробнее рассмотрим каждый из контроллеров.

AVR (ATmega8)

PIC (16F628)

MK-51 (AT89C52)

ПЗУ (память программ)

8 Кб

2 Кб

8 Кб

Таймеры/счетчики

2 (8 разрядов)

1 (16 разрядов)

1 (8 разрядов)

3 (16 разрядов)

Число портов ввода/вывода

23

13

32

Питание

4,5-5,5

3,0-5,5

4,0-5,5

Архитектура

RISC

RISC

CISC

Тактовая частота

16МГц

10МГц

24МГц

Память данных

128 байт

68 байт

256 байт

Стоимость

400 руб.

75 руб.

60 руб.

МК ATmega8 имеет следующие отличительные особенности:

- 8ми-разрядный высокопроизводительный AVR микроконтроллер с малым потреблением RISC архитектура.

- 130 высокопроизводительных команд, большинство команд выполняется за один тактовый цикл.

- 32 8ми-разрядных рабочих регистра общего назначения.

- Полностью статическая работа.

- Приближающаяся к 16 MIPS (при тактовой частоте 16 МГц) производительность

- Энергонезависимая память программ и данных

- 8 Кбайт внутрисистемно программируемой Flash памяти (In-System Self-Programmable Flash)

- Обеспечен режим одновременного чтения/записи 512 байт EEPROM

- 1 Кбайт встроенной SRAM Встроенная периферия:

- Два 8-разрядных таймера/счетчика с отдельным предварительным делителем, один с режимом сравнения

- Один 16-разрядный таймер/счетчик с отдельным предварительным делителем и режимами захвата и сравнения

- Счетчик реального времени с отдельным генератором

- 6-канальный аналого-цифровой преобразователь (в корпусе PDIP)

- 4 канала с 10-разрядной точностью

- 2 канала с 8-разрядной точностью

- Байт-ориентированный 2-проводный последовательный интерфейс

- Программируемый последовательный USART

- Последовательный интерфейс SPI (ведущий/ведомый)

- Программируемый сторожевой таймер с отдельным встроенным генератором

- Встроенный аналоговый компаратор

- Специальные микроконтроллерные функции

- Встроенный калиброванный RC-генератор

- Внутренние и внешние источники прерываний

- Выводы I/O и корпуса

- 23 программируемые линии ввода/вывода

- 28-выводной корпус PDIP, 32-выводной корпус TQFP и 32-выводной корпус MLF

- Рабочие напряжения - 2,7 - 5,5 В (ATmega8L) 4,5 - 5,5 В (ATmega8)

- Рабочая частота - 0 - 8 МГц (ATmega8L) 0 - 16 МГц (ATmega8)

Как видно из приведенных технических характеристик контроллер имеет высокую производительность достаточную программную память и необходимые АЦП и порты. Имеется среда разработки на С. Недостаток отсутствие функций умножения и деления требуют написания специальных подпрограмм необходимых для перевода получаемых значений в цифровой вид и разделения значащих разрядов на сотни единицы и десятки.

Далее рассмотрим следующую серию МК PIC16F628 она имеет следующие основные особенности:

- RISC архитектуру и всего 35 простых для изучения инструкции;

- Все инструкции исполняются за один такт (400 нс);

- Скорость работы: тактовая частота до 10 МГц;

- Память программ 2K FLASH;

- Память данных ОЗУ (байт) 68

- 15 аппаратных регистров специального назначения

- четыре источника прерывания:

- внешний вход RB0/INT

- переполнение таймера TMR0

- прерывание при изменении сигналов на линии порта B (PORTB<7: 4>)

- по завершению записи данных в ЭСППЗУ (EEPROM)

- 8-разрядный таймер/счетчик;

- 8-разрядный программируемый предварительный делитель;

- 1000 циклов записи/стирания FLASH памяти программы.

Периферия:

- 13 линий ввода/вывода с индивидуальным контролем направления;

- Сильноточные схемы (до 25мА) для управления светодиодами.

Особенности микроконтроллера:

- Программирование на плате через последовательный порт (ICSPT)

- Таймер включения питания (PWRT) и таймер запуска генератора (OST)

- Сброс по падению напряжения питания

- Сторожевой таймер (WDT) с собственным встроенным RC-генератором для повышения надежности работы

- Широкий рабочий диапазон напряжений питания - от 2,0В до 6,0В

- Низкое потребление энергии:

- < 2 мА при 5,0 В, 4,0 МГц

Недостаток этого микроконтроллера в том, что он не имеет встроенного АЦП, а в остальном он подходит для решения нашей задачи. Последним для рассмотрения был выбран МК 51 серии - AT89C52. Этот контроллер имеет встроенный АЦП и по предварительной оценке по параметрам полностью подходит для выполнения поставленной задачи.

Для данной задачи - разработки регистратора параметров технологического процесса - микроконтроллер семейства МК-51 оптимальный он имеет большие возможности управления, которые необходимы для решения поставленной задачи. Также по существенным параметрам: число портов ввода вывода (32), архитектура (CISC) - микроконтроллер MCS-51 АТ89C4051 значительно лучше микроконтроллеры подобных серий других производителей. Кроме того микроконтроллер серии МК-51 не уступает микроконтроллерам AVR и PIC также в таких параметрах как: число таймеров счетчиков (3), тактовая частота (до 24 МГц), режимы экономии энергии (Idle, Power-down). А так же при серийном выпуске данного изделия большую роль будет играть его малая стоимость и высокая надежность работы.

Рис. 1 - контактная группа выводов AT89C52

А еще важно, что у имеются средства программирования и средство моделирования элементов программы - лабораторный стенд на ADUC812

Краткие характеристики контроллера MCS-51 АТ89С4051:

Для использования в данно был выбран микропроцессор АТ89С4051 серии MSC-51.

Он обладает высокими техническими характеристиками:

1. Частота работы от 0 до 24МГц.

2. Объем встроенного флешь ПЗУ - 4КБ.

3. Объем регистрового ОЗУ 128 байт.

4. Два счетчика 16ти разрядных счетчика\таймера.

5. Порт выдерживает нагрузку до 20мА.

6. Число портов ввода вывода 32 (оставлены порты P1 и P3).

7. Котроллер поставляется в сорокавыводном корпусе.

8. Напряжения питания от 5В +-20% (номинальное 5В).

Это все позволяет реализовать требуемые функции и существенно упростить схему.

Обозначения:

· GND - потенциал общего провода ("земли");

· Vcc - основное напряжение литания +5 В;

*XTAL1,XTAL2 - выводы для подключения кварцевого резонатора;

· RST - вход общего сброса микроконтроллера;

· P1 - восьми битный квази двунаправленный порт ввода/вывода: каждый разряд порта может быть запрограммирован как на ввод, так и на вывод информации, независимо от состояния других разрядов;

· РЗ - восьми битный квази двунаправленный порт, аналогичный. Р1; кроме того, выводы этого порта могут выполнять ряд альтернативных функций, которые используются при работе таймеров, порта последовательного ввода-вывода, контроллера прерываний, и внешней памяти программ и данных;

Отличительные особенности:

- Совместимость с серией MCS-51 SISC архитектура.

- 8 кБ флэш-памяти с внутрисхемным программированием (ISP) Со стойкостью ПЗУ программ: 1000 циклов записи/стирания

- Рабочий диапазон питания 4.0…5.5В

- Полностью статическое функционирование: 0 …24 МГц

- Внутреннее ОЗУ размером 256x 8

- 32 программируемые линии ввода-вывода

- Три 16-разрядных таймера-счетчика

- Восемь источников прерываний

- Полнодуплексный канал последовательной связи на УАПП

Достоинство данного контроллера не только в большом числе периферии, но и наличии команд умножения и деления, что значительно упрощает программу и позволяет реализовать её с меньшими временными затратами. Также данная архитектура изучена хорошо в курсе лабораторных работ, что позволяет упростить разработку, так как часть программного кода уже написана и отлажена. Также контроллер имеет невысокую цену 300р. Что важно для практической реализации управляющего устройства.

Учитывая все вышесказанное окончательно было решено использовать контроллер 51 серии как наиболее доступный и подходящий по параметрам.

3.2 Выбор электронных элементов

Выбрать цифровые датчики температуры не представляет возможным так как они имеют ограниченный температурный диапазон и требуется использовать специализированные термопары которые имеют возможность измерения больших температур. Для данных датчиков требуется специализированное устройство усиления и АЦП для преобразования аналогового сигнала в цифровой. Для сопряжения с последовательным портом требуется согласовать уровни + - 12 RB, для этого используется схема на транзисторов VT-1,VT-2, которая обеспечивает преобразование сигналов 0.5 в от UART, контроллер сигнала +-12 RS-232 это позволяет без проблем соединять последовательный порт контроллера с портом компьютера при этом если выбрать режим 9-битную передачу, то для этого необходимо просто назначить нужную скорость тактирования, чтобы получить скорость 9600. Схема достаточно проста, но зарекомендована во многих устройствах, как надежная, она позволяет измерять термопары в диапазоне от 300-1500.

Измерительный сенсор - термопара.

Сенсор состоит из двух проводов, которые изготовлены из различных металлов или сплавов и которые на одном конце, в месте измерения, спаены или сварены друг с другом:

Рис. 2 Термопара

Функции

Принцип измерения термопары
Если температура места измерения отличается от температуры на свободном конце сенсора, то между свободными концами возникает напряжение, термическое напряжение. Величина термического напряжения зависит от разницы между температурой места измерения и температурой на свободных концах, а также от вида комбинации материалов сенсора. Так как одним сенсором всегда регистрируется одна разница температур, то для определения температуры места измерения свободные концы должны находится в на клемме термокомпенсации с равномерной и известной температурой. Основные величины термических напряжений и допустимые отклонения для самых распространенных пар материалов приведены в DIN EN 60 584, часть 1 (см. "Технические параметры", таблица "Основные величины термонапряжений и предельные отклонения"). Сенсоры Cu-CuNi и Fe-CuNi по DIN 43 710 предусмотрены в качестве запасных. Обычно поставляются сенсоры класса 2. Для более точных измерений могут поставляться сенсоры класса 1 с уменьшенным наполовину DIN-допуском или сертификатом заводского испытания. Допуски действуют только при поставке прибора. В процессе эксплуатации при высоких температурах допуски сенсоров могут изменяться из-за поглощения примесей, окисление или испарение составных частей сплавов.
Сенсоры от их места соединения через компенсационные линии по возможности имеют удлинение до места с равномерной температурой (клемма термокомпенсации). Компенсационные линии имеют туже идентификационную окраску как и соответствующие сенсоры; плюсовой полюс окрашен в красный цвет. Следить за соблюдением полей при соединении, в ином случае возникают большие погрешности измерения. До 200°C для компенсационных линий действуют те же основные величины и допуски что и для соответствующих сенсоров. Влияние колебаний температуры на клемме термокомпенсации может быть устранено компенсационным подключением, например, с помощью компенсационной розетки. Эталонная температура составляет 0°C (32°F) или 20°C (68°F). Клеммы термокомпенсации также могут сохранять постоянную температуру в 50, 60 или 70°C (122, 140 или 158°F) с помощью термостата (для нескольких мест измерения). От клеммы термокомпенсации к измерительному или процессуальному прибору прокладываются медные линии. У энергопотребляющих приборов, например, у индикаторов и точечных принтеров, весь измерительный контур (сенсор, компенсационная линия и медная линия) в рабочем состоянии должен компенсироваться уравнительным сопротивлением. Измерительный преобразователь SITRANS T и компенсационный самописец KOMPENSOGRAPH для подсоединения к термопарам имеют встроенную компенсационную схему для уравнивания влияния внешней температуры на клемму термокомпенсации. Благодаря высокому входному сопротивлению здесь отсутствует коррекция линейного сопротивления. Защитная арматура/защитные трубки. Сенсор может быть защищен от механического или химического воздействия с помощью керамической или металлической защитной трубки, которая ввинчивается, приваривается или прифланцовывается к трубопроводам или резервуарам. Конец сенсора находится на соединительной головке. Схема включения термопары взята из практической разработки, аналогично схема используется в измерительном приборе и эта схема предоставлена самим производителем. Схема включения в обратную связь, как рекомендует производитель, дает коэффициент коррекции, чтобы обеспечить максимальное изменение температур. Для формирования опорного напряжения сформирована специализированная микросхема, формирующаяся из 5 В и 3В на выходе и через переменный резистор мы вставляем вход микросхемы как 2.5 В, подстрочный резистор в обратной связи в паре с термопары позволяет регулировать коэффицент усиления, обеспечивая на выходе сигнала 0-5B. Сигнал поступает на АЦП. В качестве аналого-цифрового преобразователя используется DS2450.
Рис. 3. Разводка выводов микросхемы аналого-цифрового преобразователя DS2450.
Обозначения:
Vcc - линия питания 4.5-5.5 В;
NC - не используемые;
DATA - линия связи с МК по протоколу 1-Ware;
GND - потенциал общего провода ("земли");
AIN-A - аналоговый вход A;
AIN-B - аналоговый вход B;
AIN-C - аналоговый вход C;
AIN-D - аналоговый входD;
Общее описание аналого-цифрового преобразователя DS2450:
DS2450 - четырехканальный АЦП. Он имеет 8-битную точность и может сопрягается с большим колличеством датчиков и приборов, оцифровывать сигнал и передавать его на устройства сбора и обработки данных по простой однопроводной сети 1-Wire. Встроенный уникальный серийный номер позволяет объединить множество DS2450 с помощью однопроводной сети 1-Wire и получить доступ к конкретному датчику в пределах сети.
Особенности аналого-цифрового преобразователя DS2450:
1. Четырехканальный АЦП на одном последовательном порту
2. Питание через вход Vcc или паразитное через линию передачи данных
3. 8-битная и 16-битная разрешающая способность
4. Два диапазона входных измерений: 0В-2.56В и 0В-5.12В
5. Напряжение питания от 3.5B до 5.5В; рабочий диапазон температур от - 40°С до +85°С
6. Неиспользуемые аналоговые каналы могут быть сконфигурированы для работы в качестве ключа с открытым коллектором.
7. Уникальный серийный номер (ID) позволяет однозначно определить конкретный датчик в качестве источника измерений
8. Возможность объединения нескольких устройств
9. по однопроводной сети
Четырехканальное АЦП успешно обеспечивает оцифровку показаний температуры для определения натяжения проволоки можно использовать оценку ее провисания в горизонтальной плоскости на заданном расстоянии, для этого наиболее оптимально использовать оптический датчик, который выполняет контроль ГО, проволока натянута достаточно, чтобы перекрывать щель, или же контроллер автоматически подстраивет скорость двигателя. Для контроля провисания выбран, рекомендованный в радиолюбительской литературе оптический датчик на логической И-НЕ на КМОП микросхеме, включенный в режиме компоратора, при этом сравнивается сигнал с поступающей в оптический прием ВД-2, ВД-4, и сигнал с делителяR-5,R-6 и R-9,R-10 использование подстрочного резистора позволяет регулировать чувствительность датчика, что также улучшает его характеристики, второй элемент используется, как инвертирующий буфер. В Качестве схемы клавиатуры, используется клавиатурный шифратор, который сам формирует код, что позволяет упростить программу и уменьшить число используемых портов. Для ввода клавиши до трех ЖКИ подключен по параллельному восьмиканальному интерфейсу на порт PO без использования сигнала RW, последующее выдерживания задержек не менее 100 мкрс между передачей каждого следующего байта данных. Для управления двигателями используются оптосимисторные силовые ключи, которые позволяют изолировать высоковольтную часть от управляющего контроллера эти ключи позволяют коммутировать двигателем до 2-3 квт, что вполне достаточно для данной разработки. Используя широтно-импульсное управление, контроллер регулирует скорость вращения валиков, для протягивания и силы натяжения протягивания проволоки, используется в устройстве, для управления контроллером используется клавиатурный шифратор K-155 B-Для контроля состояния, протягиваемой проволоки на провисании используются оптические датчики, которые по закрытому состоянию позволяют контролировать ее натяжение, для этого используются 4 датчика. Для съема температуры проволоки и пламени нагрева, используется узел обратной связи, для операционного усилителя DA-2, что повышает линейность съема показателей, для повышения точности используется DA-специализированный формирователь напряжения. Для корректного съема температуры с обеспечением максимальной линейности характеристики использована схема включения термопары в виде обратной связи. Для управления всей системой решено использовать восьмиклавишную клавиатуру, которая реализована с помощью специальной микросхемы - шифратора К155ТВ1, которая определяет, какая из клавиш нажата и передает код клавиши всего по трём проводам, что сокращает число необходимых для использования портов.
Рис 3 - условное графическое обозначение ИМС К155ИВ3
Для вывода информации используется четырехстрочный ЖК-индикатор. Выводит информацию в двух строках. Для управления им используется две дополнительные шины RS - выбор команды, E - стробирующая запись данных в индикатор.

4. Разработка программы управления

4.1 Разработка алгоритма программы

На четырехстрочном ЖК-индикаторе отображаются следующие параметры, скорость температура, время. Фиксируется температура в определенный момент времени, при нажатии определенной клавиши, проволока двигается в ту или иную сторону

Примеры надписей на ЖК

V

2

5

2

6

2

9

3

1

5

5

1

0

:

3

0

Т

1

2

0

0

1

2

0

0

1

1

5

0

0

8

0

0

Так же выводиться время начала и окончания процесса.

Структура программы

В программе можно выделить следующие блоки:

· Обработчик прерывания от последовательного порта. Выполняет считывание команд, переданных от персонального компьютера: общий сброс, открытие клапанов, запуск двигателя и насоса.

· Обработчик прерывания от таймера 0. Выполняет подсчет времени (минут).

· Обработчик прерывания от внешнего источника INT0. Для реализации клавиатуры, имеющей 6 клавиши: старт, открытие клапана 1,2,3, насос, двигатель.

· Блок установки режимов таймеров и необходимых регистров.

· Блок инициализации последовательного порта приема-передачи, с помощью которого реализован канал RS-232.

· Блок анализа и реализации команд, принятых от персонального компьютера.

· Блок считывания температуры и давления с датчиков и приведение этих значений к допустимым.

· Блок вывода происходящего процесса: заполнение реагентом, работа насоса или двигателя, регулирование температуры и давления.

Разработанный алгоритм представлен в графическом виде на рисунке 1.

4.2 Описание программы

Всего имеются 6 клавиш.

1. клавиша ВКЛ/ВЫКЛ.

2. Скорость проволоки+.

3. Скорость проволоки-.

4. Выбор канала.

5. Температура+.

6. Температура-.

За счет того, что таймер срабатывает каждую миллисекунду ЖКИ,

Успевает воспринимать каждый следующий символ т. к ему требуется не менее 100 микросекунд на обработку поспевающих данных. Первые 22 такта заполняют данные в первую строчку.

Далее пока не наступит 40 тактов выводим пробелы, чтобы перейти на следующую строку и еще 22 такта используем для вывода 2-ой строки, а последний 999-ый используем для очистки дисплея перед выводом новых данных обработка передается выводом выполняющийся в основном теле программы.

8 линий устраивает ШИМ-модуляцией 8 каналов управления, если ширина импульса для ШИМ. Одна берется в процентном соотношении 0-100, также задается в ШИМ в массиве vt и в зависимости от этого включает и выключает обработчики таймеров.

4.3 Описание используемых интерфейсов

У каждой микросхемы DS18S20 имеется уникальный и неизменяемый 64-битный серийный номер, используемый как узловой адрес датчика. При этом появляется возможность сосуществовать множеству микросхем DS18S20 на одной 1 проводной шине. Микросхема DS18S20 может быть локально запитана от 3.0В до 5.5В или она может быть сконфигурирована таким образом, чтобы быть запитанной посредством 1-проводной линии данных.

Осуществление передачи команды начала преобразования и других команд, а также считывания значения измеренной температуры производится с помощью 1-проводного интерфейса (1-WireTM).

Используемый 1-проводным интерфейсом протокол не сложен. В любой момент времени на 1-проводной шине можно выделить устройство-мастер, которым может быть микропроцессор или компьютер, и подчиненное устройство, в нашем случае это микросхема система нагрева и охлаждения.

Мастер всегда выступает инициатором обмена по 1-проводной шине. Обмен с датчиком всегда начинается с процесса инициализации. Инициализация производится в следующей последовательности:

1. Формируется импульс сброса не менее 480мкс

2. Далее линия отпускается и через некоторое время не более 60мкс она закорачивается самим датчиком это как сигнал готовности к обмену.

3. Далее следует выполнить передачу команды и адреса конкретного датчика установленного на шине.

Рис. 4. Временная диаграмма инициализации

После того, как мастер обнаружил ответ, он может передать датчику одну из команд. Передача ведётся путём формирования мастером специальных временных интервалов (time slots). Каждый временной интервал служит для передачи одного бита. Первым передаётся младший бит. Интервал начинается импульсом низкого уровня, длительность которого лежит в пределах 1 - 15 мкс. В подчиненном устройстве запускается схема временной задержки, которая определяет момент считывания данных. Номинальное значение задержки равно 30 мкс, однако, оно может колебаться в пределах 15 - 60 мкс. За импульсом низкого уровня следует передаваемый бит. Он должен удерживаться мастером на шине в течение 60 - 120 мкс от начала интервала. Временной интервал завершается переводом шины в состояние высокого уровня на время не менее 1 мкс. Длительность интервала зависит от собственной емкости линии определяемой длинной. Так как в моем устройстве датчики находятся на большом расстоянии от контроллера, то рекомендуется не мене 15мкс.

Рис 5. Временная диаграмма передачи 1ного бита

Протокол 1 WIRE определяет структуру сообщений, которая используется и распознаётся устройствами, подключёнными к однопроводному интерфейсу. Он описывает способ запроса устройством (ведущим) доступа к другим устройствам (ведомым) и способ ответа на запросы. Обмен сообщениями по линии связи возможен при наличии в сети одного ведущего устройства и одного или нескольких ведомых устройств.

Сообщения могут быть нескольких видов:

- инициализация линии;

- команды доступа к ПЗУ;

- команды доступа к памяти;

- команды чтения данных.

Обмен сообщениями по 1 WIRE начинается с инициализирующей последовательности, состоящей из импульса сброса, передаваемой ведущим и ответным импульсом присутствия. Появление импульса присутствия является признаком наличия в линии одного или нескольких ведомых устройств. После получения импульса присутствия ведущий может отправит одну из следующих команд доступа к ПЗУ:

- Команда чтения ПЗУ [33h].

Эта команда позволяет прочитать идентификатор устройства, 48 битный серийный номер и контрольную сумму. Эта команда может быть использована только при наличии одного ведомого на линии во избежание коллизий при одновременном ответе нескольких устройств.

- Команда совпадения ПЗУ [55h].

Эта команда, за которой следует 64 битный уникальный код устройства, позволяет ведущему получить доступ к конкретному устройству при наличии нескольких устройств на линии.

- Команда пропуска ПЗУ [CCh].

Команда применима только в том случае, если на линии присутствует только одно устройство и обеспечивает доступ к нему без передачи уникального серийного номера.

Команда поиска ПЗУ [F0h].

Эта команда используется для определения серийных номеров всех устройств 1 WIRE После команды выбора ПЗУ в линию связи может быть передана одна из следующих команд транспортного уровня:

- Команда чтения регистра статуса [20h].

Установленный в единицу 5 бит ответного сообщения указывает на готовность нового результата давления, ещё не прочитанного ведущим. Бит 5 сбрасывается в 0 при чтении результата.

- Чтение значения давления [03h].

Ответное сообщение преобразователей содержит три информационных байта и CRC.

Первый байт содержит старшую часть давления в двоично-десятичном виде; второй - младшую часть; третий байт имеет следующую структуру:

D7 - знак числа (0 - положительное, 1 - отрицательное);

D6…D4 - положение десятичной точки в числе, представленном 1 и 2 информационными байтами;

D3 - резерв;

D2…D0 - размерность полученной величины (0 - кПа, 1 - МПа, 2 - кГс/см2, 3 - % от верхнего предела измерений).

Вычисление контрольной суммы:

Прием байта начинается с младшего бита. Вначале идет байт кода семейства. За кодом семейства идет 6 байт серийного номера, начиная с младшего. Затем идет байт контрольной суммы (CRC). В вычислении байта контрольной суммы принимают участие первые 7 байт, или 56 передаваемых бит.

Приложение

(Схема устройства)

(Листинг программы)

#include<reg51. h>

#include<stdlib. h>

sbit iware=P3^2;

sbit rs=P3^4; /*данные команд для LCD*/

sbit e=p3^3; /*синхронизация LCD*/

sbit k2=P3^5; /*для чтения ключа 4-8*/

sbit power1=P1^3;

sbit power2=P1^2;

sbit ohlagd=P1^1;

sbit zachita=P1^0;

unsigned char const dat1 [] ={0xDD,0x05,0xEC,0x67,0x3D,0x34,0xb9, 0x11 }; /*номера датчиков*/

unsigned char const dat2 [] ={0xDD,0x05,0xEC,0xAD,0x35,0xb9,0xF9,0x32 };

unsigned char const dat3 [] ={0xDD,0x05,0x45,0x20,0x99,0xb5,0xF9,0x42 };

unsigned char const datadc [] ={0x55,0x00,,0x05,0x45,0x20,0x99,0x3f, 0x02 }; /*номер adc*/

unsigned char seksotl,sekt,min,hour; // счетчики времени для контроля работы датчика

unsigned char key,keyold;

unsigned char i,j,k,pp,n,s;

unsigned int tis,tok, intok,outtok,him,ppi;

unsigned char poz,pp1,regim; // отображаем сегмент

bit fstart,ff; // бинарные флаги состояния

unsigned char const str1 [] ={0xDD,0x05,0xEC,0x9A,0xA3,0xb9,0xF9,0x0D,0xFD,0xBD,0x02 }; // chern metall

unsigned char const str2 [] ={0xDD,0x05,0x45,0x20,0x99,0xb5,0xF9,0x0D,0xFD,0xBD,0x02 } // нагрев

unsigned char const str3 [] ={0xDD,0x05,0xE2,0x45, 0x38,0x8,0xF9,0x0D,0xFD,0xBD,0x02 }; // остывание

unsigned char const lcdini [] ={0x08,0,0,0,0x01};

unsigned char lcd1 [] ={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 };

unsigned char lcd2 [] ={0x33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 };

unsigned char dat [] = {0,0,0,0,0,0,0,0};

unsigned char datout [] = {0,0,0,0,0}; // min 0-60, T1, Iin, Iout, regim

unsigned char iw,him,;

void delay (void char t) {unsigned char dd; for (dd=0; dd<t; dd++) } // задержа на 5 мкс

}

void resetiw (void)

{

fok=0;

if (iware) // старт

{

iware=0;

delay (88); // задержка 480 мкс

iware=1;

delay (14); // задержка 77 мкс

if

(! iware)

{

delay (74); // задержка 480 мкс

if (iware)

{

fok=1;

}

}

}

}

void readiw (void) // чтение IWare

{

unsigned char pp,nn;

pp=0;

for (nn=0; nn<8; nn++);

{

iware=0; // начало обмена бита

delay (2);

iware=1;

delay (6); // +33мкс для чтения

CY=iware; pp=pp>1;

delay (14);

}

iw=pp; // сохранить результат

}

void writeiw (void char t) // чтение IWare

{

unsigned char pp,nn;

pp=t; for (nn=0; nn<8; nn++)

{

iware=0;

delay (3);

pp=pp>1;

iware=CY;

delay (20);

iware=1;

delay (3);

}

}

void uart (void) interrupt 4 using 2

{

if (RI)

{

if (SBUF==0xff)

{

fatsart=1; }

if (SBUF==0)

{

fstart=0; }

if (SBUF==2)

{

if (++regim<3) regim=0; }

if (SBUF==4)

{

outtok=outtok+10; if (++outtok>200)

{

outtok=200; him=10; } // set tok work

else

him=outtok>>1/10; }

if (SBUF==5)

{

outtok=outtok-10; if (++outtok<50)

{

outtok=50; him=5;

}

else

him=outtok>>1/10;

}

if (SBUF==6)

{

setmin++;

if (setmin>45) setmin=45; // установить воемя работы

}

if (SBUF==7)

{

setmin--; if (setmin=0) setmin=1;

}

if (step==0) {SBUF=datout [step]; }

}

if (TI) // запись текущего состояния

{

TI=0;

if (++step<5)

{

SBUF=datout [step]; }

else step=0;

}

}

void timer0 (void) interrupt 1 using 2 /* r0*/ функция прерывания таймера

{

if (++tis==10000) {tis=0; if (++sek==60)

{

sek=0; if (regim<=) {min++; if (min>setmin) {fstart=0; regim=3; timeo=15;

}

}

else

if (--timeo>0)

fstart=0;

}

else { pp=tis%10;

if

( (pp) >5)

{

while ( (tok>>1) >pp)

{

power1=1;

}

power1=0; /* ШИМ-управление*/

}

else

{

while ( (tok>>1) >pp)

{

power1=1;

}

power1=0;

}

}

} /*конец функции прерывания таймера */

void skank (void)

{

/*SKAN KEY*/P1=7; rs=1; in=1;

for (ii=0; ii<4; ii++)

{

P1=P1&0xf0+7; if! (in) key=1; if! (rs) key=5;

P1=P1&0xf0+0x0a;

if! (in)

key=2;

if! (rs)

key=6;

P1=P1&0xf0+0x0d;

if! (in)

key=3;

if! (rs)

key=7;

P1=P1&0xf0+0x0e;

if! (in)

key=4;

if! (rs)

key=8;

CY=0;

}

if (key==keyo)

{

key=10;

}

else

{

keyo=key;

if

(key==1)

{fatsart=~fstart; }

If (key==2)

{

if (++regim<3) regim=0; }

if (key==4)

{

outtok=outtok+10;

if (++outtok>200)

{

outtok=200;

him=10; } // set tok work

else

him=outtok>>1/10;

}

if (key==5)

{

outtok=outtok-10;

if

(++outtok<50) {outtok=50; him=5;

}

else

him=outtok>>1/10;

}

if (key==6)

{

setmin++

; if

(setmin>45)

setmin=45; // установить время работы

}

if (key==7)

{

setmin--;

if

(setmin=0)

setmin=1;

}

if

(key==0)

{

SBUF=datout [step];

}

}

}

void outlcd (void)

{

for (k=0; k<5; k++)

{

if

(regim==0) lcd1 [k] =str [k];

}

lcd1 [3] =min/10+0x30; lcd1 [4] =min%10+0x30; lcd1 [5] =0x2d;

lcd1 [8] =tokin/100+0x30; lcd1 [9] =tokin%100+0x30; lcd1 [10] =0x2d;

lcd1 [8] =tok/100+0x30; lcd1 [9] =tok%100+0x30;

lcd1 [10] =tok%100%10+0x30; // выводим на lcd

for (k=0; k<67; k++)

{

if (k<5)

{

e=0; rs=1; P1=lcdini [k]; e=1;

}

else if (k<27)

{

e=0; rs=0; P1=lcd1 [k-5]; e=1;

}

else if (k<45)

{

e=0; rs=0; P1=0x20; e=1;

}

else if (k<67)

{

e=0; rs=0; P1=lcd2 [k-45]; e=1;

}

delai (10);

}

void main (void)

{

SCON=0x50; // обмен 8 битным тактом дя таймера

TH1=0xFD; // для 24MGcCOM-19200

sekl=0; /*time 1s*/

TH0=0x9B; /*set temer 20 000 Gc*/

TMOD=0x22; /*2режима перезагрузки таймера */

ET0=1; /*enable interrupt timer0*/

PT0=0; /*priority = 0*/

EA=1; /*enable interrupt*/

ES=1;

EX1=1;

TR0=1; /*запуск таймера t0*/

TR1=1;

while (1)

{

if (tis==1)

{

resetiw;

if

(tis==2) && (fok)

{

writeiw (0xcc);

writeiw (0x44); // zapusk ocifrovki

}

if ( (tis%30) ==0)

{

resetiw;

if

(fok)

{

writeiw (0xcc);

write (0xbf);

for (j=0; j<8; j++)

{

readiw ();

dat [j] =iw;

}

ppi=dat [0];

ppi=ppi<<8+dat [1];

t [1] =ppi/55;

ppi=dat [2];

ppi=ppi<<8+dat [3];

t [2] =ppi/55;

ppi=dat [4];

ppi=ppi<<8+dat [5];

t [3] =ppi/55;

ppi=dat [6];

ppi=ppi<<8+dat [7];

t [4] =ppi/55;

resetiw;

writeiw (0xcc);

writeiw (0x44);

}

for (j=0; j<4; j++)

if

(t [j] <tset [j]) himg [j] ++; himg [j] - -;

if

(dn1)

{

himd [0] ++; himd [1] ++; himd [2] ++; himd [3] ++;

}

If

(dn2)

{

himd [1] ++; himd [2] ++; himd [3] ++;

}

if (dn3)

{

himd [2] ++; himd [3] ++;

}

If

(dn1) {himd [3] ++;

}

if

(dn2) && (! dn1) && (! dn3)

{

himd [0] - -; himd [1] ++; himd [2] ++; himd [3] ++;

}

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.