Формирование файла сверления для отправки на микроконтроллер
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Для ведения диалога ПКßàМК был организован алгоритм «общения» станка ЧПУ с ПК через интерфейс RS232 [1], [6]. Для этого организован диалог между МК и ПК, используя некоторый набор управляющих и информационных команд. Также, было учтено, что на МК размер буфера составляет 256 байт. То есть, при отправке большей информации, происходят потери данных и, вследствие этого, возникает ошибка работы, как станка ЧПУ, так и всей системы в целом. Для этого было решено отправлять данные на МК пакетами, размер которых не будет превышать 256 байт.

Но также нам необходимо знать, что отправлять. Был составлен список команд, которые будут использоваться для обеспечения диалога ПКßàМК. Например, отправленная на МК, команда G 05 означает, что начинается операция сверления, G 22 – операция выжигание.

Операция сверления

Для сверлений отверстий необходимо знать координаты отверстия на плате и глубину опускания сверла. Для экономии времени и ресурсов, введем еще понятие начальной позиции сверла, то есть если рабочий ход сверла 100 мм, а толщина платы всего 3 мм, то нет необходимости полностью поднимать и опускать сверло над отверстием. Функция перемещения по координатам на МК организована таким образом, что при выполнении в первую очередь перемещается ось Z, а затем ось X и Y. Поэтому алгоритм сверления отверстия на МК будет следующим:

1. Получили команду G05 на сверление в основном цикле программы;

2. Передаем управление процедуре сверления;

3. Ожидаем строку с данными о начальной позиции сверла (ZN{значение}) и заносим его в переменную zn;

4. Ожидаем строку с данными о максимальной позиции сверла (глубина опускания сверла - ZH{значение}) и заносим его в переменную zh;

5. Ожидаем строку с командой DRL1 (старт сверления) и передаем управление в цикл сверления;

6. Ожидаем строку с командой DRL0 (конец сверления) и передаем управление в основной цикл программы, предварительно инициализировав станок ЧПУ, если нет такой строки, то выполняем далее;

7. Ожидаем строку с координатами в формате “{значение_X},{значение_Y}” и заносим их в соответствующие переменные. Переводим сверло в указанную позицию, ось Z в позиции zn, затем включаем электродвигатель сверла, опускаем сверло до позиции zh, и снова пункт 6;

При тестировании данного алгоритма не удалось добиться таких же результатов как в симуляторе на контроллере. После многих попыток изменения кода программы удалось добиться правильной работы на «реальном» устройстве, но пришлось пожертвовать правильными результатами в симуляторе. Это обусловлено несоответствием анализа конца строки симулятора и рабочего приложения с контроллером. В конечном результате удалось добиться успеха и произвести сверление пробных отверстий. При тестировании операции сверления было обнаружено, что точность станка не соответствует требуемой. После проведения серии тестирований, было установлено, что за один шаг шагового двигателя шпиндель станка ЧПУ проходит расстояние в 1,6 мм. Это значит, что невозможно будет сверлить отверстия для промышленных микросхем, так как не позволит существующая точность. Было решено увеличить точность позиционирования шпинделя станка. Для этого нужно увеличить передаточное число от ШД к кареткам. Для этого, были заменены существующие шестерни на соответствующие большего диаметра. Заменив шестерни быстрым монтажом сверху существующих и при помощи клея, а также удаления ШД от шестерни, как показано на рис. 2.5.1, были проведены еще несколько операций сверления.

 

Рис. 2.5.1. – увеличение передаточного числа от ШД к кареткам.

После модернизации станка вновь не удалось добиться желаемой точности. Теперь за один шаг ШД шпиндель станка ЧПУ перемещается на расстояние 0.8 мм. Это не то чего хотелось, но было решено оставить все так, как есть.

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

При длительном тестировании было обнаружено, что иногда возникают ошибки сверления. Это обуславливается различными факторами, такими как помехозащищенность, отказ программных средств и различные неблагоприятные факторы. Для избегания данной проблемы было решено организовать систему контроля сверлимых отверстий и возможность контроля ошибочных операций с последующим исправлением ошибок. Была написана процедура, организующая все необходимые функции контроля целостности операций, а также все необходимые доработки. Главные параметры для анализа целостности берутся из контроллера из данных, которые поступают на ПК после каждой завершенной операции перемещения каретки. В этих данных содержится информация о текущей позиции шпинделя станка ЧПУ. То есть в ответ мы должны получить ту же строку, которую отправили, и если строки различны, значит «ошибка», и добавляем данную строку в список ошибок для последующего исправления. Этим нам удалось добиться безошибочного сверления отверстий. Далее задумано развитие данного пункта. Но пока оставим это на будущее развитие.

 

Ручной режим

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

Описание используемых команд приведено ниже.

Команда Описание
G02 Команда на вызов процедуры ручного управления
DRL1 Старт процедуры
X10 Позиция каретки по оси X
Y15 Позиция каретки по оси Y
Z32 Позиция каретки по оси Z
SLEEP5 Время задержки между импульсами фаз (глобальная скорость)
RM1 Выбор режима половинного шага – полного шагового
DRL0 Конец процедуры
DR1 Включение (1) выключение (0) двигателя сверла

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

После тестирования данного режима на реальном устройстве, было обнаружено, позиционирование станка не всегда выполняется в соответствии с управлением в приложении. Так как обработчик событий изменения параметров отправляет данные только при изменении данных на форме приложения. А отправка пакета данных происходит только после получения подтверждения предыдущей операции. На выполнение операции, например перемещение каретки на определенное количество шагов, необходимо определенное время, и из-за этого пропускаются определенные пакеты данных. Для исправления данной ошибки было решено использовать либо очередь, что не совсем эффективно, либо организовать в C++ Builder  таймер, в котором будет проводиться проверка соответствия данных на ПК и текущей позицией станка ЧПУ.

 

Выжигание

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

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

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

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

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

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

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

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

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

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

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

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

1. Ожидание команды на выжигание;

2. Получение необходимых параметров для выполнения операции;

3. Ожидание команды на начало получения блока данных о точках;

4. Получение данных о координатах точки для выжигания;

5. Перемещение «выжигателя» в указанную точку;

6. Опускание выжигателя на указанную высоту для выжигания;

7. Временная задержка на поверхности материала на выжигание;

8. Поднимание выжигателя на начальную (указанную) высоту;

9. Если не пришла команда конца блока данных, выполнение с 4 шага;

10.  Конец операции, инициализация станка.

Дата: 2019-12-22, просмотров: 234.