Главная страница
Навигация по странице:

  • История языка

  • Написание программы вручную или в текстовом редакторе ПК.

  • Составление и ввод программы на стойке ЧПУ.

  • Использование возможностей CAD и CAM систем

  • Структура программы

  • Возможность указания параметров :G-код позволяет использовать следующие основные параметры для управляющих команд:X

  • Пример использования: G0 F300

  • G4 P2000

  • G-коды. История, описание, применение. Gкод


    Скачать 25.63 Kb.
    НазваниеGкод
    АнкорG-коды. История, описание, применение
    Дата17.03.2022
    Размер25.63 Kb.
    Формат файлаdocx
    Имя файлаG-коды. История, описание, применение.docx
    ТипПрограмма
    #400772


    Введение

    Производители систем УЧПУ (CNC), как правило, используют ПО управления станком, для которого написана (оператором) программа обработки в качестве осмысленных команд управления, используется G-код в качестве базового подмножества языка программирования, расширяя его по своему усмотрению. G-код — условное именование языка программирования устройств с числовым программным управлением (ЧПУ). Был создан компанией Electronic Industries Alliance в начале 1960-х. Окончательная доработка была одобрена в феврале 1980 года как стандарт RS274D. Также это стандартный язык, используемый многими моделями 3D-принтеров для управления процессом печати. Файлы GCODE могут быть открыты с помощью различных программ 3D-печати, например, Simplify3D, GCode Viewer, а также с помощью текстового редактора, поскольку их содержимое представляет собой обычный текст.

    История языка

    Первая реализация языка программирования с числовым программным управлением была разработана в MIT Лаборатория сервомеханизмов в конце 1950-х. За прошедшие десятилетия многие организации (коммерческие и некоммерческие) разработали множество реализаций. В этих реализациях часто использовался G-код. Основная стандартизированная версия, используемая в Соединенных Штатах, была утверждена Electronic Industries Alliance в начале 1960-х годов. Окончательная версия была утверждена в феврале 1980 года как RS-274-D. В других странах часто используется стандарт ISO 6983, но многие европейские страны используют другие стандарты. Например, DIN 66025 используется в Германии, а PN-73M-55256 и PN-93 / M-55251 ранее использовались в Польше. Расширения и вариации были добавлены независимо производителями устройств управления и производителями станков, и операторы конкретного контроллера должны знать о различиях продуктов каждого производителя. Одна стандартизированная версия G-кода, известная как BCL (Binary Cutter Language), используется только на очень небольшом количестве машин. BCL, разработанный в Массачусетском технологическом институте, был разработан для управления станками с ЧПУ с точки зрения прямых линий и дуг. В период с 1970-х по 1990-е годы многие производители станков с ЧПУ пытались преодолеть трудности совместимости путем стандартизации контроллеров станков, созданных Фанук, Siemens был еще одним лидером на рынке систем ЧПУ, особенно в Европе. В 2010-х годах различия и несовместимость контроллеров не так опасны, потому что операции обработки обычно разрабатываются с помощью приложений CAD / CAM, которые могут выводить соответствующий G-код для конкретной машины с помощью программного инструмента, называемого постпроцессором. Некоторые станки с ЧПУ используют «диалоговое» программирование, которое представляет собой режим программирования, подобный мастеру, который либо скрывает G-код, либо полностью игнорирует использование G-кода. Некоторыми популярными примерами являются Advanced One Touch (AOT) Okuma, ProtoTRAK Southwestern Industries, Mazatrol Mazak, Ultimax и Winmax Hurco, система интуитивного программирования (IPS) Haas и диалоговое программное обеспечение CAPS от Mori Seiki.

    G-код начинался как ограниченный язык, в котором отсутствовали такие конструкции, как циклы, условные операторы и объявленные программистом переменные с естественными -слово-содержащими именами (или выражениями, в которых можно было использовать их). Он не мог закодировать логику, но был просто способом «соединить точки», когда программист от руки вычислял расположение многих точек. Последние реализации G-кода включают возможности макроязыка, несколько более близкие к языку программирования высокого уровня . Кроме того, все основные производители (например, Fanuc, Siemens, Heidenhain) предоставляют доступ к данным ПЛК, таким как данные позиционирования осей и данные инструмента, через переменные, используемые программами ЧПУ. Эти конструкции упрощают разработку приложений автоматизации. Среда программирования G-кода развивалась параллельно со средами общего программирования - от самых ранних сред (например, написание программы карандашом, ввод ее в перфоратор) до новейшие среды, сочетающие CAD (компьютерное проектирование), CAM (автоматизированное производство) и многофункциональные редакторы G-кода. (Редакторы G-кода аналогичны использованию цветов и отступов семантически [плюс другие функции], чтобы помочь пользователю способами, которые базовые не могут. Пакеты CAM аналогичны IDE в общем программировании.) Две смены парадигмы высокого уровня: отказ от «ручного программирования» (без использования только карандаша или текстового редактора и человеческого разума) для программного обеспечения CAM систем, которые автоматически генерируют G-код через постпроцессоры (аналогично развитию визуальных техник в общем программировании) и отказ от жестко запрограммированных конструкций в пользу параметрических (аналогично разнице в общем программировании между жестким кодированием константы в уравнение и объявлением ее как переменная и присвоение ей новых значений по желанию; а также для объектно-ориентированного подхода в целом). Макро (параметрическое) программирование с ЧПУ использует понятные человеку имена переменных, реляционные операторы и структуры циклов, как и в общем программировании, для сбора информации и логики с машиночитаемой семантикой. В то время как старое ручное программирование с ЧПУ могло описывать только отдельные экземпляры деталей в числовой форме, макропрограммирование описывает абстракции, которые можно легко применить в самых разных случаях. У этой разницы есть много аналогов, как до эпохи вычислений, так и после ее появления, например, создание текста в виде растровых изображений по сравнению с использованием кодировки символов с глифами; уровень абстракции табличных, технических чертежей с множеством номеров деталей, параметрически определяемых одним и тем же чертежом и таблицей параметров; или способ, которым HTML прошел стадию использования разметки контента для целей презентации, а затем превратился в модель CSS. Во всех этих случаях более высокий уровень абстракции вводил то, чего не хватало семантически. STEP-NC отражает ту же тему, которую можно рассматривать как еще один шаг на пути, начавшемся с разработки станков, приспособлений и приспособлений, а также числового управления, которые все стремились «развить навыки в инструмент ". Последние разработки G-кода и STEP-NC направлены на встраивание информации и семантики в инструмент. Эта идея не нова, с самого начала численного управления концепция сквозной среды CAD / CAM была целью таких ранних технологий, как DAC-1 и APT. Эти усилия устраивали такие огромные корпорации, как GM и Boeing. Однако малые и средние предприятия пережили эпоху более простых реализаций ЧПУ, с относительно примитивным G-кодом «соединяем точки» и ручным программированием, пока CAD / CAM не улучшились и не стали распространяться по всей отрасли. Любой станок с большим количеством осей, шпинделей и инструментальных станций трудно правильно программировать вручную. Это делалось годами, но нелегко. Эта проблема существовала на протяжении десятилетий в программировании винтовых станков с ЧПУ и вращательного переноса, а теперь она также возникает и с современными новейшими обрабатывающими центрами, называемыми «токарно-фрезерные станки», «токарно-фрезерные станки», «многозадачные станки» и «многофункциональные станки». Теперь, когда системы CAD / CAM широко используются, программирование ЧПУ (например, с помощью G-кода) требует, чтобы CAD / CAM (в отличие от ручного программирования) был практичным и конкурентоспособным в рыночных сегментах этих классов станков. обслуживать. Однако в то же время программисты по-прежнему должны досконально понимать принципы ручного программирования и должны критически мыслить и пересматривать некоторые аспекты решений программного обеспечения.

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

    Написание программы вручную или в текстовом редакторе ПК. 

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

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

    • Использование возможностей CAD и CAM систем

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

    Структура программы

    Программа, написанная с использованием G-кода, имеет жёсткую структуру. Все команды управления объединяются в кадры — группы, состоящие из одной или более команд. Кадр завершается символом перевода строки (CR/LF) и может необязательно иметь явно указанный номер, начинающийся с буквы N, за исключением первого кадра программы и комментариев. Этот номер является по сути меткой кадра и необязательно должен нарастать в программе или представлять собой последовательные целые числа, важно, чтобы номер не повторялся в пределах программы. В большинстве современных интерпретаторов кода допустимо использовать в коде программы строчные и прописные буквы, как в примере. Пробелы в строке кадра игнорируются, поэтому допустимо слитное написание команд кадра. Первый (а в некоторых случаях ещё и последний) кадр содержит только один необязательный знак <%>. Завершается программа командами M02 или M30. Комментарии к программе размещаются в круглых скобках. Комментарий может располагаться как в отдельной строке, так и в любом месте кадра среди команд. Недопустимо оформлять в качестве комментария несколько строк, охваченных парой круглых скобок.

    Элементарные команды в каждом кадре выполняются одновременно, поэтому порядок команд в кадре строго не оговаривается, но традиционно предполагается, что первыми указываются подготовительные команды (например, выбор плоскости круговой интерполяции, скоростей перемещений по осям и др.), затем задание координат перемещения, затем выбора режимов обработки и технологические команды. Традиционно, когда описывают синтаксис G-code, говорят, что любая команда в программе начинается с буквы G для «подготовительных» кодов и M — для дополнительных, что номер строки начинается с буквы N, а номер программы или подпрограммы — с буквы O. Это, в принципе, правда, но не вся и не всегда.
    Во-первых, деление на G- и M-коды — условно. Раньше, во времена первых станков с ЧПУ, это имело практическое значение, потому что связь синтаксиса с аппаратной реализацией была жестче. Сейчас же, это деление практически потеряло свое значение. Однако, правило о том, что M-код может быть только один на строке, все же стоит выполнять, как в старые времена, потому что никогда не знаешь точно, на сколько вольно производитель контроллера станка обошелся с реализацией языка. Например, на станках DMG Mori, автоматическое измерение длины инструмента, установленного в шпинделе, выполняется кодом G324, но если вы просто хотите активировать измерительный сенсор для того, чтобы почистить его (при этом крышка, под которой он скрыт во время обычной работы, открывается, и он выдвигается, но измерение не происходит), вам нужно выполнить код M44. По классической логике языка, использование G-кода для измерения длины — нестандартное решение, потому что вы явно не хотите, чтобы одновременно с этим (одной строкой кода) выполнялись какие-то еще действия. Но в современных реалиях это не имеет значения. На станках Haas та же операция измерения делается вообще запуском специальной подпрограммы с параметрами (тип и номер инструмента), а не одним кодом. Плюс, практически любой контроллер позволяет определять пользовательские G- или M-коды, полностью стирая различие между ними.


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

    В G-code есть условный и безусловный переход по команде GOTO. Синтаксис адреса (аргумента) этой команды может различаться. Чаще всего, это число, соответствующее номеру строки, заданному на самой строке, как N число. Но некоторые реализации языка, например — синтаксис контроллеров Okuma, позволяют давать строкам буквенные метки. С одной стороны, это хорошо, а с другой — нетипично, что смущает некоторых программистов и операторов.

    Условный переход выполняется традиционным IF THEN команда. Конструкция ELSE в языке не нужна, потому что если условие — ложно, команда на этой строке не будет выполнена, а будет выполнен переход на следующую строку. Это важно понимать, потому что ошибка с тем, чтобы поместить команду, которая должна быть выполнена только если условие истинно, на следующую строку — одна из самых распространенных в «ручном» программировании. Вероятно, это случается с неопытными программистами, которые до этого привыкли к синтаксису языков высокого уровня. В некоторых реализациях не обязательно и THEN, что добавляет краткости, но не добавляет читаемости.

    Максимальное число элементарных команд и заданий координат в одном кадре зависит от конкретного интерпретатора языка управления станками, но для большинства популярных интерпретаторов (стоек управления) не превышает 6. Существуют так называемые модальные и немодальные команды. Модальные команды изменяют некоторый параметр/настройку и эта настройка действует на все далее исполняемые кадры программы до их смены очередной модальной командой либо её отмены. К модальным командам, например, относятся скорости перемещения инструмента, управления скоростью шпинделя, подачи смазочно-охлаждающей жидкости (СОЖ) и др. Немодальные команды действуют только внутри их содержащего кадра. К немодальным командам относятся, например, команды разгона и торможения шпинделя.

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

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

    G-код позволяет использовать следующие основные параметры для управляющих команд:

    X - координата точки траектории по оси X (например, G00 X25.4 Y2.3),

    Y - координата точки траектории по оси Y (например, G01 X25.4 Y2.3 Z0.2),

    Z - координата точки траектории по оси Z (например, G01 X25.4 Y2.3 Z0.2),

    P - параметр команды G04 (например, P120),

    F - скорость рабочей подачи (например, G01 X10.5 F75),

    S - скорость вращения шпинделя (например, S1500 M3),

    R - параметр стандартного цикла или радиус дуги,

    H - параметр коррекции выбранного инструмента,

    I,J,K - параметры дуги при круговой интерполяции (например, G03 X5 Y5 I0 J0).

    Список основных G-кодов:

    G00 - Быстрое перемещение

    G01 - Линейная интерполяция, по час. стр.

    G02 - Круговая интерполяция, по час. стр.

    G03 - Круговая интерполяция, против час. стр.

    G33 - Нарезание резьбы

    G54-59 - Установка системы координат детали 1

    G73 - Многопроходное сверление

    G94 - Подача в минуту

    G95 - Подача на оборот

    G96 - Контроль постоянной скорости резания

    Пример использования:

    G0 F300 (задание скорости холостого перемещения инструмента в мм/мин)

    M3 S500 (включение вращения шпинделя по часовой стрелке и задание его скорости вращения 500 об/мин)

    G4 P2000 (выдержка 2 секунды для раскрутки шпинделя)

    X0 Y30 Z5 (подвод инструмента в точку с координатами X=0 Y=30 Z=5 со скоростью холостого перемещения)

    G1 Z-2 F40 (врезание в заготовку на глубину 2 мм со скоростью 40 мм/мин)

    Список литературы:

    1. https://www.intuwiz.ru/articles/g-code.html

    2. https://habr.com/ru/post/472206/

    3. https://3d-stanki.ru/spravochnik/programmnoe-obespechenie-dlya-stankov-s-chpu/opisanie-g-i-m-kodov-dlya-programmirovaniya-chpu-cnc-stankov-2/

    4. https://3deshnik.ru/wiki/index.php/G-%D0%BA%D0%BE%D0%B4%D1%8B

    5. https://www.haascnc.com/ru/video/tipoftheday/imx_uyrvuos.html


    написать администратору сайта