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

Автор работы: Пользователь скрыл имя, 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 Мб (Скачать файл)

void LCD_ERror(void)

{

      LATFbits.LATF2 = 1;  // А0 = 1 - вывод данных

    for( i=0; i<2000 ; i++);

      LCD_WriteNibble(6);  //

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

      LCD_WriteNibble(15);  //вывели "о"

    for( i=0; i<2000 ; i++); //задержка 2мс 

      LCD_WriteNibble(12);  //

      LCD_WriteNibble(1);  //вывели "ш"

    for( i=0; i<2000 ; i++); //задержка 2мс 

      LCD_WriteNibble(11);  //

      LCD_WriteNibble(8);  //вывели "и"

    for( i=0; i<2000 ; i++); //задержка 2мс 

      LCD_WriteNibble(11);  //

      LCD_WriteNibble(2);  //вывели "б"

    for( i=0; i<2000 ; i++); //задержка 2мс 

      LCD_WriteNibble(11);  

      LCD_WriteNibble(10);  //вывели "к"

    for( i=0; i<2000 ; i++); //задержка 2мс 

      LCD_WriteNibble(6);  

      LCD_WriteNibble(1);  //вывели "а"

    for( i=0; i<2000 ; i++); //задержка 2мс 

}

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

вывод на ЖК - дисплей  сообщение "разгон"

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

void LCD_Razgon(void)

{

      LATFbits.LATF2 = 1;  // А0 = 1 - вывод данных

    for( i=0; i<2000 ; i++);

      LCD_WriteNibble(7);  //

      LCD_WriteNibble(0);  //вывели "р"

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

    for( i=0; i<2000 ; i++); //задержка 2мс 

      LCD_WriteNibble(6);  //

      LCD_WriteNibble(1);  //вывели "а"

    for( i=0; i<2000 ; i++); //задержка 2мс 

      LCD_WriteNibble(11);  //

      LCD_WriteNibble(7);  //вывели "з"

    for( i=0; i<2000 ; i++); //задержка 2мс 

      LCD_WriteNibble(11);  //

      LCD_WriteNibble(4);  //вывели "г"

    for( i=0; i<2000 ; i++); //задержка 2мс 

      LCD_WriteNibble(6);  

      LCD_WriteNibble(15);  //вывели "о"

    for( i=0; i<2000 ; i++); //задержка 2мс 

      LCD_WriteNibble(11);  

      LCD_WriteNibble(13);  //вывели "н"

    for( i=0; i<2000 ; i++); //задержка 2мс 

}

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

установка адреса для вывода символа

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

void LCD_setDDRAM(unsigned char set)

{

      LATFbits.LATF2 = 0;  // А0 = 0 - запись команд

    for( i=0; i<2000 ; i++);

    LATFbits.LATF3 = 1;  // E-разрешает запись команды/данных

    for( i=0; i<2000 ; i++); 

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

      LATCbits.LATC13 = 1; // DB7 = 1

      if(set & 0x040)

         LATBbits.LATB2 = 1; // DB6

      else

         LATBbits.LATB2 = 0; 

      if(set & 0x020)

         LATBbits.LATB1 = 1; // DB5

      else

         LATBbits.LATB1 = 0; 

      if(set & 0x010)

         LATBbits.LATB0 = 1; // DB4

      else

         LATBbits.LATB0 = 0;

   

      LATFbits.LATF3 = 0;  // E=0

   for( i=0; i<2000 ; i++); 

    LCD_WriteNibble(set);

      LATFbits.LATF2 = 1;  // А0 = 1 

}

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

инициализация ЖК дисплея, на который выводится  информация о частоте вращения заготовки

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

void InitLCD(void)

{

      DelayNmSec(700);

      LATFbits.LATF2 = 0;  // А0=0 - запись команд

    for( i=0; i<1000 ; i++); 

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

      LCD_WriteNibble(3);  //0011

      DelayNmSec(20);

      LCD_WriteNibble(3);  //0011

     DelayNmSec(20);

     LCD_WriteNibble(3);  //0011

     DelayNmSec(100);

     // устанавливаем разряд интерфейса - 4 бита

     LCD_WriteNibble(2);  //0010

     DelayNmSec(100); 

     //включили дисплей

     LCD_WriteNibble(0);  //0000

     LCD_WriteNibble(12); //1100

     DelayNmSec(20);

     // очистили индикатор

     LCD_WriteNibble(0);  //0000

     LCD_WriteNibble(1);  //0001

     DelayNmSec(20);

     LATFbits.LATF2 = 1;  // A0=1

}

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

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

void InitMCPWM(void)

{

     PTPER = FCY/FPWM - 1; 

     PWMCON1 = 0x0700;   // disable PWMs

     OVDCON = 0x0000;   // allow control using OVD

     PDC1 = 100;     // init PWM 1, 2 and 3 to 100

     PDC2 = 100;

     PDC3 = 100;

     SEVTCMP = PTPER;

     PWMCON2 = 0x0F00;  // 16 postscale values

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

      PTCON = 0x8000;   // start PWM 

}

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

Таймер используется для определения скорости вращения заготовки

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

void InitTMR3(void)

{

      T3CON = 0x0030;   // internal Tcy/256 clock

      TMR3 = 0;

      PR3 = 0xFFFF;

}

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

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

void DelayNmSec(unsigned int N)

{

unsigned int j;

while(N--)

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

} 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Приложение Д

         Рисунок ПД.1 Печатная плата системы управления 
     
     
     
     
     
     
     

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

Рисунок ПД.2 Печатная плата силовой части 
 
 
 
 

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