Что означает кадр м98 р1000 l4

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

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

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

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

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

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

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

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

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

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

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

Источник

G-код G65, M98 и M99: подпрограмма и макрос для станка с ЧПУ

Что означает кадр м98 р1000 l4

Чтобы сделать g-код удобным для повторного использования, нам нужен способ централизовать его, а затем получить к нему доступ из программы детали. Язык G-Code предоставляет для этого два разных метода: подпрограмма и макрос. Думайте о каждом как о способе доступа к коду, который хранится в отдельной небольшой мини-программе. Вы «вызываете» этот код, он делает свое дело, а затем он «возвращается» в вашу основную программу, чтобы продолжить выполнение сразу после вызова.

Если у вас есть большая библиотека мощных сниппетов, у вас есть потенциал для реального повышения производительности. Даже если вы не пытаетесь повторно использовать код, использование вызовов может сделать ваш существующий код намного меньше и более легким для понимания. Рассмотрим процесс фрезерования кармана путем перехода на несколько уровней ниже и обработки той же траектории. Зачем повторять один и тот же путь для каждого уровня? GibbsCAM генерирует g-код, который генерирует путь для уровня один раз в качестве подпрограммы, а затем вызывает его несколько раз после установки z-уровня каждый раз глубже. Подходит для программ гораздо меньшего размера. Довольно крутой трюк!

G-коды M98 и M99: вызовы подпрограмм

Давайте начнем с вызовов подпрограмм, потому что они немного проще для понимания, чем вызовы макросов, хотя и менее эффективны. Вызов подпрограммы довольно прост. Сначала вставьте g-код подпрограммы под ее собственным номером подпрограммы — ее собственным номером «O». Ваша программа может выглядеть так:

Как видите, основная программа и подпрограмма имеют свой собственный номер «O». Вызов подпрограммы — «M98», который принимает параметр, сообщающий ему номер «O», где можно найти подпрограмму. Когда он достигает M98, выполнение переходит к подпрограмме. Когда он достигает «M99» в подпрограмме, это заставляет его вернуться в основную программу с того места, где она остановилась, и продолжить работу.

Подпрограмма. Синтаксис вызова

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

Хотя существует множество разных стилей, в основном они просто немного по-разному говорят об одном и том же:

— Где мне найти подпрограмму? Чаще всего буква «P», обозначающее адрес. Этот адрес обычно представляет собой букву «O», но многие контроллеры имеют возможность искать «N», если O # не найдено.

— А как насчет повторения? Часто бывает удобно закодировать повтор подпрограммы в той же строке, используя другую букву. Например, «L» может указывать, сколько раз вызывать подпрограмму, прежде чем, наконец, перейти к следующей строке.

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

— G-код G65 — это вызов макроса, а G-код M98 — вызов подпрограммы.

— Некоторые контроллеры позволяют G-коду M99 возвращаться к определенной строке вместо того, чтобы просто возвращаться туда, где была вызвана подпрограмма. Я не считаю это хорошей практикой, потому что это сбивает с толку. Если вы хотите «перейти» к строке, для этого есть макрос «GOTO», но он есть не у всех контроллеров.

Вот об этом. Не так уж и плохо. А пока просто сосредоточьтесь на вызове подпрограмм и возвращении из них.

Особенности специальной подпрограммы Haas

Производители контроллеров нередко имеют свои собственные функции «Special Sauce», которые делают их контроллер особенным. То же самое и с локальной подпрограммой Haas, M97. M97 — это быстрая подпрограмма, потому что вам не нужно беспокоиться о настройке чисел «O». Вы можете просто вызвать любой номер «N» с помощью M97 и «пуф», это подпрограмма. Это удобно, хотя у других контроллеров есть возможность искать букву «N», если буква «O» отсутствует, что немного ослабляет паруса быстроходного M97.

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

M97 включен в GWE по умолчанию. Если ваш контроллер не поддерживает его, перейдите в раздел «Настройка G / M-кодов» и отключите M97.

Макрос-вызовы или подпрограмма

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

Макро-вызовы инициируются с помощью G-кода G65 вместо G-кода M98 (или G-кода M97 на Haas). Макро-вызовы имеют так называемые «аргументы». Аргументы позволяют использовать формат словесного адреса для отправки информации в макрос. Допустим, у нас есть специальный цикл сверления глубоких отверстий, который мы создали. Мы хотим передать ему координаты X и Y, где необходимо отверстие, а также координату Z, указывающую глубину сверления. С пользовательским вызовом подпрограммы это может выглядеть так:

Как видите, мы загрузили X, Y и Z в локальные переменные. Подпрограмма знает, какие локальные переменные содержат какую информацию, и может продолжить свою работу после получения этих значений. Вот как это может выглядеть при вызове макроса:

Это намного легче для глаз, не так ли? И запомнить тоже легче. Как макрос получает доступ к X, Y и Z?

АргументЛокальная переменная
А# 1
B# 2
C# 3
D# 7
E# 8
F№9
H# 11
I# 4
J# 5
K№6
M# 13
Q# 17
P# 18
S# 19
Т# 20
U# 21
V# 22
W# 23
X# 24
Y# 25
Z# 26

Аргументы и в какую локальную переменную они передаются

Как видите, каждое возможное слово-аргумент имеет предварительно назначенную локальную переменную. Если вы используете X, Y и Z, как в нашем примере, их значения будут перенесены в # 24, # 25 и # 26. Довольно прост в использовании и очень удобен.

А что насчет этих уровней?

Как мы уже упоминали выше, подпрограммы и макросы могут быть вложенными. Одина может вызывать другую. Каждый раз, когда вызывается макрос, его локальные переменные сохраняются на уровне. Таким образом, когда выполнение вернется к этому макросу, локальные переменные будут сохранены на уровне, и их можно будет восстановить без изменений. Несмотря на то, что другие вызовы макросов могут использовать те же аргументы слов, которые отображаются на одни и те же локальные переменные, у них есть собственная копия этих локальных переменных на их собственном уровне, поэтому они не мешают. На практике, чтобы объяснить, что происходит с уровнями, требуется больше времени, чем просто использовать аргументы макроса и не беспокоиться о том, не перезаписывается ли локальная переменная другим макросом — это не так.

Но, и это важное «но», оно может быть перезаписано вызовом подпрограммы. Ответ — просто прекратить использование вызовов подпрограмм, когда у вас есть макросы, или, по крайней мере, использовать переменные вне диапазона локальных переменных и понять, что они могут быть перезаписаны.

Примечание: многие контроллеры не имеют макросов.

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

Номера макросов и подпрограмм «O»

Первое, что нужно знать, это то, что числа «O» не должны появляться в каком-либо определенном порядке в вашем программном файле — они просто должны быть уникальными. У вас не может быть двух записей «O1000».

Во-вторых, следует отметить, что на некоторых контроллерах можно обеспечить защиту для некоторых диапазонов чисел О. Это позволяет размещать на машине стандартные макросы, которые невозможно подделать. Например, возможно, вы вложили большие средства в набор пробных макросов и не хотите, чтобы они менялись или перезаписывались. Вам нужно будет проконсультироваться с руководством к вашему контроллеру, чтобы узнать, предлагает ли он защиту, и если да, то как она работает. А пока просто предположим, что у защищенных макросов числа «O» находятся в верхнем диапазоне. Для Fanuc от O0001 до O7999 не защищены, и именно там вы должны разместить свои макросы.

Совет по преобразованию обычного G-кода в подпрограмму или макрос

Я собираюсь завершить это обсуждение советом, который поможет вам преобразовать ваш «обычный» g-код в подпрограмму или макрос.

Допустим, у вас есть g-код, который делает что-то полезное. Возможно, на нем выгравирован ваш логотип на детали. Вы сгенерировали его с помощью своего программного обеспечения CAM, и теперь вы хотите иметь подпрограмму, которая будет выгравировать логотип в любой выбранной вами координате XY. Какой самый быстрый и простой способ сделать это?

Я бы посоветовал преобразовать g-код логотипа для использования относительных координат. Кстати, в G-Wizard Editor есть команда, которая упрощает это — всего несколько шагов. В главе, посвященной кодам G91 и G90, в которой описывается, как относительные и абсолютные координаты работают в ЧПУ.

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

Заключение

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

Источник

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

Программирование обработки на станках с ЧПУ осуществляется на языке, который обычно называют языком ISO 7 бит или языком G и M кодов. Язык G и М кодов основывается на положениях Международной организации по стандартизации (ISO) и Ассоциации электронной промышленности (EIA).

Что означает кадр м98 р1000 l4

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

Японские системы ЧПУ FANUC (FANUC CORPORATION) были одними из первых, адаптированных под работу с G и М кодами и использующими этот стандарт наиболее полно. В настоящее время стойки FANUC являются наиболее распространенными как за рубежом, так и в России.

Системы ЧПУ других известных производителей, например SINUMERIK (SIEMENS AG) и HEIDENHAIN, также имеют возможности по работе с G и М кодами, однако некоторые специфические коды могут отличаться. О разнице в программировании специфических функций можно узнать из документации к конкретной системе ЧПУ.

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

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

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

Программирование при помощи 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 коды для ЧПУ

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

Функция G01 используется для выполнения прямолинейных перемещений с заданной скоростью (F). При программировании задаются координаты конечной точки в абсолютных значениях (G90) или приращениях (G91) с соответственными адресами перемещений (например X, Y, Z). Код G01 отменяется кодами: G00, G02, G03.

Функция G02 предназначена для выполнения перемещения инструмента по дуге (окружности) в направлении часовой стрелки с заданной скоростью (F). При программировании задаются координаты конечной точки в абсолютных значениях (G90) или приращениях (G91) с соответственными адресами перемещений (например X, Y, Z).

Параметры интерполяции I, J, K, которые определяют координаты центра дуги окружности в выбранной плоскости, программируются в приращениях от начальной точки к центру окружности, в направлениях, параллельных осям X, Y, Z соответственно.

Код G02 отменяется кодами: G00, G01, G03.

Функция G03 предназначена для выполнения перемещения инструмента по дуге (окружности) в направлении против часовой стрелки с заданной скоростью (F). При программировании задаются координаты конечной точки в абсолютных значениях (G90) или приращениях (G91) с соответственными адресами перемещений (например X, Y, Z).

Параметры интерполяции I, J, K, которые определяют координаты центра дуги окружности в выбранной плоскости, программируются в приращениях от начальной точки к центру окружности, в направлениях, параллельных осям X, Y, Z соответственно.

Код G03 отменяется кодами: G00, G01, G02.

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

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

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

Функция G40 отменяет действие автоматической коррекции на радиус инструмента G41 и G42.

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

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

Функция G43 применяется для компенсации длинны инструмента. Программируется вместе с функцией инструмента (H).

Смещение рабочей системы координат детали относительно системы координат станка.

Функция G70 активизирует режим работы с дюймовыми данными.

Функция G71 активизирует режим работы с метрическими данными.

Функция, которая отменяет любой постоянный цикл.

Цикл G81 предназначен для зацентровки и сверления отверстий. Движение в процессе обработки происходит на рабочей подаче. Движение в исходное положение после обработки идет на ускоренной подаче.

Цикл G82 предназначен для сверления и зенкования отверстий. Движение в процессе обработки происходит на рабочей подаче с паузой в конце. Движение в исходное положение после обработки идет на ускоренной подаче.

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

Цикл G84 предназначен для нарезания резьбы метчиком. Движение в процессе обработки происходит на рабочей подаче, шпиндель вращается в заданном направлении. Движение в исходное положение после обработки идет на рабочей подаче с обратным вращением шпинделя.

Цикл G85 предназначен для развертывания и растачивания отверстий. Движение в процессе обработки происходит на рабочей подаче. Движение в исходное положение после обработки идет на рабочей подаче.

Цикл G86 предназначен для растачивания отверстий. Движение в процессе обработки происходит на рабочей подаче. В конце обработки происходит остановка шпинделя. Движение в исходное положение после обработки идет на ускоренной подаче.

Цикл G87 предназначен для растачивания отверстий. Движение в процессе обработки происходит на рабочей подаче. В конце обработки происходит остановка шпинделя. Движение в исходное положение после обработки идет вручную.

В режиме абсолютного позиционирования G90 перемещения исполнительных органов производятся относительно нулевой точки рабочей системы координат G54-G59 (программируется, куда должен двигаться инструмент). Код G90 отменяется при помощи кода относительного позиционирования G91.

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

При помощи функции G94 указанная скорость подачи устанавливается в дюймах или в миллиметрах за 1 минуту. Программируется вместе с функцией подачи (F). Код G94 отменяется кодом G95.

При помощи функции G95 указанная скорость подачи устанавливается в дюймах или в миллиметрах на 1 оборот шпинделя. Т.е. скорость подачи F синхронизируется со скоростью вращения шпинделя S. Код G95 отменяется кодом G94.

M коды для ЧПУ

Когда СЧПУ исполняет команду М00, то происходит останов. Все осевые перемещения останавливаются, при этом шпиндель (у большинства станков) продолжает вращаться. Работа по программе возобновляется со следующего кадра после нажатия кнопки «Старт».

Код М01 действует аналогично М00, но выполняется только после подтверждения с пульта управления станка. Если клавиша подтверждения нажата, то при чтении кадра с М01 происходит останов. Если же клавиша не нажата, то кадр М01 пропускается и выполнение УП не прерывается.

Код М02 указывает на завершение программы и приводит к останову шпинделя, подачи и выключению охлаждения.

При помощи кода М0З включается прямое вращение шпинделя с запрограммированным числом оборотов (S). Код М0З действует до тех пор, пока он не будет отменен с помощью М04 или М05.

При помощи кода М04 включается обратное вращение шпинделя с запрограммированным числом оборотов (S). Код М04 действует до тех пор, пока он не будет отменен с помощью М03 или М05.

Код М05 останавливает вращение шпинделя, но не останавливает осевые перемещения.

При помощи кода М06 инструмент, закрепленный в шпинделе, меняется на инструмент, находящийся в положении готовности в магазине инструментов.

Код М07 включает подачу СОЖ в зону обработки в распыленном виде, если станок обладает такой возможностью.

Код М08 включает подачу СОЖ в зону обработки в виде струи.

Код М09 выключает подачу СОЖ и отменяет команды М07 и М08.

Код М10 относиться к работе с зажимным приспособлением подвижных органов станка.

Код М11 относиться к работе с зажимным приспособлением подвижных органов станка.

Код МЗ0 информирует СЧПУ о завершении программы, приводит к останову шпинделя, подачи и выключению охлаждения.

Дополнительные функции и символы при программировании станков с ЧПУ

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

Источник

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

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