для чего используется код м99
Подпрограмма
Язык G- и М-кодов, как и любой другой язык программирования, позволяет работать с подпрограммами и совершать переходы. Посредством функции подпрограммы основная (главная) управляющая программа может вызывать из памяти другую программу (подпрограмму) и выполнить ее определенное число раз. Если УП содержит часто повторяемое действие или работает по определенному шаблону, то использование подпрограмм позволяет упростить программу обработки и сделать ее гораздо меньшей в размере.
Существуют два вида подпрограмм – внутренние и внешние. Внутренние подпрограммы вызываются при помощи кода М97 и содержатся внутри главной программы. То есть они находятся в одном файле. Внешние подпрограммы вызываются кодом М98 и не содержатся в теле главной программы. В этом случае главная программа и подпрограмма находятся в разных файлах.
Рис. 10.1. Схема внутренней подпрограммы
Внутренняя подпрограмма выполняется, когда СЧПУ встречает код М97. При этом адрес Р указывает на номер кадра, к которому нужно перейти, то есть туда, где начинается внутренняя подпрограмма. Когда СЧПУ находит кадр с кодом окончания подпрограммы М99, то выполнение внутренней подпрограммызавершается и управление передается кадру главной программы, следующему за кадром, вызвавшим завершенную подпрограмму.
Рис. 10.2. Схема внешней подпрограммы
Внешние подпрограммы работают похожим образом. Когда в главной программе встречается кадр с кодом М98, то вызывается подпрограмма с номером, установленным при помощи Р-адреса. При нахождении кода М99 управление возвращается главной программе, то есть выполняется кадр главной программы, следующий за кадром с М98. Учтите, что внешняя подпрограмма находится в отдельном файле. По сути, внешняя подпрограмма – это отдельная программа с индивидуальным номером, которая при желании может быть выполнена независимо от главной программы. Для вызова подпрограммы необходимо, чтобы она находилась в памяти СЧПУ.
Пример УП с внутренней подпрограммой:
При помощи L-адреса определяется, сколько раз нужно вызвать ту или иную подпрограмму. Если подпрограмму нужно вызвать всего один раз, то L в кадре можно не указывать.
М98 Р1000 L4 – подпрограмма будет вызвана 4 раза.
Большим преимуществом от использования подпрограмм является возможность удобной и эффективной работы с программными массивами и шаблонами. Например, для обработки детали, изображенной на рис. 11.3, мы создадим главную программу и подпрограмму, и вы увидите, насколько удобнее и проще будет работать в этом случае.
Итак, на рис. 10.3 изображена деталь с 4 группами отверстий диаметром 3 мм. Нулевой точкой является верхний левый угол детали. Сначала создадим главную программу, которая будет позиционировать инструмент к каждой группе отверстий. Затем напишем подпрограмму, необходимую для сверления 4 отверстий в одной группе. Учтите, что в подпрограмме используются относительные координаты, а смена инструмента и основные команды находятся в главной программе.
Рис. 10.3. Использование подпрограмм при обработке повторяющихся элементов позволяет уменьшить размер программы
Главная программа | Пояснение |
---|
Подпрограмма | Пояснение |
---|
Обе эти программы необходимо передать в СЧПУ, оператор станка должен вызвать программу О0001 и запустить ее. Главная программа работает с абсолютными координатами и перемещает инструмент последовательно в центр каждой из четырех групп отверстий. Когда СЧПУ встречает кадр с М98 Р1000, то происходит передача управления подпрограмме с номером 01000. В этот момент инструмент уже находится в центре группы отверстий. Переключаемся в режим относительного (инкрементального) программирования и используем постоянный цикл сверления. После завершения сверления четырех отверстий одной группы выключаем цикл сверления командой G80 и переходим в режим абсолютных координат G90, для того чтобы правильно выполнить позиционирование в главной программе. Код М99 передает управление кадру главной программы, который следует за кадром, вызвавшим эту подпрограмму. Затем инструмент перемещается в центр следующей группы отверстий, и снова вызывается подпрограмма 01000. И так далее, пока не просверлим все отверстия и СЧПУ не прочтет код завершения программы М30.
Если бы мы создавали обычную программу обработки, то ее размер был бы значительно больше, так как пришлось бы указывать координаты всех 16 отверстий. Работая в таком формате, легче производить изменения. Например, если изменится диаметр окружности, на которой находятся отверстия группы, то в случае работы с подпрограммой достаточно пересчитать координаты центров четырех отверстий только в подпрограмме.
Из главной программы можно вызвать несколько различных подпрограмм. Более того, из каждой подпрограммы можно вызвать несколько других подпрограмм. Системы ЧПУ могут накладывать ограничения на вложенность и количество выполняемых подпрограмм, поэтому внимательно прочитайте документацию станка и стойки, прежде чем начнете работать с подпрограммами.
М-коды
М00 – запрограммированный останов. Когда СЧПУ исполняет команду М00, то происходит так называемый запрограммированный останов. Все осевые перемещения останавливаются и возобновляются лишь после того, как оператор станка нажмет клавишу Старт цикла на панели УЧПУ. При этом шпиндель продолжает вращаться (у большинства станков) и другие функции остаются активными. Если оператор станка нажимает клавишу Старт цикла, то выполнение программы будет продолжено с кадра, следующего за М00.
М01 – останов по выбору. Код М01 предназначен для останова по выбору. Действует он аналогично коду М00, однако предоставляет выбор оператору – нужно или не нужно прерывать выполнение управляющей программы. На панели УЧПУ практически любого станка имеется клавиша (или переключатель) М01. Если эта клавиша нажата, то при чтении кадра с М01 происходит останов. Если же клавиша не нажата, то кадр М01 пропускается и выполнение УП не прерывается.
М02 – конец программы. Код М02 информирует СЧПУ о завершении программы.
М03 – прямое вращение шпинделя. При помощи кода М03 включается прямое (по часовой стрелке) вращение шпинделя с запрограммированным числом оборотов (S-слово). Команда М03 остается действующей до тех пор, пока она не будет отменена с помощью М04 или М05.
М04 – обратное вращение шпинделя. При помощи кода М04 включается обратное (против часовой стрелки) вращение шпинделя с запрограммированным числом оборотов (S-слово). Команда М04 остается действующей до тех пор, пока она не будет отменена с помощью М03 или М05.
М05 – останов шпинделя. Команда М05 останавливает вращение шпинделя, но не останавливает осевые перемещения (за исключением режима G95).
М06 – автоматическая смена инструмента. При помощи команды М06 инструмент, закрепленный в шпинделе, меняется на инструмент, находящийся в положении готовности в магазине инструментов.
М07 – включение подачи СОЖ в распыленном виде. Команда М07 включает подачу СОЖ в зону обработки в распыленном виде, если станок обладает такой возможностью.
М08 – включение подачи СОЖ. Команда М08 включает подачу СОЖ в зону обработки в виде струи.
М09 – выключение подачи СОЖ. Команда М09 выключает подачу СОЖ и отменяет команды М07 и М08.
М19 – юстировка шпинделя. При помощи команды M19 осуществляется радиальная юстировка шпинделя (поворот в определенное положение), чтобы выставить приводной носик шпинделя на позицию смены инструмента. В этом положении шпиндель обычно зажимается и его не провернуть рукой.
М20 – отмена юстировки шпинделя. При помощи команды М20 отменяется команда юстировки шпинделя М19.
М30 – конец программы. Код М30 информирует СЧПУ о завершении программы.
М98 – вызов подпрограммы. Команда М98 предназначена для вызова подпрограммы. Вместе с этой командой программируется Р-слово данных, которое обозначает номер вызываемой подпрограммы.
Пример:
М98 Р1001 – вызвать подпрограмму О1001.
М99 – конец подпрограммы. При помощи команды М99 по окончании подпрограммы осуществляется возврат к главной программе, из которой была вызвана подпрограмма.
Описание 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- и M-коды для станков с ЧПУ – просто о сложном
Станочные комплексы с CNC используют для работы множество ПО. Однако руководить оборудованием можно с помощью одного и того же управляющего кода. Это буквенно-цифровой язык ISO 7-bit. Основывается на международных стандартах ISO и EIA.
Что такое G- и M-функции для CNC?
Большинство изготовителей систем ЧПУ описывают основные параметры с помощью стандартов ISO, но часто в своем оборудовании отступают от правил, чтобы расширить возможности систем.
Японские компании в своих системах ЧПУ FANUC широко раскрывают потенциал использования G- и М-кодов. Их оборудование одним из первых заработало на языке ISO 7-bit. Сейчас это самые распространенные пульты в мире.
G-коды настраивают СЧПУ на определенное действие. М-коды – вспомогательные, управляют режимами работы оборудования. Чтобы инструмент двигался по прямой траектории, вносится команда G01. А если необходимо заменить рабочий орган, используется код М06.
G- и M-коды для программирования станков с ЧПУ – что это?
Настройки оборудования с CNC пишутся на различных языках, но набора основных G- и М-команд достаточно, чтобы создать УП.
G-code (NC-код)
G-функция – язык программирования, осуществляет подготовительные функции для работы станка по управлению осевым перемещением инструмента.
«ИСО 7-бит» создан компанией EIA в 60-х гг. прошлого столетия, а доработан спустя 20 лет. G-код утвержден как стандарт ISO 6983-1:2009, в СССР – как ГОСТ 20999-83. Код записывает информацию на восьмидорожечной перфоленте и кодирует 128 символов.
Справка: многие производители дорабатывают код по-своему, и отличия от базового можно посмотреть в инструкции к конкретной системе управления.
В программе, написанной на языке ISO 7-bit, все команды формируют кадры – совокупности из одной или нескольких команд. Первый кадр состоит из единственного знака – «%». Иногда такой символ стоит и в последнем кадре. Так программа отделяет кадры друг от друга. Остальным присваиваются номера, а оканчиваются они знаком CR/LF – перевод строки. Чтобы завершить программу, вводится команда M02 или M30.
Комментарии пишутся в круглых скобках и несут конкретную информацию:
Примечание: СЧПУ не считывает текст в круглых скобках.
Чаще всего список кодов в кадре начинается с подготовительных. Затем вписываются команды перемещения, выбирается режим работы и технологические коды.
Модальные и немодальные G-коды.
Независимые части основного ПО описываются в промежутке обозначений M02–M30. Сначала идет номер, в конце прописывается M17.
М-code
М-функции — дополнительные коды, на разных станках CNC могут немного отличаться. Эти команды управляют рабочими органами и режимами оборудования с ЧПУ.
Вспомогательные команды используются одиночно или вместе с другими кодами. Когда кадр устанавливает рабочий орган в шпиндель, это выглядит так:
Здесь команда M6 на пульте подразумевает некоторый набор действий, чтобы заменить рабочий орган:
Если М- код включает какое-либо устройство, то обязательно существует его пара, которая выключает:
M8 – M9 – включить/выключить систему охлаждения;
M3 – M5 – включить/выключить обороты шпинделя.
В кадре разрешается использовать несколько М-функций. Для станков с внушительным набором сменных устройств задействуется больше М-кодов в управлении.
Примечание: М-код может вписываться самостоятельно или в кадре с G-кодами.
Вспомогательные команды делятся:
Важно: на разных станках одни и те же команды могут настраиваться на управление другими устройствами.
Таблица G-кодов ЧПУ с расшифровкой
Таблица представляет неполный перечень команд для управления станком, только важные:
Таблица M-кодов ЧПУ с расшифровкой
Вспомогательные команды программного кода маркируются буквой М и выполняют такие действия:
G-функции для станков ЧПУ
Код | Описание кода |
---|---|
Осевое движение | |
G00 | Ускоренный или холостой ход – перемещение на очень высокой скорости в указанную точку. Не используется для выполнения обработки. |
G01 | Линейная интерполяция – смещение по прямой траектории с заданной скоростью подачи. Рабочий ход |
G02 | Круговая интерполяция – перемещение по дуге вправо с запрограммированной скоростью подачи |
G03 | Круговая интерполяция – смещение по кривой влево с заданной скоростью подачи |
Наладка | |
G20 | Ввод дюймовых показателей |
G21 | Ввод метрической информации |
G90 | Абсолютное позиционирование – отсчет всех координат от постоянной нулевой точки |
G91 | Относительное позиционирование – все координаты рассчитываются от предыдущей позиции |
Работа с отверстиями | |
G81 | Фаза сверления |
G82 | Цикл сверления с задержкой на дне отверстия |
G83 | Прерывистый период сверления |
G85 | Режим растачивания отверстия |
До 4 кодов в кадре.
G-code окружности с координатами центра.
G-code для сверления отверстий.
Дополнительные обозначения при программировании станков CNC
Координаты точек движения инструмента в декартовых плоскостях– X, Y, Z.
Смещение вокруг осей X, Y, Z – А, В, С.
Круговая интерполяция параллельно осям координат X, Y, Z – I, J, К.
R – радиус, в повторяющихся периодах – положение плоскости отвода, в команде вращения – угол поворота системы координат.
D – параметр коррекции на радиус рабочего органа.
Н – показатель компенсации длины инструмента.
F – настройка подачи.
S – параметр основного перемещения.
Т – показатель номера инструмента, который требуется поставить на замену поворотом патрона.
N – номерное значение кадров управляющей программы.
/ – пропуск кадра, который не нужно выполнять, ставиться перед кадром.
Семиразрядный код ISO 7-bit – основной для современных отечественных станков CNC. Правила кодирования для станка с конкретным устройством ЧПУ определяются используемым общим кодом, инструкцией по эксплуатации оборудования и руководством по программированию систем ЧПУ.
laufercnc
Подпрограммы, и их вызов из главных программ. |
Всего существует два варианта вызова вспомогательных подпрограмм из основной программы. Если вспомогательная программа необходима для того чтобы вызываться из главной и выполнять какие то постоянные операции, например сверление отверстий, но при этом, данная программа не имеет в себе параметрических функций, логических операторов, переменных значений координат, и других особенностей, используют вызов подпрограммы M98 (subroutines).
Такие программы вызываемые с помощью вспомогательного кода M98 называются подпрограммами (не макропрограммами). Они могут содержать в себе, только некоторые простейшие операции макропрограммирования, такие как, например: присваивание переменой значения, либо присваивание одной переменной значения другой переменной (#100 = 100; #100 = #101). Макропрограммы тоже являются подпрограммами, разница лишь заключается в том, что они могут включать в себя работу с пользовательскими переменными значений, системными переменными. Могут содержать работу с арифметическими операторами, операторами повторения цикла. Если макропрограмма использует локальный тип переменных, в таком случае она также вызывается отдельно из главной подпрограммы кодом G65 в специальном формате ввода данных.
Итак, разберем подробнее два типа программ, из формат вызова из главной управляющей программы, имеется ли возможность написать данные программы и запустить отдельно, не вызывая их как дочерние из главных программ. И в чем все таки разница подпро-грамм (subroutines) и (macroprogrammes).
Подпрограммы – это вспомогательные программы, не содержащие в себе макро-операторов, отдельно записанные на носитель информации в системе ЧПУ как автономная управляющая программа, которая только может быть вызвана из главной управляющей программы вспомогательным кодом M98. Формат ввода кадра вызова подпрограммы –
M98 P0001
— где M98 – вспомогательный код вызова подпрограммы,
— Р0001 – имя вызываемой подпрограммы, заранее записанной на носителе информации в системе ЧПУ.
Как мы видим, в подпрограмме не используются вспомогательные операторы, которых мы не знаем, один и тот же язык ISO-7, те же вспомогательные и подготовительные коды. Единственная разница неспособность данных программ работать автономно, без вызова с главных программ, так как в конце подпрограмм стоит код M99, который выполняет многозначное действие, в данном случае это выход из подпрограммы, и переход в главную программу.
Если все таки, запустить данную программу отдельно на станке в режиме MEM (AUTO) то по окончанию выполнения всех кадров, стойка ЧПУ прочитает последний код подпрограммы как замкнутый цикл, который также создается с помощью вспомогательного кода M98, в данном случае такая программа не остановится никогда, такой ввод является некорректным. Если же оператору станка необходимо запустить данную подпрограмму отдельно от главной программы, то есть автономно, он может перейти в режим редактирования управляющей программы EDIT в системе ЧПУ, и изменить в подпрограмме последнюю строку M99 на M30.
Не трудно догадаться, что максимальное число повторов подпрограммы – равное 9999 раз, и имя программы – от 0001 до 9999. Код вызова такой программы с максимальным количеством повторений будет выглядеть так: M98 P99999999
Для возврата из подпрограммы используется вспомогательный код M99, который мы описали выше, но есть одно условие выхода из дочерних програм.
Обыкновенным выходов из подпрограммы вызванной кодом M98 P0001; либо вызовом с повторениями M98 P00020001 является выход M99. Существует аргумент P в кадре с M99, который определяет конкретную строку перехода в главной программе после выхода из подпрограммы. Формат ввода:
Обратите внимание на пример:
Главная программа:
N0010 G90 G54
N0020 M98 P00010001
N0030 M30
N0040 M99
Внутренняя подпрограмма:
О0001
N0010 M06 T3
N0020 M03 S6000
N0030 G43 H33
N0050 M99 P0040
Что мы видим в данном примере? Обратите внимание, что кадр N30 в главной программе, необходим для завершения данной программы, и по логике вещей, кадр N40 никогда не был бы прочитан системой ЧПУ. Но на самом деле, это не так. Выход из подпрограммы в кадре N0050 осуществляется на строку N0040 поэтому кадр N30 просто не читается. В системных параметрах станка необходимо выбрать настройку типа стандарта ISO-7 кодов, F15 или F16.
M98 P00010001 – набор для F16
M98 P0001 L1 – набор для F15
Код M99 является недопустимым в режиме MDI станка с ЧПУ, также как и код M98. Другими словами, данные функции занимаются выполнением программ, заранее записанных на носителях информации стойки станка, в режиме AUTO.