В сегодняшнем индустриально развитом обществе Фрезерный станок с ЧПУ широко используется во многих областях. С увеличением объема и частоты использования станок с ЧПУ постепенно разработал универсальный компьютерный язык: это код G.
G-код (G-code, также известный как RS-274) — это наиболее широко используемый язык программирования с числовым программным управлением (числовым программным управлением).
Поскольку каждый абзац на этом языке начинается с буквы G, поэтому мы обычно называем его кодом G. Код G — это язык программирования с числовым программным управлением, разработанный Массачусетским технологическим институтом в конце 1950-х годов. После периода развития Альянс электронной промышленности сформулировал самую раннюю версию стандарта G-кода в начале 1960-х годов (это то, что мы знаем о 274 рупиях). Теперь, после десятилетий стабильной разработки, G-код и его расширенные языки широко используются в обрабатывающей промышленности.
Код G ЧПУ в основном используется в автоматизированном производстве для управления автоматическими станками. Код G иногда называют языком программирования G. G-код — это общий промышленный термин для компьютерного языка, который большинство станков с ЧПУ используют для управления своими движениями и изготовлением деталей. G-код — это инструкция в программах с ЧПУ, он может управлять фрезерным станком с ЧПУ или лазерным станком с ЧПУ для реализации различных Такие функции, как быстрое позиционирование, обратная круговая интерполяция, прямая круговая интерполяция, круговая интерполяция промежуточных точек, программирование радиуса, обработка скачков и т. д.
Урок №1. Программирование на фрезерных станках ЧПУ с сиcтемой Fanuc
Почему нам нужно изучать G-код
Поскольку G-код должен быть запрограммирован G-кодом для управления станком для выполнения различных функций. Теперь есть два основных способа завершить программирование ЧПУ. Напишите код G непосредственно для программирования. 1. Используйте программное обеспечение CAD / CAM для завершения программирования ЧПУ. Но у этих двух методов есть определенные недостатки.
Таким образом, большинство людей сейчас используют программное обеспечение CAD / CAM для создания начальной программы ЧПУ, а затем используют программирование G-кода для редактирования g-кода из программного обеспечения CAD / CAM. Это не только повышает эффективность работы фрезерного станка с ЧПУ, но и повышает стабильность фрезерного станка с ЧПУ.
По сравнению с программным обеспечением CAD / CAM, программирование кода G имеет более мощные функции. Некоторые задачи не могут быть выполнены с помощью CAD / CAM, но вы можете быстро выполнить их с помощью кода G. Как правило, программирование кода G очень подходит для решения следующих задач:
1. Использование программирования с помощью кода G может упростить процесс производства простых деталей и повысить эффективность работы: например, если вы хотите выгравировать небольшой узор, если вы используете программное обеспечение CAM для создания файлов кода G, в общем, такое программное обеспечение сгенерированный Код будет сложнее, чем писать напрямую с помощью G-кода.
Как сделать управляющею программу G-CODE для фрезерного ЧПУ станка в FreeCAD
2. Используйте программирование кода G для выполнения задач, которые не могут быть выполнены с помощью программ CAD / CAM: С развитием машин и кода G возникли некоторые профессиональные задачи, которые программное обеспечение CAM не может выполнить, и некоторые последующие задачи при импорте машин. Эти задачи не могут быть выполнены с помощью программного обеспечения, они могут быть выполнены только с помощью кода G.
3. Использование программирования с помощью G-кода может изменить ошибки программного обеспечения CAM / CAD во время процесса программирования: Даже самое продвинутое программное обеспечение CAM не может избежать ошибок, поэтому при обнаружении ошибки вы можете напрямую изменить G-код, экспортированный программным обеспечением CAM, через G-код.
Источник: ru.buycnc.com
Домашний ЧПУ-фрезер как альтернатива 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-код
Несколько раз начинал я писать про g-code, но каждый раз забрасывал. С одной стороны, полный g-code неоднозначен, по крайней мере в части циклов: даже разные серии станков одного производителя могут трактовать g-коды разным образом, а в основных кодах все и так понятно. С другой — современная CAM-система позволяет оператору вообще не знать g-кода как класса, обходясь дерганьем мышкой по окошечкам компа. Но когда один из наших операторов (хороший кстати, ВО, опыт и все такое) не справился с задачей «сделать тестовую прогу, которая 1000 раз прогонит шпиндель вверх-вниз на 30 мм», я понял, что хотя бы общее понимание быть должно. Даже если не писать простые программки, то хотя бы чтобы разобрать и отдебажить что там нам постпроцессор написал.
Во-первых, стоит знать, что g-code идет кадрами, каждая строка — кадр. Код
G1 x10 y20
даст переход по линии, соединяющей текущее местоположение и точку x10y20, а код
G1 x10 y20
даст переход по ломаной — сначала в точку (текущее положение, x10), а потом уже в точку x10y20.
Кстати, на втором примере мы можем увидеть свойство модальности: мы можем не писать G1 в начале второй строки, ибо G1 — модален и стойка поймет кадр без кода как дублирующий код предыдущего. Если бы мы пытались пройти по дуге (G2/G3) и так же вторую часть перенесли бы на следующую строку — стойка бы интерпретировала эту строчку как новый кадр G1.
Итак, первая группа кодов, которые стоит знать — установочные. Сюда входят коды установки системы координат, системы единиц, установка коррекции длины и радиуса инструмента. Для хобббийного ЧПУшника достаточно из всего этого знать строку безопасности, которая ставится в начале каждой программы:
G17 G21 G40 G54 G80 G90
И расшифровка: 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.
Источник: habr.com
Основы программирования
В управляющей программе в форме команд описываются все действия, которые должен совершить станок для обработки детали.
Программа состоит из кадров (строк), в кадре описывается отдельное действие, выполняемое станком.
Кадр состоит из порядкового номера (необязательный параметр) буквенных адресов(X, Z, S, T и т. д.), математического знака « — » (минус) и числовой части.
Как правило, управляющая программ, начинается с ввода нулевых точек, задания команд смены инструмента и установки режимов резания.
Ввод нулевых точек, смена инструмента, включение частоты вращения шпинделя, ввод рабочей подачи
Смещение нуля детали по G54
T2 M06
Установка в рабочее положение инструмента №2.
Включение корректора на длину инструмента №2.
S1500 M3
Частота вращения шпинделя 1500 об/мин, правое вращение
G94 F400
Величина рабочей подачи 400 мм/мин.
Включение подачи СОЖ
Команда G94 является активной при включении станка (эту команду можно в программу не вводить).
Смещение нуля детали по G55
Установка в рабочее положение инструмента №3
Включение корректора на длину инструмента №3
Частота вращения шпинделя 800 об/мин, правое вращение.
Величина рабочей подачи в мм/об (1мм/об)
Включение подачи СОЖ
При программировании перемещений с 4-й и 5-й осью используют так же функцию программирования подачи G93 (обратнозависимая подача).
Адрес F кадры/мин указывает сколько раз в минуту, могло бы быть отработанно данное перемещение (для определения времени необходимого на отработку кадра разделите единицу на значение F).
F3. кадр будет отработан за 1/3 минуты.
F0.1 кадр будет отработан за (1/0.1) 10-ть минут.
Отработать перемещение за ½мин.
G1 Y10. F0.5
Отработать перемещение за 2минуты.
При активной функции G93 величина рабочей подачи F должна указываться в каждом кадре содержащем данное перемещение.
Программирование перемещений на быстром ходу
Движение на быстром ходу программируются кодом G0 с указанием конечной точки перемещения в абсолютной или относительной системе координат (после значения целого числа миллиметров обязательно должен стоять знак десятичной точки).
При перемещении по G0 каждая ось перемещается с одинаковой скоростью, но завершение перемещения осей происходит не одновременно, по этому путь перемещения инструмента одновременно по двум координатам, как правило, представляет собой ломаную прямую линию.
Линейное перемещение на рабочей подаче G1:
Перемещение может происходить по одной либо нескольким осям. Движение всех осей начинается и заканчивается одновременно.
G90 Абсолютная система отсчёта
G90 G94 абсолютная система отсчёта, подача в мм/мин.
G1 X60. Y35. F300. переместится на в точку с координатами X=60мм Y=35мм на подаче 300мм/мин.
G0 Z0 переместится на быстром ходу по оси Z в точку 0.
G91 Относительная система отсчёта
G91 G94
G1 X-40. Y35. F80. переместить инструмент на рабочей подаче в правлении «минус» по оси X на 40мм, одновременно переместить ось Y в направлении «плюс» на 35мм.
Кроме того там, где имеются сходящиеся элементы, можно автоматически вставит снятие фаски, либо обработку скругления в конце перемещения при помощи команд:
, C
Обработка скруглений
G1 X0 Y25. перемещение в точку 1
G 1 X10. Y50. ,R12. перемещение в точку 2 с автоматической вставкой скругления, точки 1.1 2.1.
G1 X80. точка 3
Источник: studfile.net