что такое g код для чпу станка

Описание G и M кодов для программирования ЧПУ (CNC) станков

На производстве, где работают различные станки с числовым программным управлением, используется множество различного программного обеспечения, но в большинстве случаев весь управляющий софт использует один и тот же управляющий код. Программное обеспечение для любительских станков, так же базируется на аналогичном коде. В обиходе его называют «G-код». В данном материале представлена общая информация по G-коду (G-code).

G-code это условное именование языка для программирования устройств с ЧПУ (CNC) (Числовое программное управление). Был создан компанией Electronic Industries Alliance в начале 1960-х. Финальная доработка была одобрена в феврале 1980-о года как RS274D стандарт. Комитет ИСО утвердил G-code, как стандарт ISO 6983-1:1982, Госкомитет по стандартам СССР — как ГОСТ 20999-83. В советской технической литературе G-code обозначается, как код ИСО-7 бит.

Производители систем управления используют G-code в качестве базового подмножества языка программирования, расширяя его по своему усмотрению.

Программа, написанная с использованием G-code, имеет жесткую структуру. Все команды управления объединяются в кадры — группы, состоящие из одной или более команд. Кадр завершается символом перевода строки (ПС/LF) и имеет номер, за исключеним первого кадра программы. Первый кадр содержит только один символ» %». Завершается программа командой M02 или M30.

Основные (в стандарте называются подготовительными) команды языка начинаются с буквы G:

Сводная таблица кодов:

Подготовительные (основные) команды / КодыОписание
G00-G04Позиционирование инструмента
G17-G19Переключение рабочих плоскостей (XY, XZ, YZ)
G20-G21Не стандаризовано
G40-G44Компенсация размера различных частей инструмента (длина, диаметр)
G53-G59Переключение систем координат
G80-G84Циклы сверления, нарезания резьбы
G90-G92Переключение систем координат (абсолютная, относительная)

Таблица основных команд:

Таблица технологических кодов:

Технологические команды языка начинаются с буквы М. Включают такие действия, как:

Источник

Что такое G-код для станков с ЧПУ

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

Для станков с программным числовым управлением существует специальный язык. Этот язык называют ISO 7 bit. Система G кодов для ЧПУ представляет собой специальные команды для работы фрезерных и токарных станков с ПУ, в командах задаются специальные параметры. Обучение ЧПУ программированию производится в технических колледжах или на курсах дополнительного образования.

Что такое G-код

Кодовая система для токарно – фрезерных станков с ЧПУ представляет собой особую группу команд, которые распознаются станками с функциями программного управления. Кодовая система была разработана компанией Electronic Industries Allience в 1960 году и доработана в 1980 году. С 1982 года она начала действовать в России. Кодовый язык входит в структуру основ программирования, он непрерывно совершенствуется и изменяется.

Какие бывают G-коды

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

Команды группы G называют подготовительными. Они задают движение рабочих элементов на станке с определенной скоростью. Скорость может быть круговой или линейной. Также G-код используется для обработки отверстий и резьбы. Еще одной функцией является управление параметрами и координатными системами аппаратуры.

Основные команды программы направлены на выполнение следующих функций:

что такое g код для чпу станка. Смотреть фото что такое g код для чпу станка. Смотреть картинку что такое g код для чпу станка. Картинка про что такое g код для чпу станка. Фото что такое g код для чпу станка

Символы бывают разными: М выполняет вспомогательные функции, такая команда необходима для смены инструмента, вызова подпрограммы и ее завершения, S – это функция основного движения, F – подача, Т, D, Н являются выражением функций инструмента.

Значение символа зависит от вида станка с ЧПУ. Программирование осуществляется на основе этих кодов.

Подготовительные функции

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

Расшифровка основных G кодов для ЧПУ

Перейдем к рассмотрению того, как расшифровываются основные G коды для станков с ПУ.

Задает скоростное позиционирование. Ее используют, когда нужно быстро переместить режущий инструмент в готовое состояние для начала работы или поместить его в безопасную позицию. Ускоренный вариант не применяют в процессе обработки деталей, поскольку скорость, которая развивается в данном случае, очень высока. Данную команду можно отменить с помощью команды G01, G02, G03.

Представляет собой линейную интерполяцию. Такая команда необходима для движения инструмента по прямой, скорость задается символом F. Отмена функции осуществляется кодами G00, G02, G03. Пример записи команды: G01 X20 Y150 F60.

Задает движение по часовой стрелке, режущий инструмент начинает двигаться по дугообразной траектории, скорость задается символом F. Также задаются параметры в координатной плоскости. Символы I, J, K – определяющие координаты дуги в плоскости. Отмена осуществляется кодами G00, G01, G03.

что такое g код для чпу станка. Смотреть фото что такое g код для чпу станка. Смотреть картинку что такое g код для чпу станка. Картинка про что такое g код для чпу станка. Фото что такое g код для чпу станка

Это движение против часовой стрелки по дуге с заданной скоростью.

Задают перерыв в работе. продолжительность паузы задается Х или Р символом. Обычно пауза длится около одной секунды.

Задает плоскость. С помощью кода G17 выбирают координаты XY. Такая функция необходима для вращающихся движений и процесса сверления.

что такое g код для чпу станка. Смотреть фото что такое g код для чпу станка. Смотреть картинку что такое g код для чпу станка. Картинка про что такое g код для чпу станка. Фото что такое g код для чпу станка

Задает плоскость в координатах XZ, эта плоскость становится рабочей в процессе круговой интерполяции, вращательных движениях и процессе сверления.

Позволяет выбрать рабочую площадь в координатах YZ. Такая функция необходима для движения инструмента в круговой интерполяции и постоянном цикле сверления.

Позволяет вводить данные в дюймовых измерениях. Функция предназначена для работы с дюймовыми показателями.

Позволяет работать с метрическими показателями. Он необходим при работе с данными, выраженными в метрах.

Отменяет функцию автоматической коррекции на заданный радиус инструмента, задаваемого G41 и G42.

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

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

Необходим для компенсации длины инструмента, корректирует его положение и задается вместе с функцией инструмента Н.

Задает локальные координатные параметры помимо стандартных параметров.

что такое g код для чпу станка. Смотреть фото что такое g код для чпу станка. Смотреть картинку что такое g код для чпу станка. Картинка про что такое g код для чпу станка. Фото что такое g код для чпу станка

Позволяет переключаться на координатную систему рабочего станка.

G54 – G59

Осуществляют заданное смещение рабочего элемента относительно координатных параметров станка. Используя коды G54, G55, G56, G57, G58, G59 можно определить, в какой именно системе координат будет совершаться работа. Меняя коды, программист получает возможность обрабатывать разнообразные детали.

Если кодами G54 – G59 была задана какая-либо координатная система, то она будет действовать до тех пор, пока не будет отменена, и введутся другие параметры.

что такое g код для чпу станка. Смотреть фото что такое g код для чпу станка. Смотреть картинку что такое g код для чпу станка. Картинка про что такое g код для чпу станка. Фото что такое g код для чпу станка

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

Задается вращение координат, команда позволяет смещать координатную систему под определенным углом. Плоскость вращения, центр и угол поворота задается командами G17, G18, G19, R. Команда G69 отменяет эту функцию.

Позволяет делать отверстия в изделиях.

Это функция высокоскоростного сверления отверстий.

Используется для нарезания левой резьбы.

G81, G82, G83

Используются для цикла сверления: стандартного, с выдержкой и прерывистого.

G85 – G87

Позволяют осуществлять разные циклы растачивания.

Позволяет установить абсолютные накопители положения.

что такое g код для чпу станка. Смотреть фото что такое g код для чпу станка. Смотреть картинку что такое g код для чпу станка. Картинка про что такое g код для чпу станка. Фото что такое g код для чпу станка

Задает параметры оборотов, производимых за одну минуту.

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

Требования к написанию программы

Программы, которые пишут для станка с ЧПУ на основе использования джи кодов, имеют определенную совершенно четкую структуру, которая состоит из нескольких команд. Все команды для работы со станком объединяются по группам – кадрам. Завершение одного кадра отмечается символом CR/LF, программу заканчивает вспомогательный код М02 или М30.

Если к программе необходимо сделать комментарий, то его размещают в круглых скобках. К примеру, (перемещение к точке начала фрезерования). Комментарий может находиться сразу после кода, но можно также и вынести его в отдельную строку.

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

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

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

что такое g код для чпу станка. Смотреть фото что такое g код для чпу станка. Смотреть картинку что такое g код для чпу станка. Картинка про что такое g код для чпу станка. Фото что такое g код для чпу станка

Для создания кода необходимо иметь следующие знания:

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

что такое g код для чпу станка. Смотреть фото что такое g код для чпу станка. Смотреть картинку что такое g код для чпу станка. Картинка про что такое g код для чпу станка. Фото что такое g код для чпу станка

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

Источник

G-code, потерявшийся брат Assembler-а

Про язык управления промышленными CNC-станками и всевозможными любительскими устройствами вроде 3D-принтеров написано очень много статей, но почитать о том, какова идеология этого языка и как она связана с аппаратной реализацией — почти негде. Поскольку моя работа связана непосредственно с программированием станков и автоматизацией производства, я попробую заполнить этот пробел, а также объяснить, почему выбрал такой странный заголовок.

Пару слов о себе, и почему я вообще решил написать об этом. Мои рабочие обязанности заключаются, в том числе, в том, чтобы заставить любой имеющийся в компании станок с ЧПУ делать всё, что он вообще может физически. Компания — небольшая (единицы сотен сотрудников), но в арсенале — вертикальные фрезерные автоматы Haas трех разных поколений, горизонтальные фрезерные автоматы DMG Mori нескольких типов, лазерный резак Mitsubishi, токарные автоматы Citizen Cincom и куча всего еще. И весь этот зоопарк управляется программами на G-code. Изучая разные реализации этого языка, я понял, что то, что пишут в учебниках и книгах по нему — не всегда является правдой. В то же время, мне стали понятны многие аналогии между этим языком и Assembler-ом, который я изучал когда-то в институте, и на котором практически ничего серьезного никогда не написал.

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

Базовый синтаксис

Если вы хоть раз видели программу на G-code, то знаете, что это последовательность строк, которые состоят из буквенных кодов, за которыми следуют некие числа. Эти буквенные коды называются «адрес». Причина такого термина очень проста: в первых контроллерах станков программа выполнялась путем записи значений в ячейки памяти, которым были даны буквенные имена. Исполнительные устройства, в свою очередь, читали значения по этим адресам и делали то, что от них требуется. Когда мне приходится обучать операторов, я объясняю им, что контроллер, на самом деле, можно условно поделить на две части: ту, что отвечает за интерфейс с пользователем, и ту, что отвечает за работу механизмов. Они часто и физически разнесены по разным платам. А общение между ними происходит все еще через ограниченный набор этих самых ячеек памяти. Другой вопрос, что со временем, к именованным адресам, которые обозначаются буквами латинского алфавита, добавились еще численные адреса (начинающиеся с символа #), через которые осуществляется доступ к портам ввода-вывода, настройкам, специальным возможностям, и так далее.

Традиционно, когда описывают синтаксис G-code, говорят, что любая команда в программе начинается с буквы G для «подготовительных» кодов и M — для дополнительных, что номер строки начинается с буквы N, а номер программы или подпрограммы — с буквы O. Это, в принципе, правда, но не вся и не всегда.

Ветвление и циклы

Подпрограммы

Указатели, переменные, регистры

Хотя G- и M-коды контроллеров — довольно большая тема, переменные — еще более обширная и сложная история. Дело в том, что «железо» станков управляется огромным количеством переменных, напоминающих по принципу их работы регистры процессоров. Доступ к этим регистрам в каких-то случаях возможен по предопределенным буквенным именам, в каких-то — по номерам, в каких-то — по назначенным буквенно-цифровым именам. При этом, свойства, назначение и поведение этих переменных могут быть совершенно разными.

Если вы хоть раз видели программу на G-code для промышленного станка, вы, возможно, заметили, что в начале самой программы, а иногда — в начале каждого фрагмента или подпрограммы, отвечающей за один инструмент или один элемент детали, есть длинная строка кодов, которые вроде бы ничего не делают. Это так называемая safe line. Она нужна, потому что станок помнит свое состояние. Например, содержимое какого-то регистра может сохраняться даже после выключения и включения станка, потому абсолютно всегда имеет смысл в явном виде устанавливать желаемое состояние перед совершением каких-то операций. Это напоминает то, как в web-разработке используются Reset.css и Normalize.css. Иначе, это правило для программистов звучит как «никогда не предполагай, что станок находится в определенном состоянии, если ты его в это состояние не привел». Пренебрежение этим может стоить дорого, включая капитальный ремонт станка. При этом, наиболее надежной практикой считается именно приведение станка в искомое состояние, а не проверка, находится ли он в нем. Почему? Потому что приведение, как правило, делается одной безусловной командой, а проверка требует условного ветвления.

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

Приведение типов

Об обучении

Программированию станков с ЧПУ учат очень разными путями и с разными задачами. В одном случае, речь просто о том, чтобы научить пользоваться CAD/CAM, чтобы программист был в состоянии превратить модель (чертёж) в код, исполняемый на том или ином станке, изготавливающий деталь по модели. Это напоминает процесс обучения программированию «общего назначения» в ВУЗе, где вопросы исполнения кода, аппаратной архитектуры и написания кода на Ассемблере рассматриваются очень поверхностно. В других, заметно более редких случаях, процесс более всего напоминает обучение системному программированию, а примеры исполнения кода на конкретной архитектуре входят в него, как неотъемлемая часть. Поскольку я когда-то учился цифровой электронике, и программирование железа на низком уровне было частью этого, пусть и в довольно скромном объеме, второй вариант лично мне как-то ближе, и именно так я старался преподавать это сам, когда у меня была такая возможность.

Я вполне допускаю, что некоторые аналогии в статье могут показаться кому-то натянутыми, но я и не претендую на их точность. Речь, скорее, о сходстве «духа» упомянутых выше языков, о том, что опыт «ассемблерного мышления» может довольно сильно способствовать глубокому пониманию G-code, тогда как опыт программирования только на языках высокого уровня, отделенных от аппаратной реализации, может вызвать недоумение и даже некоторую неприязнь у того, у кого вдруг возникнет необходимость писать вручную для станков с ЧПУ.

Источник

Домашний ЧПУ-фрезер как альтернатива 3D принтеру, часть третья, ПО и G-code

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

ПО для работы можно разделить по уровню абстракции снизу вверх: прошивка драйверов двигателей, «стойка ПУ» или замещающий ее программно-аппаратный комплекс на базе ПК или МК, CAM — ПО, строящее траекторию движения инструмента и преобразующее ее в G-код, и CAD.

Наиболее низкоуровневое ПО — прошивка драйверов двигателей, которая преобразует сигналы шага и направления (step/dir) для шаговых двигателей либо скорость/направление для серводвигателей в значения напряжения и тока, подаваемые на обмотки двигателей; его мы не выбираем и не модифицируем, по крайней мере в обсуждаемом случае.

Следующий уровень — «стойка» — программно-аппаратный комплекс, преобразующий строки кода в сигналы для драйверов. Тут уже интересней, по крайней мере на этапе выбора станка (или выбора компонентов для самостроя) мы можем остановиться как на промышленных стойках начального уровня (GSK, Washing, бэушные старые сименсы и фануки), так и на сочетании интерфейсных плат (от банального LPT и опторазвязанной китайской красной платы до MESA) с ПО — LinuxCNC, Mach3, NCStudio и прочих. Лично у меня большой положительный опыт с LinuxCNC и NCStudio; несмотря на простоту и того и другого, с обработкой по готовому простому G-коду нотации ISO-7bit они справляются на ура. У промышленных стоек есть преимущество в гибкости настройки приводов и возможности подключения большого количества периферии, а так же возможность работать по расширенным G-кодам (циклам) и макропрограммам, но при нынешней доступности КАМ-систем и штучном производстве это не нужно.

Уровнем выше идут CAM (computer aided manufacture) программы — ПО для создания траекторий, описывающих прохождение инструмента в заготовке. И вот тут у нас начинается полный разброд и шатание. С одной стороны, бесплатного или условно-бесплатного CAMа мало. Чтобы не сказать вообще нет пристойного. Да, есть плагин для Inkscape, есть какие-то нестабильные чудеса пятилетней давности, есть триальный фьюжн, есть плагины для CADов… Кстати, по поводу совсем простых, на раскроечный роутер мы долго прикручивали G-CodeTools для Inkscape, но так и не смогли достичь приемлимых скоростей связки оператор-плагин. В результате купили CamBam+ за смешные по меркам рынка 150 долларов и наслаждаемся. А так — все из дешевого или бесплатного либо под совсем простые обработки, либо глюк на глюке и глюком погоняет. Мы перепробовали кучу всего в демках и ломаных версиях, в результате провели переговоры с жабой и финдиректором, и купили PowerMill — по отзывам и пережитым в процессе перебора эмоциям, пожалуй, оптимальным для небольшого производства инструменте. Уже позже на нас вышли замечательные товарищи из SprutCAM, дали демку, и мы с ужасом обнаружили, что переплатили примерно в 20 раз — почти все наши потребности закрываются вполне демократичным SprutCAM Mach3. Купили, конечно (типа про запас по подарочной цене), но потом нашли пару недостатков, так что используем исключительно ПМ.

Чуть не забыл: промежуточным этапом между g-code и CAM выступает постпроцессор — когда-то отдельная программа, а ныне встроенный модуль всякого пристойного CAMа. Это та самая штука, которая преобразует траекторию CAM в код конкретного станка. О постпроцессоре стоит знать только что он есть, и что у него есть описание, привязанное к конкретной нотации кода, воспринимаемой станком. Условно, некоторые станки просят нумерацию строк, некоторые — «;» в конце каждой строки, некоторые вообще русскими буквами команды принимают, ну и так далее. Для рассматриваемых станков (домашние фрезеры) вне зависимости от того, MACH3, LinuxCNC или NCStudio пойдет стандартный постпроцессор fanuc0i 3axis.

Ну и самый высокий уровень — CAD, он уже совсем далек от станка. Тут выбор почти бесконечен, и даже посвободней, чем в 3D-принтерах, благо фрезеровка идет до поверхности, и на входе CAM может быть не твердотельная модель, а граничная поверхность. Нормальные CAMы почти всеядны и с одинаковым удовольствием втягивают модели из чего попало — от 3DMAX до SolidWorks.

Несколько раз начинал я писать про g-code, но каждый раз забрасывал. С одной стороны, полный g-code неоднозначен, по крайней мере в части циклов: даже разные серии станков одного производителя могут трактовать g-коды разным образом, а в основных кодах все и так понятно. С другой — современная CAM-система позволяет оператору вообще не знать g-кода как класса, обходясь дерганьем мышкой по окошечкам компа. Но когда один из наших операторов (хороший кстати, ВО, опыт и все такое) не справился с задачей «сделать тестовую прогу, которая 1000 раз прогонит шпиндель вверх-вниз на 30 мм», я понял, что хотя бы общее понимание быть должно. Даже если не писать простые программки, то хотя бы чтобы разобрать и отдебажить что там нам постпроцессор написал.

Во-первых, стоит знать, что g-code идет кадрами, каждая строка — кадр. Код

даст переход по линии, соединяющей текущее местоположение и точку x10y20, а код

даст переход по ломаной — сначала в точку (текущее положение, x10), а потом уже в точку x10y20.

Кстати, на втором примере мы можем увидеть свойство модальности: мы можем не писать G1 в начале второй строки, ибо G1 — модален и стойка поймет кадр без кода как дублирующий код предыдущего. Если бы мы пытались пройти по дуге (G2/G3) и так же вторую часть перенесли бы на следующую строку — стойка бы интерпретировала эту строчку как новый кадр G1.

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

И расшифровка: G17 (работаем в плоскости XY) G21 (единицы — миллиметры) G40 (отмена компенсации длины инструмента) G49 (отмена компенсации радиуса инструмента) G54 (работа в первой системе координат) G80 (отмена ранее запущенных постоянных циклов) G90 (работа в абсолютной системе координат). После такой лошадиной дозы команд любой станок очищается от всех возможных грехов, оставшихся с предыдущих обработок, и готов к работе над вашим проектом. Даже если ваш станок не знает ничего про коррекции, не стесняйтесь — на фоне тела программы эти несколько байт сильно размера программе не добавят, станок чужеродные коды просто проигнорирует, зато точно все будет хорошо.

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

Разве что G54 — обозначение работы в первой системе координат. Дело в том, что почти любая стойка по умолчанию поддерживает машинную систему координат (с нулем на концевых датчиках, обычно в углу рабочего стола), и до 6 дополнительных систем координат, задаваемых пользователем. Зачем? Когда Вы работаете в CAM, Вы задаете произвольную нулевую точку — в верхнем левом ближнем углу (так правильней) или в центре заготовки, и вся траектория описывается от этой точки. Если бы станок умел работать только в машинной СК, приходилось бы либо ставить заготовку углом в машинный ноль, либо в CAM задавать ноль в неясной точке, вымерянной относительно реального расположения детали. Зачем целых 6 систем координат? Ну тоже все просто, хотя и реже используется: если стол позволяет установить несколько заготовок, имеет смысл объединить обработки: сначала пройти все заготовки одной фрезой, потом поменять фрезу и снова пройти по всем, ну т.д. Тут и приходит на помощь разные СК: вместо того, чтобы сращивать модели в CAM, можно обозначить разные СК для заготовок и в начале каждой обработки прописать, в какой СК работаем.

Теоретически при ручном написании программы еще может помочь команда G90/G91: выбор абсолютной или относительной системы координат. Тут все тоже боль-мень просто: в G90 станок переходит по заданным в строке координатам, а в G91 — по добавленным к текущим координатам. Так что станок, стоящий в точке X10Y10 на строку G90 G1 x20 перейдет в точку X20, а на строку G91 G1 X20 — в точку X30.

Следующая группа — коды перемещений. Тут все просто, по крайней мере на обсуждаемых станках:

G0 — холостые перемещения, выполняются на максимальной установленной в стойке скорости. Стоит учитывать, что G0 не всегда дает линейное движение, в некоторых стойках при команде G0 X200 Y300 при нахождении в точке X0Y0 рабочий инструмент сначала уходит под 45 градусов в точку X200Y200, и потом по прямой — в Y300. Имеет смысл проверить, как это происходит на Вашем станке, не зная этой тонкости можно случайно врезаться в крепеж или заготовку.

G1 — линейная интерполяция. Тут еще проще, станок движется всегда по прямой между текущей точкой и точкой, обозначенной в коде. Команда предполагает синтаксис G1 X20Y30Z10 F1000, где F — скорость движения в единицах станка (чаще — миллиметры в минуту, но иногда и мм/сек или еще что-нибудь экзотическое). Скорость — модальна, т.е. если Вы указали скорость один раз, она будет действительна для всех последующих строк G1/G2/G3, даже если они разделены, например, G0 или другими кодами.

G2/G3 — круговая интерполяция по часовой или против часовой стрелке. Допустимы два варианта определения: при нахождении станка в точке X0Y0 формат G2 X10Y10R20 построит дугу между текущей точкой и точкой X10Y10 с радиусом 20, формат G2 X35Y25 I20J-5 построит дугу между текущей точкой и X35 Y25 с центром в точке X(текущая точка)+20 Y(текущая точка)-5.
Теоретически, в продвинутых стойках встречается масса других интерполяций — от синуса до гиперболы, но в наших станках и при наличии CAMа это неактуально.

Ну и еще несколько кодов, которые входят в систему ISO 7bit, но не являются g-кодами. Это M03 (включение шпинделя) с аргументом S (скорость вращения), M05 — остановка шпинделя, M07/09 — подача и отключение СОЖ, и M30 — окончание программы.

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *