Разработка системы автоматического управления трехкоординатным станком для производства печатных плат
Написание программы управления координатным устройством, которое будет работать при поступлении команд от ПК. Структура файла сверления для программы ACCEL EDA. Разработка алгоритмов работы с этим файлом (открытие, сортировка координат отверстий).
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 23.05.2017 |
Размер файла | 1,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Для дальнейшей сортировки понадобилось определить класс TZone. Массив координат отверстий разбивается на “зоны” - массивы с одинаковыми координатами X. В дальнейшем в каждую зону могут присоединяться соседние зоны, если данное присоединение будет считаться более рациональным (более коротким) при обходе.
Поля класса TZone:
р - “начало зоны”(номер первой зоны в объединенной зоне). Зоны нумеруются с нуля;
1 - “длина зоны”(количество отверстий в зоне);
zone - “значение зоны”(координата первой точки по X);
d - диаметр отверстий в зоне;
парг - направление обхода зоны(по возрастанию или убыванию Y).
На следующем этапе производится заполнение массива значениями.
Причем четные зоны заполняются по возрастающему значению координаты Y для каждой X, а нечетные - по убывающему Y. Здесь же вычисляются и заполняются все поля класса TZone. На следующем этапе алгоритма производится сравнение длины обхода двух соседних зон с длиной обхода одной, объединенной из этих же двух зон, и отсортированной методом перестановок.
В случае если длина обхода объединенной зоны короче, то зоны в дальнейшем считаются одной. Данный алгоритм, скорее всего не является самым рациональным, но он вполне соответствует своему предназначению.
При отладке программы сортировки координат отверстий был применён пошаговый режим работы программы с использованием промежуточной печати для наблюдения результатов.
Функция Optimize() (оптимизации пути прохода) предназначена для оптимизации пути прохода рабочего инструмента через все координаты отверстий. Первоначально был создан файл программой ACCEL EDA и преобразован в понятный формат для координатного устройства с помощью файла N/C Drill, он же передан для обработки в программу сортировки координат отверстий. Неоптимизированный путь прохода инструмента представлен на рисунке 3.5.
На первом этапе “методом пузырька” сортируются все координаты dots. Результат оптимизации этим методом показан на рисунке 3.6.
Рисунок 3.6. Оптимизация прохода методом “пузырька”.
Затем координаты разбиваются на зоны Zone[ i ]. Все поля зоны обнуляются. Поле “парг” устанавливается в false. После этого все поля массива зон заполняются значениями. Каждая четная зона сортируется “методом пузырька” по возрастанию, а нечетная по убыванию. Результат сортировки показан на рисунке 3.7.
Рисунок 3.7. Оптимизация прохода методом “пузырька” с изменением направления перемещения по оси Y.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Затем производится сравнение длины пути прохода через две соседние зоны с путем прохода через одну объединенную зону. В случае если проход через объединенную зону окажется более коротким, зоны объединяются, и сортируются пузырьком по убыванию или по возрастанию, в зависимости от направления обхода.
Окончательный результат сортировки показан на рисунке 3.8.
Рисунок 3.8. Окончательно оптимизированный проход рабочего инструмента.
3.5.3 Пересылка команд в координатное устройство
Упрощенный алгоритм пересылки команд в станок приведен на рисунке 3.9.
Пересылка команд сверления выполняется в отдельном потоке (TDrillThread) и синхронизируется с помощью события DrillEvent.
Алгоритм контролирует следующие команды:
1. включен ли двигатель перемещения инструмента,
2. не остановлен ли процесс сверления.
Для каждой координаты dots[i] в цикле позиционируется инструмент, и производится сверление.
После пересылки команды в станок, событие DrillEvent сбрасывается в несигнальное состояние и производится ожидание его установки в сигнальное состояние. Событие DrillEvent устанавливается в сигнальное состояние после подтверждения выполнения команды от станка.
Для пересылки команд в координатное устройство используется компонента TSerial. Для синхронизации работы между разными блоками программы, во время создания формы создается событие DrillEvent, и создается поток TDrillThread. Событие DrillEvent выставляется в сигнальное состояние если через компоненту TSerial принимается команда подтверждения выполнения (“ОК”). После того, как через TSerial станку передается какая-либо команда, событие DrillEvent сбрасывается в несигнальное состояние.
Для передачи команд в координатное устройство введены флаги состояния:
- flagpause - флаг паузы (true, если вызвана пауза, устанавливается при нажатии на кнопку “Pause”). Пауза необходима для прерывания процесса сверления (для замены рабочего инструмента и др.;
- flagstop - флаг завершения (true, если вызвано завершение процесса сверления, устанавливается при нажатии на кнопку “Stop”);
- flagexe - флаг процесса сверловки (true, если процесс запущен, устанавливается при нажатии кнопки “Start”);
- flagmotor - флаг включенного двигателя дрели.
Поток TDrillThread передает команду через TSerial и выставляет DrillEvent в несигнальное состояние, а затем ожидает, когда станок через TSerial подтвердит выполнение команды, а обработчик события TTrigerAvail установит DrillEvent в сигнальное состояние.
Процесс продолжается, пока не будут пройдены все элементы массива, или не будет нажата одна из кнопок (“Pause” или “Stop”). В случае если произошло нажатие, выполнение потока приостанавливается или прерывается.
Кнопка “Pause” инвертирует флаг. В случае вторичного нажатия процесс будет продолжен. Кнопка “Stop” останавливает процесс сверления.
Чтобы начать сверление снова или с текущего отверстия, необходимо нажать кнопку “Start”. Номер текущего отверстия вводится в поле Editl.
Для предотвращения ввода в поле Edit символов, отличных от целого типа значений, в обработчик событий Editl KeyPress вставлена конструкция, которая подменяет все символы, кроме цифр, нулевым символом, который не занесется в текст окна Edit.
3.5.4 Ручное управления координанным устроством
Терминал последовательного порта используется для передачи команд координатному устройству в ручном режиме (рисунок 3.10). На окне терминала размещены три компоненты: Memol, Мешо2, МешоЗ, являющимися объектами класса ТМето.
В поле Memol вводимые пользователем символы с помощью компоненты TSerial передаются в координатно-сверлильный станок.
В поле Мето2 отображаются символы, передаваемые координатносверлильным станком.
В поле МешоЗ расположена подсказка по командам координатносверлильного станка.
Рис. 3.10 Окно терминала для передачи команд координатному устройству в ручном режиме.
3.6 Описание интерфейса пользователя
Программный интерфейс был разработан с учетом всех его эксплуатационных характеристик. Он должен отвечать следующим требованиям:
- полнота и краткость отображаемой информации;
- удобное расположение информации на экране;
- оперативность работы.
Интерфейс программного обеспечения был построен по иерархической структуре.
Вся программа построена на основе типизированных меню, которые позволят легко и интуитивно работать, и не потребуют дополнительного времени на изучение интерфейса программы.
Структурная схема меню приведена на рисунке 3.11.
Интерфейс представляет собой окно с расположенными на нем меню работы с файлами и настройки станка, графическим окном для отображения процесса сверления, текстовые поля для отображения координат отверстий, диаметров и таблиц сверл, кнопок управления станком.
Пользователь открывает файл (6Рисунок 3.14 Окно инициализации координатного устройства.
При вызове окна инициализации станка включается микродрель. Это сделано для того, чтобы можно было произвести пробное сверление отверстия и при этом настроить глубину опускания сверла. Нажатие на кнопки вверх или вниз рядом с полем “Максимальный Z” приводит к поднятию или опусканию рабочего инструмента. Таким образом можно настроить станок для инструмента любой длины..ncd) с помощью выбора из меню “Файл -
> Открыть”.
При этом в случае успешного открытия файла, в графическое окно выводится изображение карты сверления (Рисунок 3.12).
Все отверстия представлены окружностями (первоначально красного цвета - не высверленные).
С помощью меню “Настройки -> инициализация” вызывается окно настройки максимальных координат перемещения (X, Y, Z) (рисунок 4.4).
Ввести значение в поле “Максимальный Z” невозможно, потому, что для этого поля установлено свойство “read only”. Поле синхронизировано с положением инструмента.
При нажатии на кнопку ”ОК” станок инициализируется максимальными значениями координат и рабочий инструмент выставляется в начальное положение (X=0,Y=0,Z=0).
Выбор меню “Инструменты -> терминал” вызывает окно терминала последовательного порта, с помощью которого можно передавать команды в координатно-сверлильный станок в “ручном режиме”. В верхнем окне вводятся команды, в нижнем отображаются ответы, переданные станком.
В правом нижнем углу окна приложения расположены три кнопки управления станком (“Play”,''Pause”,''Stop”). Кнопка “Play” запускает процесс сверления,''Pause” - приостанавливает (для возможной замены сверла), a “Stop” завершает процесс сверления. Здесь же выводятся координаты и номер текущего отверстия.
В правом верхнем углу окна выводятся: система измерения, количество отверстий и диаметры сверл (см. рисунок 3.12).
При эксплуатации координатно-сверлильного станка необходимо выполнить следующие действия:
- подсоединить интерфейсный провод к координатно-сверлильному станку и последовательному порту персонального компьютера (оба должны быть выключены);
- включить питание ПЭВМ;
- включить питание координатно-сверлильного станка;
- загрузить программу управления координатно-сверлильным станком;
- выполнить при необходимости настройку последовательного порта ПЭВМ;
- выполнить настройку координатно-сверлильного станка;
- открыть файл сверления (*.ncd).
- выполнить при необходимости сортировку координат отверстий;
- запустить процесс сверления, нажав на кнопку “Start”;
- следовать инструкциям, которые выводятся на экран (установка и смена сверл);
- в случае необходимости в процессе сверления (для замены рабочего инструмента) нажать на кнопку ''Pause”, и заменить инструмент. При этом в поле “Отверстие” сохранится номер текущего отверстия. Далее, при повторном нажатии кнопки “Pause” будет продолжено сверление с этого номера отверстия;
- в случае необходимости завершить процесс сверления нажать на кнопку “Stop”. При этом сверление остановится полностью и при следующем нажатии на кнопку “Start” сверление начнется с первого отверстия;
3.7 Результаты тестирования разработанных програм
Программа создается в среде визуального программирования приложений C++Builder версии 5.0. На главной форме приложения (рисунок 3.15) размещены следующие компоненты:
- главное меню MainMenu 1;
- панель общего назначения Panel 1 (для размещения динамически созданного массива объектов Lable, которые содержат информацию о системе измерения, количестве отверстий на плате и диаметрах используемых сверл);
- панель общего назначения Рапе12 и окно для рисования PaintBoxl, размещенное на этой панели;
- панель общего назначения Рапе13, содержащая кнопки управления BitBtnl-З, окно редактирования Editl, предназначенное для ввода- вывода информации о текущем высверливаемом отверстии и две метки Label - для вывода информации о координатах текущего отверстия;
- не визуальная компонента диалога открытия файла OpenDialogl;
- не визуальная компонента последовательного порта TSerial 1.
Рисунок 3.15 Главная форма приложения.
Текст основного цикла программы приведен в Приложении 1 (файлы drillmain.cpp, drillmain.h).
В приложении 2, приведен текст файлов point.срр, point.h. Здесь описан класс TDot, его методы и функции.
В приложении 3 приведен текст файлов init.cpp, init.h (настройки координатного устроства).
В приложении 4 приведен текст файлов terminal.срр, terminal.h (терминал последовательного порта для ручного управления координатным устройством).
Программа реализована на ПК IBM PC Pentium - 166 с объемом ОЗУ 32МВ. Разрешающая способность монитора 1024x768.
Осуществлена отладка программного интерфейса совместно с программой контроллера станка.
Для проверки алгоритма оптимизации использована следующая методика:
- в окне приложения была размещена кнопка “Путь”, при нажатии на которую, производится подсчет длины прохода рабочего инструмента через все координаты отверстий и выводится результирующий путь в миллиметрах.
- сравниваются два пути - неоптимизированный (рисунок 3.16) и оптимизированный (Рисунок 4.7.).
Рисунок 3.16 Неоптимизированный проход рабочего инструмента.
Из приведенных выше рисунков видно, что выигрыш после оптимизации составляет около 27%. Таким же способом был проведен анализ пути прохода рисунка печатной платы, который показан на рисунках 3.5 - 3.8. Причем длина прохода неоптимизированной платы составила 5123.472 мм. При оптимизации пузырьком (см. рисунок 3.6.) длина составила 5628.77 мм.
При оптимизации методом пузырька с изменением направления длина составила 4717.304 мм. Здесь видно, что оптимизация уже уменьшила результирующий путь примерно на 8%. После окончательного прохода оптимизации путь сократился до 3134.347, что составляет 38%. Также для проверки были использованы другие платы. Сокращение пути составляло от 20% до 40%. В дальнейшем была выполнена проверка на совпадение с фотошаблоном высверленных на координатном устройстве рисунков печатной платы. В ходе отладки программного обеспечения экспериментальным путем были выявлены минимальные требования к аппаратной части компьютера:
IBM совместимый компьютер; процессор Pentium; объем оперативной памяти 32МВ; видеоадаптер SVGA; операционная система Windows 95, Windows 98; наличие свободного последовательного порта в ПК (RS-232).
Размещено на Allbest.ru
...Подобные документы
Выбор режимов адресации, посредством которых будет осуществлен доступ к данным. Этапы создания программы. Характеристика таблицы символов и полученного файла листинга. Анализ изменения состояния регистра IP при выполнении команд JMP, Jcc, LOOPx.
курсовая работа [4,9 M], добавлен 25.03.2012Изучение и разработка алгоритмов сверления. Выбор языка и среды программирования. Исследование структуры системы компьютерного моделирования. Ввод данных о материале инструмента и детали, методе обработки. Визуальная проверка и корректировка данных.
отчет по практике [295,9 K], добавлен 22.05.2013Разработка принципиальной схемы, выбор управляющего микроконтроллера. Общий алгоритм работы программы. Блок анализа и реализации команд, принятых от персонального компьютера. Описание используемых интерфейсов. Формат данных RS-232C, листинг программы.
курсовая работа [1,2 M], добавлен 26.12.2012Базы данных для учета и контроля оборудования по производству печатных плат. Требования к системе, анализ предметной области. Информационные потребности пользователя. Логическая структура программы, алгоритм ее работы. Руководство системного программиста.
курсовая работа [786,5 K], добавлен 24.02.2015Словесное описание алгоритма программы. Открытие файла процедурой Rewrite, его проверка на наличие ошибок при открытии. Особенности построения диаграммы. Листинг программы, ее тестирование и отладка. Выполнение процедуры CloseFile при закрытии файла.
контрольная работа [17,3 K], добавлен 11.06.2010Описание возможностей языка программирования Turbo Pascal. Написание программы создания файлов с прямым доступом, которая также будет обрабатывать наборы данных с определенными полями и ограничениями. Контрольный пример работы поисковой программы.
курсовая работа [563,6 K], добавлен 22.01.2016Создание средств представления процессов и механизмов управления на уровне диспетчеризации, разработка алгоритма и написание программы, имитирующую работу простейшей операционной системы. Формирование дескриптора, ввод информации, интерфейс программы.
лабораторная работа [1,1 M], добавлен 09.07.2010Размещение элементов графического интерфейса, обработка событий в нем. Написание программы "Домино", результатом работы которой будет графический интерфейс, реализующий одноименную настольную игру. Объектная декомпозиция классов. Текст программы.
курсовая работа [404,3 K], добавлен 13.10.2014Разработка программы вычисления выражения y = (x+10)5. Ход работы, структурная схема алгоритма. Окна основных обозревателей системы, текстовый редактор. Интерфейс модели ЭВМ, методы ввода и отладки программы, действия основных классов команд, адресация.
лабораторная работа [523,4 K], добавлен 28.12.2014Разработка шаблона для работы с двоичным файлом, в котором хранится структура данных (двоичное дерево объектов). Представление двоичного дерева в файле. Вставка объекта в дерево, его удаление. Алгоритм сжатия файла. Описание пользовательского интерфейса.
курсовая работа [1,1 M], добавлен 26.01.2013Специфика создания баз данных, в которой хранится информация о производственных ресурсах для производства печатных плат. Характеристика, использование и работа с DBDesigner 4.0.5.6, PostgreSQL. Особенности написания запросов к базам данных на языке SQL.
курсовая работа [147,9 K], добавлен 13.08.2012Разработка и тестирование программы класса Точка. Спецификация программы. Сценарий диалога с пользователем. Разработка структур данных и алгоритмов. Таблица параметров функций программы. Текст программы на языке C++. Особенности тестирования программы.
лабораторная работа [43,1 K], добавлен 21.07.2012Составление программы сортировки по возрастанию массив из 20 шестнадцатеричных чисел, просматривающей все исходные числа во внешней памяти и выбирающей самое большое число. Блок-схема алгоритма работы программы. Таблица команд и число их выполнения.
курсовая работа [23,1 K], добавлен 24.05.2015Разработка комплекса алгоритмов. Кодирование и компиляция. Тестирование, отладка, испытание и сдача программы. Минимальные системные требования для использования Delphi 7. Написание программы с использованием инструментального языка высокого уровня.
курсовая работа [2,7 M], добавлен 21.02.2011Написание программы для работы со списком документов, разработка функционала. Требования к аппаратному и программному обеспечению. Описание интерфейса пользователя. Структура программы и описание данных. Процедура тестирования и его результаты.
курсовая работа [1,5 M], добавлен 26.08.2012Представление о системе Arduino. Структура платформы Android. Выбор средств разработки. Разработка структур данных и алгоритмов. Характеристика Bluetooth модуля, блок реле, резисторов, диодов. Графический интерфейс приложения. Написание кода программы.
дипломная работа [4,0 M], добавлен 19.01.2017Компоновка роботизированного комплекса. Разработка циклограммы работы объектов. Построение релейно-контактной, логической бесконтактной схем по циклограмме и сети Петри. Выбор программируемого контроллера. Разработка и написание программы управления.
курсовая работа [922,9 K], добавлен 26.01.2012Разработка концептуальной модели базы данных. Реализация алгоритмов и разработка управляющей программы. Разработка структуры системы управления данными. Методика проведения и результаты тестирования. Функционирование разработанного программного модуля.
курсовая работа [550,5 K], добавлен 08.06.2023Разработка программы-модели в среде "Adamview" для имитации стратегии и наглядной иллюстрации работы программы. Настройка сети; описание эмулятора стратегии и экранных форм интерфейса оператора. Структурная схема распределённой системы управления.
курсовая работа [2,6 M], добавлен 21.01.2013Характеристика устройства и технологических данных промышленного робота СМ40Ц. Описание микропроцессорного комплекта серии U83-K1883, системы его команд, микросхемы К572ПВ4, функциональной, принципиальной схем и алгоритма работы программы управления.
курсовая работа [5,8 M], добавлен 02.06.2010