принципы написания задачи g кодов в программе

Домашний ЧПУ-фрезер как альтернатива 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.

Источник

GCODE: Основы

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

Добрый день Уважаемые читатели!

GCODE: Плюшки от ПавлушкиПосле написания предыдущей статьи ко мне стали поступать вопросы на поводу G-CODE.

Решил написать пост об основах G-CODE.

Не для кого не секрет, что наш с Вами 3D принтер является простым ЧПУ станком (CNC), который просто выполняет команды оператора.

Чтобы мы с принтером понимали друг друга, умными людьми в начале 1960 годов был придуман специальный язык под названием «G-CODE» (G-код).

Программа, написанная с использованием G-кода, имеет жесткое строение.

Кадр завершается символом перевода строки (CR/LF).

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

Если говорить коротко, то наш ПК через USB, просто посылают команды на порт принтера (микроконтроллера), а принтер без прикословно их выполняет.

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

Описание команд будет производится для прошивки MARLIN, возможно будет работать и на других прошивках.

Будут рассмотрены самые только самые основные команды (рабочий минимум), в поисках экзотики, можно пройти по ссылке.

Сами команды делятся на группы:

Эти команды имеют параметры.

На пример, если головка находиться в положении X10 Y10, то при подаче команды G91

G1 X10 F1000, произойдет смещение головы на 10 мм по оси Х на скорости 1000.

Эту команду можно делать много раз, до достижения «софтового» ограничение в прошивке.

Команда выполниться только один раз.

где: H0 – стол, H1 – экструдер

где: E-1 – стол, E0 – хотэнд, C8 – количество попыток, S – температура.

M304 – Задать PID параметры для стола [M304 P1 I2 D3]

EEPROM – внутренняя память микроконтроллера (не обнуляется при выключении)

M600 – Замена филамента.

Данные команды можно подавать в консоли из таких программ как Pronterface или Universal-G-Code-Sender.

В Pronterface можно включить режим ответа в меню Settings / Debug communications, программа будет писать все ответы от принтера.

принципы написания задачи g кодов в программе

принципы написания задачи g кодов в программе

принципы написания задачи g кодов в программе

принципы написания задачи g кодов в программе

Или открыть файл с G-кодом в блокноте и написать все руками. =)

Чтобы не быть голословным предлагаю Вам разобрать пример G-кода программы:

M300 S5000 P280 – звуковой сигнал

M300 S5000 P280 – звуковой сигнал

Благодарю Вас за внимание!

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

Источник

Программирование станков с ЧПУ с нуля до профи

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

Типы станков с ЧПУ

принципы написания задачи g кодов в программе

Одна и та же деталь может подвергаться обработке на разных станках. В зависимости от геометрии модели, наличия или отсутствия отверстий, деталь может проходить несколько последовательных технологических операций на разных станках с ЧПУ:

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

Программирование станков с ЧПУ

принципы написания задачи g кодов в программе

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

Чтобы в реальности воплотить конструкторские или инженерные разработки, нужно написать программу для создания конкретной детали. Это делает программист с помощью CAD-софта.

Важно! В зависимости от поколения станков, управляющей системы, типа оборудования применяются различные платформы программирования.

Методы программирования на станках с ЧПУ

принципы написания задачи g кодов в программе

Способов написания программ для оборудования с ЧПУ несколько:

Важно! Автоматизированные методы применимы только в станках последних поколений, включенных в единую компьютерную систему производственного процесса.

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

принципы написания задачи g кодов в программе

Программирование с пульта позволяет осуществлять запуск тех же операций, что и при ручном методе, плюс переходы при 2,5–3-координатных перемещениях. Такой метод удобен для запуска однотипных операций или корректировки текущих.

принципы написания задачи g кодов в программе

Самая сложная и одновременно самая гибкая система — программирование в CAM-средах. Здесь нужно сначала получить эскиз и модель из CAD, выбрать станок в диалоговом окне, задать приспособления, пределы перемещений, инструменты, режимы, способы обработки и коррекции. Постпроцессор, получив данные, преобразует их для генерации в управляющую систему. При этом оператор в удаленном режиме видит виртуальную модель и может в реальном времени вносить коррективы в работу оборудования.

Ручное программирование

принципы написания задачи g кодов в программе

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

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

На пульте

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

Важно! Станки с ЧПУ, оборудованные дисплеем, позволяют запустить имитацию обработки детали с визуализацией на экране. Эта опция дает возможность провести отладку программы до запуска станка.

Автоматизировано

принципы написания задачи g кодов в программе

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

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

Преимущества автоматизированных систем:

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

Как составлять программы для станков с ЧПУ?

Чтобы написать программу для оборудования с числовым программным управлением, нужно придерживаться определенных правил:

Чем сложнее деталь, тем больше кадров будет содержать УП.

Модели САПР

принципы написания задачи g кодов в программе

Системы автоматического проектирования с появлением ПК стали называть CAD-системами — компьютерного проектирования. Тем не менее аббревиатура САПР прочно закрепилась, и технологи, разработчики, программисты, проектировщики любой софт для проектирования по-прежнему называют САПР.

принципы написания задачи g кодов в программе

Основные модели САПР:

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

Конвертации файлов

принципы написания задачи g кодов в программе

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

Заменить ПО на новое не всегда возможно: лицензионный софт стоит дорого. А кроме того, современные программы попросту не будут работать на устаревших ПК с ОС Windows XP или 7. Замена же компьютерного парка и вовсе многим предприятиям не по карману.

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

принципы написания задачи g кодов в программе

Autodesk выпустил программу DWG TrueView, которая не дает просматривать файлы, но конвертирует их в нужный тип. Правда, она занимает много места на жестком диске, зато бесплатная. Альтернативный вариант — DWG Converter. Он не требует установки, позволяет конвертировать как одиночные, так и пакетные файлы

Онлайн-конвертер CAD Exchanger способен трансформировать в нужный формат практически любой тип файлов. При этом следует помнить, что бесплатно в сутки и месяц можно обработать не более 10 файлов.

Типы программного обеспечения

принципы написания задачи g кодов в программе

Для обеспечения работы оборудования с числовым программным управлением предусмотрены виды софта:

Для токарных станков с ЧПУ

принципы написания задачи g кодов в программе

Лучшие CAD-программы для станков данного типа:

Эти программы дают широкие возможности для проектирования любых деталей — от простых до геометрически сложных.

принципы написания задачи g кодов в программе

CAM-софт для формирования управляющей программы:

Эти программы трансформируют созданную в CAD-софте модель в понятный для станка код.

Важно! Для экономии можно устанавливать сразу пакетные системы, совмещающие в себе функции CAD/CAM. Например, AutoCAD или «Компас-3D».

Для фрезерных станков с ЧПУ

В зависимости от стоящих перед технологом задач, подбирают ПО для работы с фрезерным станком. Для создания эскизов для плоской резки подойдут:

Для работы с 3D-моделями можно использовать тот же софт, что и для токарного станка.

Дополнительно стоит присмотреться к программам:

Написание программ для станков с ЧПУ

принципы написания задачи g кодов в программе

Для создания программы, которая осуществит реализацию инженерной разработки, технолог должен владеть специальным кодом, который схож с C# или Basic. Это специализированный G-code, который способны распознавать управляющие системы станков с числовым программным управлением.

G-коды

G-коды содержат цифровую маркировку от 00 до 97 и каждый из них соответствует определенной операции или настройке станка — от прямолинейных и круговых перемещений, выбора плоскостей, ввода метрических данных до коррекции и контроля скоростей инструментов и двигателей.

Блоки G –кода

Набор команд для станка с ЧПУ объединяют в блоки. Их записывают в одну строку и управляющая система будет считывать их последовательно слева направо. Если строки недостаточно, код будет продолжен в следующей, и машина перейдет к ней.

Операторы и технологи знают G-коды наизусть, поэтому для них не составляет труда быстро формировать нужные программы.

Программ G –кода

Команды даются последовательно и логично, поэтому программа состоит, как правило, из этапов:

Если обрабатываться будет серия заготовок, то повторяться будут команды со 2 по 9.

Модальные и адресные коды

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

Адресные коды включают координаты по осям для перемещения исполнителя.

Самые распространенные G-коды

Чаще всего оператор или технолог используют коды, которые обозначают наиболее типичные движения:

Станок использует обе оси, чтобы максимально быстро доставить инструмент в нужную точку

Перемещает исполнитель по прямой

Дуга по часовой/против часовой стрелки

Обеспечивает плавное перемещение инструмента к заданным координатам через промежуточные, которые и задают дугу

Дает команду станку, в какой из плоскостей совершить дуговое перемещение

Компенсация длины инструмента

Задает длину исполнителя относительно оси Z

M-коды

Это машинные коды, которые отличаются на разных станках с ЧПУ. Они управляют функциями оборудования (его агрегатов, двигателей и узлов). Например, подача или отключение охлаждения, вращение шпинделя или направление его движения.

Как написать программу ЧПУ станка с нуля?

принципы написания задачи g кодов в программе

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

Сам процесс программирования состоит из последовательности действий:

Значение соответствующего инструмента

Запуск вращения главного шпинделя со скоростью 1000 об/мин по часовой стрелке/против часовой стрелки

Быстрое перемещение исполнителя в заданные координаты

Работа исполнителя по дуге по часовой стрелке

Важно! Чтобы самостоятельно составлять программы для станков с ЧПУ, недостаточно знать команды, нужно предварительно построить чертеж в координатной сетке, чтобы понимать, куда и зачем будет передвинут режущий инструмент.

Самоучители для начинающих по основам программирования станков с ЧПУ

принципы написания задачи g кодов в программе

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

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

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

Источник

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

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