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

Автор работы: Пользователь скрыл имя, 07 Апреля 2011 в 00:32, дипломная работа

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

Целью данной дипломной работы является создание программно-аппаратного комплекса с ЧПУ управлением, удовлетворяющего всем вышеприведенным требованиям. Комплекс ЧПУ позволяет выполнять множество задач, которые могут быть поставлены в зависимости от фантазии обладателя.

Файлы: 1 файл

MyDip.doc

— 321.50 Кб (Скачать файл)

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

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

      В программном продукте управления станком  ЧПУ необходимо реализовать модуль конвертирования векторных файлов (например *.dxf – стандартный формат данных, используемый во многих программных продуктах для создания векторных изображений в формате Gerber) в блок данных для отправки на микроконтроллер. Второй вариант – создание модуля непосредственного рисования кривых линий, прямых, окружностей и т.д. и подготовка  блока данных для отправки на микроконтроллер.

      Программные причины небыли решены на текущий  момент в основном из-за нехватки времени  для реализации необходимых методом  и создания модулей.

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

      I – На микроконтроллере:

    1. Ожидание команды на выжигание;
    2. Получение необходимых параметров для выполнения операции;
    3. Ожидание команды на начало получения блока данных о точках;
    4. Получение данных о координатах точки для выжигания;
    5. Перемещение «выжигателя» в указанную точку;
    6. Опускание выжигателя на указанную высоту для выжигания;
    7. Временная задержка на поверхности материала на выжигание;
    8. Поднимание выжигателя на начальную (указанную) высоту;
    9. Если не пришла команда конца блока данных, выполнение с 4 шага;
    10. Конец операции, инициализация станка.

    II – В программном комплексе на ПК.

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

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

      - в качестве параметров на микроконтроллер  передаются данные о начальной  позиции «выжигателя», о высоте перемещения «выжигателя», о времени задержки «выжигателя» на поверхности материала.

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

      - для выжигания одной точки  необходимо выполнить три команды  в отличие двух при сверлении: 

      а) перемещение шпинделя станка в указанную  точку координат;

      б) опускание выжигателя на поверхность материала для выжигания;

      в) поднимание выжигателя в начальную  точку и ожидание данных о следующей  точке.

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

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

        После загрузки изображения, оно  появится в поле приложения для визуального наблюдения. Далее необходимо анализировать информацию на изображении для формирования блока данных на отправку на МК. Для этого было решено программно исследовать каждый пиксель изображения на цветовую информацию. Практически это было реализовано при помощи функции ImageV->Canvas->Pixels[x][y], которая возвращает число и трех составляющих цветовой палитры. Чем меньше это число, тем темнее пиксель на изображении. Используя эту функцию, было решено отбирать только те точки, интенсивность  которых можно задавать непосредственно на форме приложения управления станком ЧПУ. Для этой цели был использован ползунок с ограничивающими параметрами в виде числовых констант под названием Интенсивность. Можно указать выбор пикселей, начиная от черных и заканчивая всеми пикселями, отличными от белых.

      Сканируя  изображение попиксельно, отбираются только точки, удовлетворяющие всем выбранным параметрам, записываем в  блок данных координаты соответствующих  пикселей для последующей отправки, одновременно отмечая на изображении зеленым цветом выбранные точки. Данная функциональность позволяет визуально анализировать полученные данные для выжигания. В случае неудовлетворения или других причин, можно изменить параметры и вновь произвести сканирование изображение с новыми параметрами отбора. Также есть возможность указать масштаб переносимого изображения, визуально это не отражается, но можно увидеть разницу в данных для отправки на МК. Для задания масштаба использован ползунок «Масштаб» с возможностью выбора от 10% до 400%.  Внешний вид модуля показан на рис. 2.7.1.

      После формирования блока данных, в отведенное поле выводятся данные, которые практически  готовы для отправки на МК. Далее  по нажатию кнопки отправляется блок данных с командой на выжигание и  с параметрами, необходимыми для выполнения операции. Командой на выжигание является текстовая строка "G22\n", за ней отправляются данные о начальной точке, точки достижения поверхности обрабатывания, временной задержки и отправка строки "DRL1\n", указывающая, что сейчас будет передача данных о координатах точек. И затем включается таймер ведения диалога между МП и ПК, каждая последующая строка будет отправляться   лишь после получения подтверждения о выполнении предыдущей команды в виде строки координат о положении шпинделя в координатной плоскости. 

Рис. 2.7.1. – внешний вид модуля выжигания.

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

      На  первом этапе тестирования модуля выжигания, были обнаружены те же недостатки что  и при сверлении. Речь идет о точности позиционирования станка, вернее о  разрешающей способности. Как говорилось ранее – минимальное расстояние, на которое можно переместить шпиндель станка, равно 0.8 мм. То есть расстояние между пикселями на переносимом материале составляет около 0.8 мм в зависимости от диаметра выжигающего инструмента. Вопрос о совершенствовании станка и программных модулей для увеличения точности стал еще более актуальным.

      §2.8. Модернизация комплекса ЧПУ

      Ранее описывалась модернизация станка, заключающаяся  в увеличении передаточного числа  от ШД к лентам перемещения кареток  в координатах X и Y. Теперь, проанализировав еще раз модуль управления ШД на микроконтроллере, было решено увеличить точность программно. В первую очередь был проанализирован предполагаемый результат данного мероприятия. Теоретически, была поставлена задача: сократить минимальное расстояние перемещения каретки станка с 0.8 мм до 0.2 мм, что  удовлетворило бы большинство потребностей при выполнении различных операций. То есть точность станка предполагается увеличить в 4 раза.

      Разберем  имеющийся алгоритм управления шаговым  двигателем для перемещения на  определенный имеющийся на данный момент минимальный угол.

for(i=1;i<=ar;i++)  

                  //импульсы шаг Ось  X вперед

{    

      PORTD.4 = 0;   PORTD.7 = 1;      //0001

            delay_ms(sleep);

      PORTD.5 = 0;   PORTD.4 = 1;      //0010

            delay_ms(sleep);

      PORTD.6 = 0;   PORTD.5 = 1;      //0100

            delay_ms(sleep);

      PORTD.7 = 0;   PORTD.6 = 1;      //1000

            delay_ms(sleep);

 

      Данная  подпрограмма вызывается при необходимости  вращения шагового двигателя для  перемещения каретки оси Х  вперед на один шаг. Из цикла видно, что для этого необходимо отправить 4 импульса, как и описывалось в теории управления шаговым двигателем. Если подавать за один вызов управления ШД только один импульс, то в 4 раза сократится угол, на который провернется ШД, следовательно, и расстояние, проходимое шпинделем станка в координатной плоскости.

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

   for(i=1;i<=ar;i++)

{          //импульсы шаг Ось X вперед

            switch (bx)

{

      case 0 : PORTD.4 = 0; delay_ms(sleep); PORTD.4 = 1; bx++; break;   // 0001

      case 1 : PORTD.5 = 0; delay_ms(sleep); PORTD.5 = 1; bx++; break;   // 0010

      case 2 : PORTD.6 = 0; delay_ms(sleep); PORTD.6 = 1; bx++; break;   // 0100

      case 3 : PORTD.7 = 0; delay_ms(sleep); PORTD.7 = 1; bx=0; break;   // 1000

            default :;

 }

}             

 

      В подпрограмме была введена новая переменная bx которая и выполняет функцию сохранения позиции. 4 импульса – 4 возможных значений в дополнительной переменной. При Подаче одного импульса – увеличивается значение bx на 1 и при следующем вызове подпрограммы будет подан «нужный» импульс. При достижении 4 импульса, переменная обнуляется, и цикл подачи импульсов будет продолжаться в соответствии с таблицей импульсов для управления ШД. Также была изменена подпрограмма перемещения каретки в противоположную сторону. Были изменены только подпрограммы управления ШД в режиме полного шага. В случае успешного тестирования будут изменены и подпрограммы управления ШД в режиме половинного шага.

      Повторно  был «прошит» микроконтроллер обновленной  версией программного кода. При подаче питания успешно произошла инициализация  станка. Загружено изображение для операции выжигания, просканировано, установлены параметры, нажата кнопка старт. После нескольких десятков строк обнаружено сильное искажение изображение на переносимом материале. Повторно проверены все параметры, изменено изображение, новь кнопка старт и вновь неправильная работа станка…

Информация о работе Разработка программно – аппаратного устройства с числовым программным управлением