2 - Специальный раздел (Конвертор для повышения эффективности перепрограммирования станков с ЧПУ)
Описание файла
Файл "2 - Специальный раздел" внутри архива находится в папке "Конвертор для повышения эффективности перепрограммирования станков с ЧПУ". Документ из архива "Конвертор для повышения эффективности перепрограммирования станков с ЧПУ", который расположен в категории "". Всё это находится в предмете "дипломы и вкр" из 12 семестр (4 семестр магистратуры), которые можно найти в файловом архиве МПУ. Не смотря на прямую связь этого архива с МПУ, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "дипломы" в общих файлах.
Онлайн просмотр документа "2 - Специальный раздел"
Текст из документа "2 - Специальный раздел"
2 СПЕЦИАЛЬНЫЙ РАЗДЕЛ
2.1 Разработка структуры программы
Транслятор по существу это компилятор, который осуществляет перевод программы с одного немашинного и необъектного языка на другой немашинный и необъектный язык. Если рассматривать ситуацию, когда реализуется перевод только с одного языка на один другой, то процесс такого преобразования состоит из двух этапов – анализа и синтеза.
На этапе анализа выполняется распознавание текста исходной программы. Создание и заполнение таблиц идентификаторов. Результатом его работы является внутреннее представление программы, понятное транслятору.
На этапе синтеза на основании внутреннего представления программы и информации, содержащейся в таблице идентификаторов, порождается текст результирующе программы.
Кроме того, в составе конвертора присутствует часть, ответственная за анализ и исправление ошибок, которая должна при наличии ошибки в тексте исходной программы максимально полно информировать пользователя о типе ошибки и месте ее возникновения. В лучшем случае конвертор должен предложить пользователю вариант исправления ошибки.
С учетом этого конвертор с одного языка на один другой имеет обобщенную структурную схему, изображенную на рисунке 2.1.
С точки зрения теории формальных языком конвертор выполняет две основные функции:
- функцию распознавателя для языка исходной программы;
- функцию генератора для результирующей программы.
Распознаватель должен получить на вход цепочку символов входного зыка. Проверить ее принадлежность языку и выявить правила, по которым эта цепочка была построена. Генератором цепочек входного языка является пользователь – автор входной программы.
Таблица идентификаторов
Исходная программа
Блок анализа
Блок внутреннего представления
Блок синтеза
Результирующая программа
Блок анализа и локализации ошибок
Сообщение об ошибке
Рисунок 2.1 - Обобщенная структурная схема конвертора (один канал)
Генератор языка результирующей программы должен построить на выходе цепочку выходного языка по его правилам. Распознавателем этой цепочки является устройство формирования управляющей программы для ЧПУ.
В соответствии с теорией построения компиляторов блок анализа решает три задачи:
- лексический анализ;
- синтаксический разбор;
- семантический анализ.
Вместе с тем, программирование для станков с ЧПУ имеет ряд существенных особенностей, в первую очередь связанных с необходимостью выполнения различных математических преобразований.
2.2 Разработка математического обеспечения
Машинная арифметика основывается на декартовой системе координат, где X, Y, Z – основные программные координаты, I, J, K – дополнительные (при расчёте круговой интерполяции и заходов на эквидистанту обрабатываемого контура). Координата A – поворотное устройство. Расположение основных осей координат в станках с ЧПУ представлено на рисунке 2.2.
Рисунок 2.2 - Расположение осей координат в станках с ЧПУ (а); правосторонняя система координат (б)
Математический переход из системы ПК в систему Маяк осуществляется по следующей методике, которая показана на примере расчёта радиусов по G2, G3 (круговой интерполяции).
Эта задача предназначена для пересчёта круговой интерполяции и заходов на эквидистанту контура детали.
Алгоритм расчёта радиусов основан на расстоянии удаления точки центра радиуса от начальной точки радиуса (в относительной системе исчисления) и от ноля детали до центра радиуса (в абсолютной системе исчисления).
На рисунке 2.3 изображен эскиз обрабатываемой детали (контура).
Рисунок 2.3 - Эскиз обрабатываемой детали (контура)
Линии a и b отображают разницу расчётов радиусов при программировании в системах ВМ и Маяк.
Линия со стрелкой a - система Маяк (абсолютная система).
Линия со стрелкой b - система ВМ (относительная система).
Формула пересчёта радиусов.
I – значение I координаты в обрабатываемом кадре.
J – значение J координаты в обрабатываемом кадре.
X_pred – значение координаты X в предыдущем кадре.
Y_pred – значение координаты Y в предыдущем кадре.
I = X_pred + I;
J = Y_pred + J
Результаты преобразования приведены в таблице 2.1.
Таблица 2.1 - Результаты преобразования
Входные данные (Маяк) | Выходные данные (ВМ) |
N1 G0 X0 Y0 N1 X10 Y10 F100 N1 G42 D30 X17.59 Y18.83 N1 G1 X47.59 N1 G3 X47.59 Y40.83 I0 J11 N1 G1 X17.59 | N1G0X0Y0 N2X10.Y10.F100 N3G42D30X17.59Y18.83I30.J0 N4G1X47.59 N5G3X47.59Y40.83I47.59J29.83 N6G1X17.59 |
Из таблицы 2.1 следует, что нумерация кадров в обработанной программе восстановилась, лишние пробелы удалены.
В кадре N2 расставлены пропущенные точки (таков синтаксис программы обработки для станков с ЧПУ).
В кадре N3 рассчитаны и добавлены недостающие координаты захода.
В кадре N5 пересчитаны координаты I и J в соответствии с заданным методом обработки.
Эскиз линейных заходов на эквидистанту контура детали по G41 G42 представлен на рисунке 2.4.
Рисунок 2.4 - Эскиз линейных заходов на эквидистанту контура детали по G41 G42
Точка захода находится на линейном участке контура.
В данном случае вычисление производится по формуле:
I = X_sled – X_nast;
J = Y_sled – Y_nast,
где I – значение I координаты в обрабатываемом кадре.
J – значение J координаты в обрабатываемом кадре.
X_sled – значение Х в следующем кадре.
X_nast – значение Х в настоящем кадре.
Y_sled - значение Y в следующем кадре.
Y_nast – значение Y в настоящем кадре.
Результаты преобразования приведены в таблице 2.2.
Таблица 2.2 - Результаты преобразования
Входные данные (Маяк) | Выходные данные (ВМ) |
N1G0X0Y0 N2X40Y10 N3G42D30X47.59Y18.83 N4G3X47.59Y40.83I0J11 N1X17.59 N1Y18.83 N1X47.59 | N1G0X0Y0 N2X40.Y10. N3G42D30X47.59Y18.83I29.83J47.59 N4G3X47.59Y40.83I47.59J29.83 N5X17.59 N6Y18.83 N7X47.59 |
Из таблицы 2.2 следует, что изменению подверглись кадры №2, 3, 4.
Эскиз заходов по радиусу на эквидистанту контура детали по G41 G42 изображен на рисунке 2.5
Рисунок 2.5 - Эскиз заходов по радиусу на эквидистанту контура детали по G41 G42
Расчёт захода на радиус несколько отличается от захода на линейный размер. Здесь важную роль играет вектор направления в зависимости от четверти, на которую направлен вектор на рисунке 2.6.
Рисунок 2.6 – Выбор вектора направления в зависимости от четверти
Расчет осуществляется в соответствии с логическими условиями.
Сначала рассчитывается значение (I и J) из следующего кадра.
Логическое решение задачи.
Если G3, то проверяется значение заданных координат:
Если I_sled > 0 и J_sled >= 0, то I = 1, J = -1;
Если I_sled < 0 и J_sled <= 0, то I = -1, J = 1;
Если I_sled < 0 и J_sled >= 0, то I = 1, J = 1;
Если I_sled > 0 и J_sled <= 0, то I = -1, J = -1
Если G2, то проверяется значение заданных координат:
Если I_sled > 0 и J_sled >= 0, то I = -1, J = 1;
Если I_sled < 0 и J_sled <= 0, то I = 1, J = -1;
Если I_sled < 0 и J_sled >= 0, то I = -1, J = -1;
Если I_sled > 0 и J_sled <= 0, то I = 1, J = 1,
где J_nast – значение J в обрабатываемом кадре;
J_sled – значение J в следующем кадре.
I_nast – значение I в настоящем кадре.
I_sled – значение I в следующем кадре.
Y_nast – значение Y в настоящем кадре.
X_nast – значение X в настоящем кадре.
I и J – служат для определения знака в выражении.
Расчет производится по формулам:
I_nast = Y_nast + J_sled
J_nast = X_nast + I_sled
с учетом условий:
если I = -1 и J > 0, то J_nast:= -J_nast;
если I = 1 и J < 0, то J_nast:= -J_nast;
если J = -1 и I > 0, то I_nast:= -I_nast;
если J = 1 и I < 0, то I_nast:= -I_nast.
2.3 Разработка алгоритмического обеспечения
2.3.1 Разработка обобщенного алгоритма программы конвертирования
Схема обобщенного алгоритма программы-конвертера приведена на листе 39.
2.3.2 Разработка алгоритма метода выбора обработки
Алгоритм описывает метод выбора обработки пользователем в зависимости от назначения конечного результата. В алгоритме используется графическая оболочка метода выбора обработки. В результате реализации алгоритма программа настраивается для обработки заданным методом.
Алгоритм выполняется по шагам.
1. Если Form2.PC_MAYAK.Checked, то переход к п. 2.
2. pc_mayak(bufer).
3. Если Form2.PC_VM.Checked, то переход к п. 4.
4. pc_vm(bufer).
5. Если Form2.VM_MAYAK.Checked, то переход к п. 6.
. vm_mayak(bufer).
7. Если Form2.MAYAK_VM.Checked, то переход к п.8.
8. mayak_vm(bufer).
9. Bufer:= ''.
10. Inc(m).
11. конец.
Условные обозначения, используемые в описании алгоритма, приведены в таблице 2.3.
Таблица 2.3 - Условные обозначения
Обозначение | Расшифровка |
bufer | Строка значение процедуры |
pc_mayak(bufer); | Процедура пересчёта заданным методом |
pc_vm(bufer); | Процедура пересчёта заданным методом |
vm_mayak(bufer); | Процедура пересчёта заданным методом |
mayak_vm(bufer); | Процедура пересчёта заданным методом |
Form2.MAYAK_VM.Checked | Свойства переключателя |
Bufer | Переменная хранения строки |
Inc() | Функция увеличения |
Схема алгоритма модуля выбора метода обработки изображена на листе 40.
2.3.3 Разработка алгоритма выбора вспомогательных методов обработки
Алгоритм описывает дополнительные (вспомогательные) методы выбора обработки данных. В результате выбора подключаются дополнительные возможности (удаление пробелов, пустых строк и последовательная нумерация кадров). В алгоритме используется графическая оболочка метода выбора обработки. В результате реализации алгоритма программа настраивается для обработки дополнительными методами.
Алгоритм выполняется по шагам.
1. Если Form1.Probel.Checked, переходим к п. 2.
2. DelProbel(bufer).