Автоматизация станка с ЧПУ

Автор работы: Пользователь скрыл имя, 05 Октября 2011 в 18:52, дипломная работа

Описание работы

Современный электропривод представляет собой конструктивное единство электромеханического преобразователя энергии (двигателя), силового преобразователя и устройства управления. Он обеспечивает преобразование электрической энергии в механическую в соответствии с алгоритмом работы технологической установки. Сфера применения электрического привода в промышленности, на транспорте и в быту постоянно расширяется. В настоящее время уже более 60% всей вырабатываемой в мире электрической энергии потребляется электрическими двигателями. Следовательно, эффективность энергосберегающих технологий в значительной мере определяется эффективностью электропривода. Разработка высокопроизводительных, компактных и экономичных систем привода является приоритетным направлением развития современной техники.

Содержание работы

Введение 6
1 Анализ объекта управления 8
1.1 Основные требования к объекту управления 8
1.2 Принцип работы БДПТ 10
1.3 Управление шаговым двигателем 14
1.4 Описание объекта управления 17
1.5 Анализ целей управления 17
2 Обзорный анализ существующих аналогов СУ 18
3 Построение структурной схемы СУ 20
4 Проектирование принципиальной схемы СУ 22
4.1 Выбор управляющего микроконтроллера 22
4.1.1 Основные требования к микроконтроллеру 22
4.1.2 Анализ аппаратных ресурсов микроконтроллера и обоснование их использования 23
4.1.3 Модуль микроконтроллера 24
4.2 Проектирование силовой части схемы 25
4.2.1 Устройство сопряжения и транзисторный ключ 25
4.2.2 Датчики положения ротора 27
4.2.3 Оптический энкодер 29
4.2.4 Разработка принципиальной схемы блока питания 32
4.3 Проектирование интерфейса пользователя 32
4.3.1 Модуль ЖК-дисплея 32
4.3.2 Устройство сброса микроконтроллера 34
5 Синтез алгоритма СУ 35
5.1 Разработка алгоритма микроконтроллера 35
5.2 Процедура инициализации 36
5.3 Основной цикл программы 38
5.4 Обработка прерывания QEI 38
5.5 Отладка программы микроконтроллера в среде MPLAB 39
5.6 Настройка параметров среды программирования 40
5.7 Создание нового проекта 40
5.8 Создание основного файла проекта 41
5.9 Подключение дополнительных файлов проекта 41
6 Технологическая часть 42
6.1 Программирование микроконтроллера 42
6.2 Разработка печатной платы 43
6.2.1 Общие сведения о системе проектирования печатных плат ACCEL P-CAD 2002 44
6.2.2 Технология изготовления печатных плат 44
6.2.3 Разработка печатных плат системы управления и силовой части 46
7 Экономическая часть 51
7.1 Расчет стоимости опытного образца 51
7.1.1 Расчет стоимости основных материалов 51
7.1.2 Расчет стоимости покупных изделий 52
7.2 Расчет стоимости проектирования и изготовления устройства 54
7.2.1 Расчет основной заработной платы 54
7.2.2 Расчет дополнительной заработной платы 54
7.2.3 Отчисления на социальные нужды 54
7.2.4 Общая стоимость проектирования и изготовления устройства 55
7.3 Общехозяйственные расходы. 55
7.4 Расчет полной стоимости устройства 56
7.5 Экономический эффект от создания устройства 56
8 Охрана труда и окружающей среды 57
8.1 Охрана труда 57
8.1.1 Разработка системы управления 57
8.1.2 Изготовление печатных плат системы управления и силовой части 60
8.1.3 Эксплуатация и обслуживание системы управления 63
8.2 Охрана окружающей среды 64
8.2.1 Охрана окружающей среды при работе на ПЭВМ 65
8.2.2 Охрана окружающей среды при работах по пайке и лужению 65
8.2.3 Экономия ресурсов и утилизация прибора 66
Заключение 68
Список литературы 69
Приложение А 70
Приложение Б 71
Приложение В 73
Приложение Г 74
Приложение Д 92

Файлы: 1 файл

ДИПЛОМ.doc

— 2.79 Мб (Скачать файл)
      1. Экономия  ресурсов и утилизация прибора

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

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

  1. увеличение срока службы изделия;
  2. использование малоотходных технологий;
  3. конструирование изделия таким образом, чтобы его демонтаж и утилизация потребовали бы минимальных затрат;
  4. возможность повторного использования отдельных частей или даже всего изделия в целом.

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

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

ЗАКЛЮЧЕНИЕ

     В ходе дипломного проектирования была разработана система автоматического  управления приводом резца лабораторного  фрезерного станка. Данная система  управления является следящей системой, так как каждый раз, как только заготовка поворачивается на 4°, система управления вырабатывает управляющие импульсы и подает их на транзисторные ключи для поворота резца на тот же угол, равный 4°.  Также определяется  частота вращения заготовки и выводится на ЖК-дисплей.

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

СПИСОК  ЛИТЕРАТУРЫ

  1. Иванов  В.И., Аксенов А.И., Юшин А.М. Полупроводниковые оптоэлектронные приборы: Справочник. – М: Энергоатомиздат, 1988.
  2. Копылов И. П. Электрические машины. М.: Энергоатомиздат, 1986. – 360 c.
  3. Справочник по автоматизированному электроприводу/Под ред. В. А. Елисеева, А. В. Шинянского. М.: Энергоатомиздат, 1983. – 616 c.
  4. Арменский Е.В., Фалк Г.Б. Электрические микромашины.- М.: Высшая школа,1985. - 231 с.
  5. Москатов Е. А. Справочник по полупроводниковым приборам. – М.: Журнал “Радио”, 2005. – 208 с.
  6. Жидкокристаллический модуль MT-16S2D. Руководство пользователя. – МЭЛТ, 2000.
  7. dsPIC30F2010 Data Sheet: Техническое описание. – Microchip Technology Incorporated, 2004.
  8. Sensored BLDC Motor Control Using dsPIC30F2010. - Microchip Technology Incorporated, 2004.
  9. MPASM™: Руководство пользователя. – Microchip Technology Incorporated. – М: ООО «Микро-Чип», 2001.
  10. Охрана труда. /Под редакцией Князевского Б.А. – М.: Высшая школа,1982.
  11. Технико – экономическое обоснование дипломных проектов. /Под редакцией Беклешова В.К. – М: Высшая школа,1991. – 176 с.

Приложение А

Приложение Б

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Продолжение приложения Б 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Приложение В

Приложение Г

Программа работы микроконтроллера:

#define __dsPIC30F2010__

#include "p30F2010.h"

#include "xlcd.h"

_FOSC(CSW_FSCM_OFF & XT_PLL8);

_FWDT(WDT_OFF);                   //сторожевой таймер отключен

_FBORPOR(MCLR_EN & PWRT_OFF);  

_FGS(CODE_PROT_OFF);             

#define FCY  20000000   // кварц 5 МГц

#define MILLISEC FCY/10000  // задержка 1 мс

#define FPWM 39000

#define Oborot 90    // число шагов на 1 оборот при шаге = 4 градуса

#define MIN 60     

void __attribute__((interrupt, no_auto_psv)) _CNInterrupt (void);  

void DelayNmSec(unsigned int N);    // задержка

void InitMCPWM(void);    // инициализация ШИМ

void InitTMR3(void);    

void InitLCD(void);     // инициализация дисплея

void LCD_WriteNibble(unsigned char nb);

void LCD_PutCHar(unsigned char ch);

void LCD_WriteCHar(void);    //выводим на дисплей "об/мин"

void LCD_ERror(void);    //выводим на дисплей "ошибка"

void LCD_Razgon(void);     //выводим на дисплей "разгон"

void LCD_setDDRAM(unsigned char set); //устанавливаем адрес, по которому выводится символ 

struct {

                  unsigned RunMotor :  1;

                  unsigned SndSpeed :  1;

                  unsigned CheckRX :  1;

Продолжение приложения Г

                  unsigned SendTX :  1;

                  unsigned unused  : 14;

            } Flags;

unsigned int Enc;    // переменная, содержащая состояние резца

unsigned int Enc_r;

unsigned int NextEnc;   // седующее состояние резца

unsigned int imp_pr,imp_lf;

unsigned int timer3value;

unsigned int ob_min;

unsigned int ob;

unsigned int t,i;

unsigned char a, b, c, d, e;  // байты, содержащие символ, выводимый на дисплей

unsigned int Razgon;

      В первой таблице содержится однозначное  соответствие принятого сигнала  определенному номеру.

      Во  второй таблице - порядок включения  ШИМ для вращения двигателя по часовой стрелке.

      Во  третьей таблице - порядок включения  ШИМ для вращения двигателя против часовой стрелки.

Таблица №1     Таблица №2   Таблица №3

1(001) |  5    1 |A  B   1 |A  C

_____________    ___________   __________

2(010) |  3    2 |  B   2 |  A

_____________    ___________   __________

3(011) |  4    3 |B  C   3 |A  B

_____________    ___________   __________

4(100) |  1    4 |  C   4 |  B

_____________    ___________   __________

5(101) |  6    5 |A  C   5 |B  C

_____________    ___________   __________

6(110) |  2    6 |  A    6 |  C

_____________    ___________   __________

*************************************************************/

Продолжение приложения Г

unsigned int Table_ENC[] = {0x0000, 0x0005, 0x0003, 0x0004, 0x0001, 0x0006, 0x0002};

unsigned int Table_PWM_pr[] = {0x0000, 0x0F00, 0x0C00, 0x3C00, 0x3000, 0x3300, 0x0300};

unsigned int Table_PWM_lf[] = {0x0000, 0x3300, 0x0300, 0x0F00, 0x0C00, 0x3C00, 0x3000};

/****************************************************************

Прерывание возникает  как только заготовка повернется на 4 градуса.

*****************************************************************/

void __attribute__((interrupt, no_auto_psv)) _CNInterrupt (void)

{

      if (PORTBbits.RB4 == 1)

      {

                  if (PORTBbits.RB5 == 0)

                        imp_pr = imp_pr + 1;

                  else

                        imp_lf = imp_lf +1;

      }

      else

      {

                  if (PORTBbits.RB5 == 1)

                        imp_pr = imp_pr + 1;

                  else

                        imp_lf = imp_lf +1; 

      }

      if (imp_pr == 278)    // вращение по часовой стрелке

      {

            Enc = 0x0000;    // обнулили переменную состояния резца

            if (PORTEbits.RE8 == 1)

                  Enc = Enc | 0x04;

            if (PORTDbits.RD0 == 1)

                  Enc = Enc | 0x02; 

            if (PORTDbits.RD1 == 1)

                  Enc = Enc | 0x01; 

Продолжение приложения Г

            Enc_r = Table_ENC[Enc];    // загрузили в переменную информацию о номере включения ШИМ из таблицы 2

            if (Table_PWM_pr[Enc_r] == NextEnc) // проверка на правильность работы - резец повернулся

            {

Norm1:

                  OVDCON = Table_PWM_pr[Enc_r];  // подключаем соответствующие ШИМ

                  if (Enc_r == 6)

                        NextEnc = Table_PWM_pr[1];  // следующее включение ШИМ при правильной работе

                  else

                        NextEnc = Table_PWM_pr[Enc_r+1];

                  timer3value = TMR3;  // время поворота заготовки на 4 градуса

                  TMR3 = 0;      // обнулили таймер

                  ob = Oborot*timer3value*25;  // время одного оборота

                  ob_min = MIN*1000000/ob;  // число оборотов за 1 минуту

                  IFS0bits.CNIF = 0;     // очистили флаг

            }

            else  // если резец не повернулся за заготовкой

            {

                  if (Razgon == 0)

                        goto Norm1;

                  else

                  {

                        TMR3 = 0;

                        ob_min = 0;  //выводим на экран сообщение об ошибке

                        IEC0bits.CNIE = 0;   //запретили прерывание

                  }

            }

      }

      else

                  IFS0bits.CNIF = 0;     // очистили флаг

Продолжение приложения Г

      if (imp_lf == 278)    //вращение против часовой стрелки

      {

            Enc = 0x0000;    // обнулили переменную состояния резца

            if (PORTEbits.RE8 == 1)

                  Enc = Enc | 0x04;

            if (PORTDbits.RD0 == 1)

                  Enc = Enc | 0x02; 

            if (PORTDbits.RD1 == 1)

                  Enc = Enc | 0x01;

            Enc_r = Table_ENC[Enc];    // загрузили в переменную информацию о номере включения ШИМ из таблицы 2

            if (Table_PWM_lf[Enc_r] == NextEnc) // проверка на правильность работы - резец повернулся

Информация о работе Автоматизация станка с ЧПУ