Коды с адресом g называются: Подробное описание G и M кодов для программирования чпу CNC станков. Примеры готовых G кодов для фрезерного оборудования.
Содержание
G- и М-коды
Структура управляющей программы
Программирование обработки на современных станках с ЧПУ осуществляется на языке, который обычно называют языком ИСО (ISO) 7 бит, или языком G- и М-кодов. Коды с адресом G, называемые подготовительными, определяют настройку СЧПУ на определенный вид работы. Коды с адресом М называются вспомогательными и предназначены для управления режимами работы станка.
Базовые коды программирования обработки
Код (функция) |
Назначение и пример кадра с кодом |
---|---|
Осевое перемещение | |
G00 |
Ускоренный ход – перемещение на очень высокой скорости в указанную точку G00 X10. Y20. Z25. |
G01 |
Линейная интерполяция – перемещение по прямой линии на указанной скорости подачи G01 X10. Y20. F100 |
G02 |
Круговая интерполяция – перемещение по дуге по часовой стрелке на указанной скорости подачи G02 X10. Y20. R10. F100 |
G03 |
Круговая интерполяция – перемещение по дуге против часовой стрелки на указанной скорости подачи G03 X10. Y20. R10. F100 |
Настройка | |
G20 |
Ввод дюймовых данных G20 G00 X10. Y20 |
G21 |
Ввод метрических данных G21 G00 X10. Y20 |
G90 |
Абсолютное позиционирование – все координаты отсчитываются от постоянной нулевой точки G90 G00 X10. Y20 |
G91 |
Относительное позиционирование – все координаты отсчитываются от предыдущей позиции G91 G00 X10. Y20 |
Обработка отверстий | |
G81 |
Цикл сверления G81 X10. Y20. Z-5. F30 |
G82 |
Цикл сверления с задержкой на дне отверстия G82 X10. Y20. Z-5. R1. P2. F30 |
G83 |
Прерывистый цикл сверления G83 X10. Y20. Z-5. Q0.25 R1. F30 |
G85 |
Цикл растачивания отверстия G85 X10. Y20. Z-5. F30 |
Вспомогательные коды (функции) | |
M00 |
Запрограммированный останов – выполнение программы временно прекращается |
M01 |
Запрограммированный останов по выбору – выполнение программы временно прекращается, если активирован режим останова по выбору |
М03 |
Прямое вращение шпинделя – шпиндель вращается по часовой стрелке |
М04 |
Обратное вращение шпинделя – шпиндель вращается против часовой стрелки |
М05 |
Останов шпинделя |
М06 |
Автоматическая смена инструмента М06 Т02 |
M08 |
Включение подачи охлаждающей жидкости |
M09 |
Выключение подачи охлаждающей жидкости |
M30 |
Конец программы, перевод курсора к началу программы |
Вперед >>
G и M коды для программирования обработки на станках с ЧПУ
Программирование обработки на станках с ЧПУ осуществляется на языке, который обычно называют языком G и M кодов. Существует три метода программирования обработки для станков с ЧПУ:
- Ручное программирование.
- Программирование на пульте УЧПУ.
- Программирование при помощи CAD/CAM системы.
Все операторы станков с ЧПУ, технологи-программисты должны иметь хорошее представление о технике ручного программирования. Это как начальные классы в школе, обучение в которых дает базу для последующего образования.
Когда программы создаются и вводятся прямо на стойке ЧПУ, используя клавиатуру и дисплей. Например, оператор станка может произвести верификацию УП или выбрать требуемый постоянный цикл при помощи специальных пиктограмм и вставить его в код управляющей программы.
Программирование при помощи CAD/САМ системы позволяет «поднять» процесс написания программ обработки на более высокий уровень. Работая с CAD/CAM системой, технолог-программист избавляет себя от трудоемких математических расчетов и получает инструменты, значительно повышающие скорость написания управляющих программ.
Cовокупность команд на языке программирования, соответствующая алгоритму функционирования станка по обработке конкретной заготовки называется управляющая программа (УП).
Управляющая программа состоит из последовательности кадров и обычно начинается с символа начало программы (%) и заканчивается М02 или М30.
Каждый кадр программы представляет собой один шаг обработки и (в зависимости от УЧПУ) может начинаться с номера кадра (N1…N10 и т.д.), а заканчиваться символом конец кадра (;).
Кадр управляющей программы состоит из операторов в форме слов (G91, M30, X10. и т.д.). Слово состоит из символа (адреса) и цифры, представляющее арифметическое значение.
Адреса X, Y, Z, U, V, W, P, Q, R, A, B, C, D, E являются размерными перемещениям, используют для обозначения координатных осей, вдоль которых осуществляются перемещения.
Слова, описывающие перемещения, могут иметь знак (+) или (-). При отсутствии знака перемещение считается положительным.
Адреса I, J, K означают параметры интерполяции.
G — подготовительная функция.
M — вспомогательная функция.
S — функция главного движения.
F — функция подачи.
T, D, H — функции инструмента.
Символы могут принимать другие значения в зависимости от конкретного УЧПУ.
G коды для ЧПУ
G00 — быстрое позиционирование.
Функция G00 используется для выполнения ускоренного перемещения режущего инструмента к позиции обработки или к безопасной позиции. Ускоренное перемещение никогда не используется для выполнения обработки, так как скорость движения исполнительного органа станка очень высока. Код G00 отменяется кодами: G01, G02, G03.
G01 — линейная интерполяция.
Функция G01 используется для выполнения прямолинейных перемещений с заданной скоростью (F). При программировании задаются координаты конечной точки в абсолютных значениях (G90) или приращениях (G91) с соответственными адресами перемещений (например X, Y, Z). Код G01 отменяется кодами: G00, G02, G03.
G02 — круговая интерполяция по часовой стрелке.
Функция G02 предназначена для выполнения перемещения инструмента по дуге (окружности) в направлении часовой стрелки с заданной скоростью (F).
При программировании задаются координаты конечной точки в абсолютных значениях (G90) или приращениях (G91) с соответственными адресами перемещений (например X, Y, Z).
Параметры интерполяции I, J, K, которые определяют координаты центра дуги окружности в выбранной плоскости, программируются в приращениях от начальной точки к центру окружности, в направлениях, параллельных осям X, Y, Z соответственно.
Код G02 отменяется кодами: G00, G01, G03.
G03 — круговая интерполяция против часовой стрелки.
Функция G03 предназначена для выполнения перемещения инструмента по дуге (окружности) в направлении против часовой стрелки с заданной скоростью (F). При программировании задаются координаты конечной точки в абсолютных значениях (G90) или приращениях (G91) с соответственными адресами перемещений (например X, Y, Z).
Параметры интерполяции I, J, K, которые определяют координаты центра дуги окружности в выбранной плоскости, программируются в приращениях от начальной точки к центру окружности, в направлениях, параллельных осям X, Y, Z соответственно.
Код G03 отменяется кодами: G00, G01, G02.
G04 — пауза.
Функция G04 — команда на выполнение выдержки с заданным временем. Этот код программируется вместе с X или Р адресом, который указывает длительность времени выдержки. Обычно, это время составляет от 0.001 до 99999.999 секунд. Например G04 X2.5 — пауза 2.5 секунды, G04 Р1000 — пауза 1 секунда.
G17 — выбор плоскости XY.
Код G17 предназначен для выбора плоскости XY в качестве рабочей. Плоскость XY становится определяющей при использовании круговой интерполяции, вращении системы координат и постоянных циклов сверления.
G18 — выбор плоскости XZ.
Код G18 предназначен для выбора плоскости XZ в качестве рабочей. Плоскость XZ становится определяющей при использовании круговой интерполяции, вращении системы координат и постоянных циклов сверления.
G19 — выбор плоскости YZ.
Код G19 предназначен для выбора плоскости YZ в качестве рабочей. Плоскость YZ становится определяющей при использовании круговой интерполяции, вращении системы координат и постоянных циклов сверления.
G40 — отмена коррекции на радиус инструмента.
Функция G40 отменяет действие автоматической коррекции на радиус инструмента G41 и G42.
G41 — левая коррекция на радиус инструмента.
Функция G41 применяется для включения автоматической коррекции на радиус инструмента находящегося слева от обрабатываемой поверхности (если смотреть от инструмента в направлении его движения относительно заготовки). Программируется вместе с функцией инструмента (D).
G42 — правая коррекция на радиус инструмента.
Функция G42 применяется для включения автоматической коррекции на радиус инструмента находящегося справа от обрабатываемой поверхности (если смотреть от инструмента в направлении его движения относительно заготовки). Программируется вместе с функцией инструмента (D).
G43 — коррекция на положение инструмента.
Функция G43 применяется для компенсации длинны инструмента. Программируется вместе с функцией инструмента (H).
G54 — G59 — заданное смещение.
Смещение рабочей системы координат детали относительно системы координат станка.
G70 — ввод дюймовых данных.
Функция G70 активизирует режим работы с дюймовыми данными.
G71 — ввод метрических данных.
Функция G71 активизирует режим работы с метрическими данными.
G80 — отмена постоянного цикла.
Функция, которая отменяет любой постоянный цикл.
G81 — стандартный цикл сверления.
Цикл G81 предназначен для зацентровки и сверления отверстий. Движение в процессе обработки происходит на рабочей подаче. Движение в исходное положение после обработки идет на ускоренной подаче.
G82 — сверление с выдержкой.
Цикл G82 предназначен для сверления и зенкования отверстий. Движение в процессе обработки происходит на рабочей подаче с паузой в конце. Движение в исходное положение после обработки идет на ускоренной подаче.
G83 — цикл прерывистого сверления.
Цикл G83 предназначен для глубокого сверления отверстий. Движение в процессе обработки происходит на рабочей подаче с периодическим выводом инструмента в плоскость отвода. Движение в исходное положение после обработки идет на ускоренной подаче.
G84 — цикл нарезания резьбы.
Цикл G84 предназначен для нарезания резьбы метчиком. Движение в процессе обработки происходит на рабочей подаче, шпиндель вращается в заданном направлении. Движение в исходное положение после обработки идет на рабочей подаче с обратным вращением шпинделя.
G85 — стандартный цикл растачивания.
Цикл G85 предназначен для развертывания и растачивания отверстий. Движение в процессе обработки происходит на рабочей подаче. Движение в
исходное положение после обработки идет на рабочей подаче.
G86 — цикл растачивания с остановкой вращения шпинделя.
Цикл G86 предназначен для растачивания отверстий. Движение в процессе обработки происходит на рабочей подаче. В конце обработки происходит остановка шпинделя. Движение в исходное положение после обработки идет на ускоренной подаче.
G87 — цикл растачивания с отводом вручную.
Цикл G87 предназначен для растачивания отверстий. Движение в процессе обработки происходит на рабочей подаче. В конце обработки происходит остановка шпинделя. Движение в исходное положение после обработки идет вручную.
G90 — режим абсолютного позиционирования.
В режиме абсолютного позиционирования G90 перемещения исполнительных органов производятся относительно нулевой точки рабочей системы координат G54-G59 (программируется, куда должен двигаться инструмент). Код G90 отменяется при помощи кода относительного позиционирования G91.
G91 — режим относительного позиционирования.
В режиме относительного (инкрементального) позиционирования G91 за нулевое положение каждый раз принимается положение исполнительного органа, которое он занимал перед началом перемещения к следующей опорной точке (программируется, на сколько должен переместиться инструмент). Код G91 отменяется при помощи кода абсолютного позиционирования G90.
G94 — скорость подачи в дюймах/миллиметрах в минуту.
При помощи функции G94 указанная скорость подачи устанавливается в дюймах или в миллиметрах за 1 минуту. Программируется вместе с функцией подачи (F). Код G94 отменяется кодом G95.
G95 — скорость подачи в дюймах/миллиметрах на оборот.
При помощи функции G95 указанная скорость подачи устанавливается в дюймах или в миллиметрах на 1 оборот шпинделя. Т.е. скорость подачи F синхронизируется со скоростью вращения шпинделя S. Код G95 отменяется кодом G94.
M коды для ЧПУ
М00 — программируемый останов.
Когда СЧПУ исполняет команду М00, то происходит останов. Все осевые перемещения останавливаются, при этом шпиндель (у большинства станков) продолжает вращаться. Работа по программе возобновляется со следующего кадра после нажатия кнопки «Старт».
М01 — останов с подтверждением.
Код М01 действует аналогично М00, но выполняется только после подтверждения с пульта управления станка.
Если клавиша подтверждения нажата, то при чтении кадра с М01 происходит останов. Если же клавиша не нажата, то кадр М01 пропускается и выполнение УП не прерывается.
М02 — завершение программы.
Код М02 указывает на завершение программы и приводит к останову шпинделя, подачи и выключению охлаждения.
М0З — вращение шпинделя по часовой стрелке.
При помощи кода М0З включается прямое вращение шпинделя с запрограммированным числом оборотов (S). Код М0З действует до тех пор, пока он не будет отменен с помощью М04 или М05.
М04 — вращение шпинделя против часовой стрелки.
При помощи кода М04 включается обратное вращение шпинделя с запрограммированным числом оборотов (S). Код М04 действует до тех пор, пока он не будет отменен с помощью М03 или М05.
М05 — останов шпинделя.
Код М05 останавливает вращение шпинделя, но не останавливает осевые перемещения.
М06 — смена инструмента.
При помощи кода М06 инструмент, закрепленный в шпинделе, меняется на инструмент, находящийся в положении готовности в магазине инструментов.
М07 — включение охлаждения №2.
Код М07 включает подачу СОЖ в зону обработки в распыленном виде, если станок обладает такой возможностью.
М08 — включение охлаждения №1.
Код М08 включает подачу СОЖ в зону обработки в виде струи.
М09 — отключение охлаждения.
Код М09 выключает подачу СОЖ и отменяет команды М07 и М08.
М10 — зажим.
Код М10 относиться к работе с зажимным приспособлением подвижных органов станка.
М11 — разжим.
Код М11 относиться к работе с зажимным приспособлением подвижных органов станка.
МЗ0 — конец информации.
Код МЗ0 информирует СЧПУ о завершении программы, приводит к останову шпинделя, подачи и выключению охлаждения.
Дополнительные функции и символы при программировании станков с ЧПУ
X, Y, Z — команды осевого перемещения.
А, В, С — команды кругового перемещения вокруг осей X, Y, Z соответственно.
I, J, К — параметры круговой интерполяции параллельные осям X, Y, Z соответственно.
R
При круговой интерполяции G02 или G03, R определяет радиус, который соединяет начальную и конечную точки дуги. В постоянных циклах R определяет положение плоскости отвода. При работе с командой вращения R определяет угол поворота координатной системы.
D — значение коррекции на радиус инструмента.
Н — значение компенсации длины инструмента.
F — функция подачи.
S — функция главного движения.
Т — значение определяющее номер инструмента, который необходимо переместить в позицию смены, путем поворота инструментального магазина.
N — нумерация кадров УП.
/ — пропуск кадра.
(…) — комментарии в УП.
Основы G-кода: формат и структура программы
Учебное пособие по G-коду CNCCookbook
Блоки = строки G-кода
Строка g-кода обычно называется «блоком». До сих пор мы печатали по одному блоку за раз, а не пытались создать полную программу G-кода. Таким образом можно многое сделать. Как я уже говорил, это все равно, что иметь действительно хороший ручной станок с DRO и Power Feeds на всех осях. Но если мы немного углубимся в язык g-кода, нас ждет гораздо больше возможностей.
Итак, первое, что вам нужно знать, это как создавать блоки, так как они являются базовой единицей программы обработки деталей в G-коде.
Начало блока
Блок может содержать ряд необязательных частей. Определенные части блока должны стоять первыми, если они должны присутствовать в блоке. В частности, он может дополнительно начинаться с порядкового номера, пропуска блока, номера программы или символа начала/конца ленты («%»). Давайте посмотрим на функцию каждой из этих начальных частей и помните, что блок не обязательно должен иметь ни одну из них.
Начало/Конец ленты
Процент «%» используется для обозначения начала и конца программы. Поместите одну в качестве первой строки (блока) и одну в качестве последней строки (блока) любой программы G-кода. Не все контроллеры требуют этого. Большинство проигнорирует все, что следует после «%», поэтому вы можете оставлять там комментарии. Такие комментарии попадают в раздел «Лидер». Все эти отсылки к «Лидерам» и «Ленте» могут показаться странными относительно новичкам в ЧПУ. Они имеют историческое происхождение, восходящее к тому времени, когда программы NC хранились на перфоленте. До сих пор есть машины, которые с удовольствием производят детали, которые работали таким образом, но к настоящему времени их контроллеры часто обновлялись или, по крайней мере, устройство чтения ленты было заменено интерфейсом последовательного порта или USB-ключа.
Номера программ
Программы и подпрограммы нуждаются в номере для ссылки, и это обеспечивается номером программы. Номер программы — это слово «О» (в G-коде мы называем буквы «словами», потому что каждое из них — это «слово», указывающее контроллеру что-то делать). Для вашего контроллера может потребоваться или не потребоваться номер программы, но рекомендуется его предоставить. Программа с правильным началом/концом ленты и номерами программ будет выглядеть так:
% Простая программа G-кода, ничего не делающая
O1000
%
Ничего особенного, а? Мы будем продолжать украшать эту маленькую программу, добавляя различные конструкции.
Пропуск блока (также называемый удалением блока)
Пропуск блока — это удобный способ временно исключить блоки из программы, не удаляя их. Просто начните строку с косой черты (‘/’), и контроллер может игнорировать строку. Эти пропуски блоков могут быть дополнительно пронумерованы на некоторых контроллерах, и потенциально каждым номером можно управлять с панели управления оператора. Для многих контроллеров Fanuc до 9могут использоваться разные номера пропусков блоков. Вот строка с ускоренным ходом (G00), отключенным через пропуск блока:
/G00 X0 Y0 Z0
А вот та же строка, отключенная через пропуск блока 1 и 3:
/1/3G00 X0 Y0 Z0
Эти пропуски блоков предназначены для того, чтобы оператор мог вносить быстрые изменения или иметь необязательные разделы кода, которые можно включать и выключать с панели управления. В G-Wizard Editor функция BLK DEL на панели инструментов используется для включения или выключения пропуска блоков.
Вероятно, вы не будете их часто использовать, пока не продвинетесь довольно далеко в своей работе с g-кодом, так что пока просто знайте, что они доступны.
Порядковые номера / номера строк
Самое лучшее мы оставили напоследок: порядковые номера. Порядковый номер обеспечивает уникальный способ идентификации конкретного блока. Вам не нужно упорядочивать все блоки, но это обычно делается. Если бы наша простая ничего не делающая программа внезапно содержала строку, которая что-то делала, и имела бы порядковый номер, это могло бы выглядеть так:
% Сделайте что-нибудь простое, программа g-code
O1000
N100 G00 X0 Y0 Z0
%
Порядковые числа никогда не будут иметь десятичной точки или отрицательного знака — они всегда положительные целые числа. Перенумерация программы для сохранения согласованности порядковых номеров может быть настоящей проблемой, поэтому полагайтесь на редактор G-кода для выполнения этой работы. Вот панель пересмотра нумерации последовательностей из редактора G-Wizard:
Команда изменения последовательности G-кода из GWE…
По параметрам вы можете определить некоторые вещи, которые вам нужно иметь в виду, например, мы не записываем номера программ или строки начала/конца на магнитной ленте. Если у строки есть порядковый номер, перед ним может стоять только символ пропуска блока. В противном случае порядковый номер должен быть первым в строке.
Пробелы в программах G-кода
Самое время упомянуть, что во многих случаях g-код игнорирует пробелы. Они нужны просто для того, чтобы сделать код более читабельным для нас, людей, так что используйте их себе во благо. Вы можете вставлять пробелы между словом и числом, которое идет со словом (это число называется «адресом», см. Формат адреса слова ниже):
G00 может быть G 00
X0 может быть X 0
Решите, что вы хотите видеть с точки зрения удобочитаемости, и придерживайтесь этого. В зависимости от вашего редактора G-кода в нем могут быть инструменты, которые помогут вам автоматически управлять такого рода форматированием. G-Wizard CNC Simulator and Editor, безусловно, делает это.
Пропуск дополнительной информации G-кода для экономии памяти
Как уже упоминалось, пробелы необязательны, порядковые номера являются необязательными, если только они не используются для подпрограмм или макросов (подробнее об этом позже), и потенциально есть другие вещи в язык g-кода, которые являются необязательными. Стоит иметь в виду, что если вы используете старый контроллер, одной из постоянных проблем является объем памяти контроллера. Удаление пробелов и неиспользуемых порядковых номеров может освободить довольно много байтов, уменьшив ваши программы G-кода. Не упускайте возможность сделать что-то подобное, если это необходимо для выполнения работы.
Word Формат адреса
Как уже упоминалось, буква в программе g-кода называется словом . С каждым словом связан адрес , который является числом, которое идет со словом. Например, когда мы говорим о координатах, адрес — это значение координаты для оси: «X0» — это X-слово с адресом «0».
В зависимости от функции Word адрес должен принимать определенный формат. Например, мы упомянули, что адреса (порядковые номера), связанные с «N» словами, должны быть целыми положительными числами, без десятичных точек или знаков.
Даже слово «G», от которого происходит название «G-код», имеет адрес, определяющий, о каком G-коде идет речь — «G00» — это слово G с адресом «00», которое инициирует режимы быстрого движения.
Хороший симулятор ЧПУ будет иметь возможность определять форматы адресов слов в соответствии с ожиданиями вашего контроллера (они могут довольно сильно различаться от одного диалекта g-кода к другому). G-Wizard Editor использует следующий экран для определения форматов адресов Word:
Настройка формата адреса слова для слова «М»…
Чтобы использовать его, выберите букву для слова в раскрывающемся меню вверху слева. Параметры конфигурации находятся в левой колонке. Образцы представлены справа, чтобы показать, что действительно, а что нет.
Блоки не обязательно выполняются слева направо
Одной из вещей, с которой я столкнулся при первом изучении g-кода, была идея о том, что блоки while в основном выполняются сверху вниз, если только вы явно не скажете им делать что-то другое через макросы и подпрограммы. , блоки не обязательно выполняются слева направо. На самом деле, каждый контроллер может определять свой собственный особый порядок, хотя они и стараются быть похожими. Вот, например, порядок выполнения для RS-274 G-Code:
1. Комментарий
1.1 Сообщение комментария
2. Установите режим скорости подачи (G93, G94, G95).
3. Установите скорость подачи (F).
4. Установите скорость шпинделя (S).
5. Выберите инструмент (T).
6. Замените инструмент (M6).
7. Включение или выключение шпинделя (M3, M4, M5).
8. Подача охлаждающей жидкости вкл. или выкл. (M7, M8, M9).
9. Включите или отключите переопределение (M48, M49).
10. Упор (G4).
11. Установите активную плоскость (G17, G18, G19).
12. Установите единицы измерения длины (G20, G21).
13. Включение или выключение компенсации радиуса фрезы (G40, G41, G42)
14. Включение или выключение компенсации длины резца (G43, G44, G49)
14.5 Выполните масштабирование G50/G51.
15. Выбор системы координат (G54, G55, G56, G57, G58, G59, G59.1, G59.2, G59.3).
16. Установить режим управления траекторией (G61, G61.1, G64)
17. Установить режим расстояния (G90, G91).
18. Установите режим отвода (G98, G99).
18.6 Вращение координат G68/69. Масштабирование перед вращением.
18.7 Сделать полярные координаты G15/16.
19. Перейдите к исходному местоположению (G28, G30) или измените данные системы координат (G10) или установите смещения осей
(G92, G92.1, G92.2, G94).
20. Выполнить движение (от G0 до G3, G33, G34, G38.x, G73, G76, G80 до G89), измененное (возможно) с помощью G53.
21. Стоп (M0, M1, M2, M30, M60).
22. M97, M98, M99
Как видите, порядок по всей карте. Это было сделано для того, чтобы операции, зависящие друг от друга, выполнялись в предпочтительном порядке. Например, если вы включаете или отключаете СОЖ на той же линии, где вы потенциально собираетесь выполнять движение резки, вам нужно, чтобы СОЖ включался до начала резки, а не после него.
Режимы
Как мы упоминали в некоторых других статьях, G-Code — это модальный язык. Много раз, когда мы выполняем конкретное слово, оно устанавливает режим, который переносится вперед. После того, как мы выполнили «G00», мы перевели контроллер в режим Rapids. Любые координатные слова приведут к ускоренному движению к координате. Эти режимы — еще одна причина, чтобы знать порядок выполнения слов в блоке, так как многие слова создают режимы, которые влияют на другие слова, следующие за ними.
Принудительное выполнение порядка выполнения
Если у вас есть какие-либо сомнения относительно порядка, в котором происходят события, или, что более важно, если вам важно, в каком порядке выполняются слова, лучший ответ — поместить их в последовательные блоки. Таким образом, нет никакой двусмысленности. Вы можете попытаться запомнить произвольный порядок для вашего контроллера, но это гораздо более подвержено ошибкам!
Не впихивайте слишком много в блок!
Следствием идеи принудительного порядка выполнения является не попытка втиснуть слишком много в блок. G-код часто все равно не позволит вам — вы не можете, например, просто влепить целую кучу ходов в один и тот же блок. Так что не стоит слишком торопиться. Держите вместе то, что имеет смысл, и пусть то, что не имеет смысла, распределяется по отдельным блокам, чтобы сделать код более понятным.
Конфликты слов и групп кодов
Поскольку слова являются модальными, существует вероятность конфликтов. Например, если вы ввели «G00» (быстрое линейное движение) и «G01» (линейное движение с подачей) в одном и том же блоке, возникает конфликт, потому что контроллер не может выполнять оба действия. Как правило, он выбирает последний, но иногда это создает ошибку.
Fanuc и другие пытаются разрешить конфликты, используя так называемые «кодовые группы». Если два слова принадлежат к одной группе, то они конфликтуют друг с другом и не должны использоваться в одном блоке.
Комментарии
Говоря о понятности и ясности, не забывайте добавлять комментарии к коду в различных местах. Все, что вы помещаете в круглые скобки, является комментарием, который игнорируется при выполнении программы g-кода. Например:
% A сделать что-то простое g-code программа
O1000
N100 G00 X0 Y0 Z0 (Rapid to Part Zero)
%
Комментарий сообщает, почему мы перемещаемся в это конкретное место. Нет необходимости чрезмерно комментировать код — вещи, которые очевидны, не нуждаются в комментариях. Попробуйте прокомментировать все, что было трудно понять, когда вы писали G-код. Комментарии могут служить напоминанием о том, что вы узнали и чего пытались достичь. Если вы пытаетесь прочитать G-код и ломаете голову, добавьте несколько комментариев, когда разберетесь. Следующий парень, который прочитает этот код, скажет вам спасибо.
Комментарии как заголовки, разграничивающие разделы
Комментарии — это хороший способ разграничить разные разделы G-кода. Поместите вверху ту, которая содержит всю существенную информацию о вашей программе, которую оператор и будущие программисты сочтут удобной иметь:
%
(—————————————————— ——————)
(Простая программа g-кода ———————)
( Написано Бобом Уорфилдом, 18 июля 2011 г. ———————)
(— ——————————————————————)
O1000
N100 G00 X0 Y0 Z0 (Rapid to Part Zero)
%
Действительно полный заголовок программы должен включать такие вещи, как:
– Имя файла программы.
— Автор программы
— Дата версии
— История изменений — строка для каждой версии, в которой указывается, что изменилось, кто внес изменения и дата.
– Обработка и управление, для которых предназначена программа
– Единицы измерения: дюймы или мм
– Информация по настройке: Какой запас материала ожидается, какой размер и т. д.?
— Рабочие координаты: Что ожидается от рабочих координат? Где находится «Нулевая часть»?
– Информация о клиенте: Рабочим местам потребуется информация о том, к какому клиенту и номеру задания относится программа.
Рекомендуется также иметь заголовок для каждой подпрограммы, хотя нет необходимости повторять всю ту же информацию, которая уже находится в заголовке основной программы.
Программы CAM и другое программное обеспечение часто создают специальные комментарии
Программы CAM и другое программное обеспечение часто используют комментарии как хорошее место для хранения дополнительной информации, которую невозможно закодировать в G-код другим способом. Вот типичный пример из CAM-программы HSMWorks:
%
O1000 (TANKCONSTCALLOP)
(T1 D=0,4724 CR=0. – ZMIN=-0,77 – ПЛОСКАЯ КОНЦЕВАЯ ФРЕЗА)
Это говорит нам, что имя CAM-файла было «TANKCONSTANTSCALLOP». Сразу ниже приведено определение инструмента. В этой программе используется ровно один инструмент «T1» со следующими характеристиками:
– Диаметр инструмента = 0,4724
– Радиус угла = 0
– Минимум Z = -0,77
– Тип инструмента = Плоская концевая фреза
Вот пример от OneCNC:
%
O0000
N10 (MACh4 MILL – )
N20 (АВТОР – {BOB WARFIELD})
N30 (ГРУППА – ПАНЕЛЬ ДЛЯ ТОЧЕЧНОГО СВЕРЛЕНИЯ И ГРАВИРОВКИ)
N40 (SYSTEM-ONECNC-XR2 MILL ADVANTAGE – ВЕРСИЯ 8. 12)
– N50 (ПРИМЕЧАНИЯ N50 (ПРИМЕЧАНИЯ) )
Они перешли на формат, который содержит больше информации для людей-операторов.
Следите за ними, если вы редактируете g-код, сгенерированный программой CAM. Они могут дать вам некоторую полезную информацию, и вы можете не захотеть удалять эти комментарии, если по какой-то причине к ним может получить доступ какое-то другое программное обеспечение.
Заключение
Теперь у вас есть прочная основа для использования станков с ЧПУ в качестве замены ручного станка, и вы узнали основы того, как программы G-кода составляются из блоков G-кода. Это хорошая отправная точка. С этого момента мы будем добавлять кирпичи в этот фундамент по специальным темам, которые позволят вам создавать все более и более мощные программы g-кода.
Упражнения
1. Получите руководство к контроллеру ЧПУ и просмотрите форматы адресов Word в редакторе G-Wizard, чтобы убедиться, что GWE правильно настроен для вашего контроллера.
2. Составьте простой формат заголовка, который вы планируете использовать для программирования G-кода. Используйте его для создания простой программы, которая ничего не делает, которая может служить исходным шаблоном при создании нового файла g-кода.
3. Если вы используете программу CAM, узнайте, какие у нее параметры для заголовков в файле G-кода, который она публикует.
4. Взгляните на несколько примеров файлов gcode.
Является ли ручная обработка быстрее, чем ЧПУ для простых деталей?
Список общих команд G-кода и их значение
Следующий список команд G-кода для токарных станков с ЧПУ и обрабатывающих центров отражает типичную интерпретацию команд, но они могут различаться у разных производителей контроллеров. Программы обработки с ЧПУ используют эти команды в сочетании с другими буквенными командами. G-коды обычно указывают функции обработки токарного или фрезерного станка, в то время как M-коды управляют работой самого станка с дополнительными буквами, представляющими адреса, такие как F для скорости подачи и S для скорости шпинделя, используемые в типичной программе.
Хотя G-коды обычно говорят сами за себя, в программе ЧПУ используется ряд соглашений. Программы начинаются и заканчиваются символом процента, и программа всегда именуется в формате от O0001 до O9999. G-код, по большей части, является модальным, что означает, что любая команда будет оставаться активной до тех пор, пока не будет отменена или сброшена другой командой. Инструменты перемещаются в соответствии с интерполяцией; то есть перемещение, которое сочетает в себе изменения координат X и Y, например, приведет в действие обе оси одновременно, чтобы переместить инструмент по прямой траектории.
Дополнительные сведения см. в других статьях этой серии, перечисленных в конце этой статьи.
Команды
В приведенной ниже Таблице 1 перечислены общие команды G-кода, а также их интерпретация как для токарных, так и для фрезерных операций.
Таблица 1 – Команды G-кода для токарных и фрезерных операций
Код | Токарная обработка | Фрезерование |
Г00 | Быстрое перемещение | Быстрое перемещение |
Г01 | Линейная интерполяция | Линейная интерполяция |
Г02 | Круговая интерполяция CW | Круговая интерполяция CW |
Г03 | Круговая интерполяция против часовой стрелки | Круговая интерполяция против часовой стрелки |
Г04 | Жилье | Жилье |
Г09 | Проверка точной остановки | Проверка точной остановки |
Г10 | Установка данных | Настройка данных |
Г11 | Отмена установки данных | Отмена установки данных |
Г15 | — | Полярные координаты |
Г16 | — | Отмена полярных координат |
Г17 | — | Обозначение плоскости XY |
Г18 | — | Самолет ZX обозначают |
Г19 | — | Самолет YZ обозначают |
Г20 | Установить английские единицы измерения | Установить английские единицы измерения |
Г21 | Установка метрических единиц | Установка метрических единиц |
Г22 | Проверка сохраненного хода на | Проверка сохраненного хода на |
Г23 | Проверка сохраненного хода | Проверка сохраненного хода |
Г25 | Обнаружение колебаний скорости вращения шпинделя на | Обнаружение колебаний скорости вращения шпинделя на |
Г26 | Обнаружение колебаний скорости шпинделя выкл. | Обнаружение колебаний скорости шпинделя выкл. |
Г27 | Проверка нулевой позиции станка | Проверка нулевой позиции станка |
Г28 | Возврат станка в нуль (точка 1) | Возврат станка в нуль (точка 1) |
Г29 | Возврат с нуля станка | Возврат с нуля станка |
Г30 | Возврат станка в ноль (точка 2) | Возврат станка в ноль (точка 2) |
Г31 | Функция пропуска | Функция пропуска |
Г32 | Резьбовой постоянный шаг | — |
Г35 | Круговая резьба CW | — |
Г36 | Круговая резьба против часовой стрелки | — |
Г40 | Отмена смещения радиуса вершины инструмента | Отмена смещения радиуса фрезы |
Г41 | Смещение радиуса вершины инструмента влево | Смещение радиуса фрезы влево |
Г42 | Смещение радиуса вершины инструмента вправо | Смещение радиуса фрезы вправо |
Г43 | — | Коррекция длины инструмента положительная |
Г44 | — | Отрицательное смещение длины инструмента |
Г49 | — | Отмена коррекции на длину инструмента |
Г50 | Предустановка максимальной скорости вращения | Отмена функции масштабирования |
Г51 | — | Функция масштабирования |
Г52 | Набор локальной системы координат | Набор локальной системы координат |
Г53 | Набор систем координат станка | Набор систем координат станка |
Г54 | Рабочая координата 1 | Рабочая координата 1 |
Г55 | Рабочая координата 2 | Рабочая координата 2 |
Г56 | Рабочая координата 3 | Рабочая координата 3 |
Г57 | Рабочая координата 4 | Рабочая координата 4 |
Г58 | Рабочая координата 5 | Рабочая координата 5 |
Г59 | Рабочая координата 6 | Рабочая координата 6 |
Г60 | — | Позиционирование в одном направлении |
Г61 | Режим точной остановки | Режим точной остановки |
Г62 | Режим автоматической коррекции угла | Режим автоматической коррекции угла |
Г63 | — | Режим постукивания |
Г64 | Режим резки | Режим резки |
Г65 | Вызов пользовательского макроса | Вызов пользовательского макроса |
Г66 | Вызов пользовательского модального макроса | Модальный вызов пользовательского макроса |
Г67 | Отмена пользовательского модального вызова макроса | Отмена пользовательского модального вызова макроса |
Г68 | Зеркальное отображение для двойных револьверных головок | Вращение системы координат |
Г69 | Зеркальное отображение для двойных турелей отмена | Отмена поворота системы координат |
Г70 | Цикл чистовой обработки профиля | — |
Г71 | Цикл черновой обработки профиля направление оси Z | — |
Г72 | Цикл черновой обработки профиля направление оси X | — |
Г73 | Цикл повторения шаблона | Цикл высокоскоростного сверления |
Г74 | Цикл сверления | Цикл нарезания левой резьбы |
Г75 | Цикл обработки канавок | — |
Г76 | Цикл нарезания резьбы | Цикл чистового растачивания |
Г80 | — | Отмена фиксированного цикла |
Г81 | — | Цикл сверления |
Г82 | — | Цикл точечного сверления |
Г83 | — | Цикл сверления с выводом |
Г84 | — | Цикл нарезания правой резьбы |
Г85 | — | Цикл сверления |
Г86 | — | Цикл сверления |
Г87 | — | Цикл обратного растачивания |
Г88 | — | Цикл сверления |
Г89 | — | Цикл сверления |
Г90 | Цикл резки A A /Абсолютная команда B | Абсолютная команда |
Г91 | Инкрементальная команда B | Инкрементальная команда |
Г92 | Регистр положения инструмента B | Регистр положения инструмента |
Г94 | Скорость подачи в минуту B | — |
Г95 | Подача на оборот B | — |
Г96 | Постоянная поверхностная скорость | — |
Г97 | Постоянная скорость шпинделя | — |
Г98 | Скорость подачи в минуту A | Возврат на исходный уровень в фиксированном цикле |
Г99 | Подача на оборот A | Возврат на уровень R в фиксированном цикле |
Примечания
Нижние индексы, прикрепленные к некоторым из последних элементов в столбце Turning, относятся к различию, сделанному между типом группы A и типом группы B, где коды различаются. Например, если тип группы B использует G90 и G91 для переключения между абсолютными и инкрементными командами, тип группы A вместо этого использует адреса U и W для идентификации этих перемещений.
Подпрограммы и макросы
Подпрограммы вызываются командой M98. Они используются для различных операций, таких как индексация оси Z между повторяющимися разрезами. Подпрограммы обозначаются буквой «P», а буква «L» указывает, сколько раз должна выполняться подпрограмма. Каждая подпрограмма заканчивается M99, которая возвращает контроллер к основной программе или предыдущей подпрограмме, если они вложены друг в друга. Другая распространенная подпрограмма — это та, которая сбрасывает модальные состояния до или после смены инструмента — шаг безопасности.
Предварительно запрограммированные функции, предоставляемые производителем станка, также считаются подпрограммами, но они вызываются в G-коде, например, цикл сверления G81.
Макросы позволяют станку с ЧПУ выполнять две важные функции. Создавая переменные, которые можно изменять, размеры элементов, такие как ширина канавки, можно регулировать без изменения программы. Они также позволяют той же программе обрабатывать семейство размеров деталей, которые могут быть представлены в виде таблицы на чертеже. Переменным присваиваются адреса, которые обычно вызываются в строке программы следующим образом: G00 X#123, что указывает машине быстро перейти к ячейке, сохраненной в переменной с адресом 123.
При использовании макросов следует соблюдать особую осторожность, так как число может быть введено слишком быстро для процесса, что может привести к повреждению и/или травме. Программисты ЧПУ регулярно встраивают проверки в программы, чтобы избежать таких катастроф.
Резюме
В этой статье представлено краткое обсуждение команд G-кода и их значений. Для получения дополнительной информации о сопутствующих продуктах обратитесь к другим нашим руководствам или посетите платформу поиска поставщиков Thomas, чтобы найти потенциальные источники поставок или просмотреть подробную информацию о конкретных продуктах.
Всего комментариев: 0