M-коды Fanuc: полный справочник для управления ЧПУ станками
-
M-коды (от Miscellaneous - вспомогательные) - это команды, которые управляют функциями станка, не связанными с движением: шпинделем, охлаждением, сменой инструмента, подпрограммами, зеркальным отображением и взаимодействием с PLC. Без них G-код - просто траектория без станка.
В этом справочнике - полные таблицы, живые примеры программ для токарных и фрезерных станков Fanuc 0i/16i/18i/30i, разбор нюансов и типичных ошибок.
Правила работы с M-кодами
Прежде чем перейти к таблицам - несколько базовых правил, которые действуют на всех контроллерах Fanuc:
- Один M-код на блок - контроллер выдаст ошибку, если в одном блоке стоит два M-кода (исключение: некоторые комбинации типа M03 + M08 допускаются на 30i)
- M-код выполняется в конце блока - если в блоке есть движение и M-команда, сначала выполняется движение, затем M
- Исключение: M00, M01, M30 - останавливают выполнение немедленно
- M-коды 100–999 - пользовательские (зависят от настройки станка/PLC); всегда проверяйте мануал конкретного станка
- Один символ прокомментировать - используйте
(комментарий в скобках)в том же блоке
Управление программой: M00, M01, M02, M30
Это фундаментальные команды - без них программа не может корректно начаться и завершиться.
M-код Описание Токарный Фрезерный M00 Безусловная остановка программы ✓ ✓ M01 Условная остановка (по кнопке Optional Stop) ✓ ✓ M02 Конец программы (без перемотки на старых версиях) ✓ ✓ M30 Конец программы + перемотка в начало ✓ ✓ M00 - принудительная пауза для контроля
Применяется, когда оператор должен вручную проверить деталь, удалить стружку, сменить зажим. Программа замирает, шпиндель и СОЖ останавливаются.
O0001 (ПРОГРАММА ФРЕЗЕРОВАНИЯ); G21 G17 G40 G49 G80 G90; T01 M06 (ТОРЦЕВАЯ ФРЕЗА D50); G00 G54 X0 Y0 S800 M03; G43 H01 Z50. M08; G01 Z-2. F200; X100.; M00 (ПАУЗА - ПРОВЕРИТЬ РАЗМЕР ПОСЛЕ ЧЕРНОВОГО ПРОХОДА); G00 Z50.; T02 M06 (ЧИСТОВАЯ ФРЕЗА D50); G00 G54 X0 Y0 S1200 M03; G43 H02 Z50. M08; G01 Z-2. F100; X100.; G00 Z100. M09; M30;M01 - условная остановка
Срабатывает только если на пульте нажата кнопка Optional Stop (опциональный останов). Удобно при наладке - не нужно редактировать программу: просто включите/выключите кнопку.
G01 X50. F300; M01 (КОНТРОЛЬ ПРИ НАЛАДКЕ - В СЕРИИ КНОПКА ВЫКЛЮЧЕНА); G01 X100. F300;M30 vs M02
M30- стандарт для Fanuc: завершает программу и перематывает курсор в начало (готово к следующему запуску).M02на современных Fanuc работает аналогично, но на старых контроллерах (Fanuc 6/10/11) не перематывает. Используйте M30 везде.
Управление шпинделем: M03, M04, M05, M19, M29
M-код Описание Примечание M03 Шпиндель по часовой стрелке (CW) Стандарт для правых инструментов M04 Шпиндель против часовой стрелки (CCW) Левая нарезка резьбы, обратное фрезерование M05 Остановка шпинделя Обязательна перед T-командой и M06 M19 Ориентация шпинделя (угловая фиксация) Нужна перед расточкой и некоторыми ATC M29 Режим жёсткого нарезания резьбы (Rigid Tap) Синхронизирует шпиндель и ось Z Пример: шпиндель с ориентацией и жёсткой резьбой
O0010 (НАРЕЗАНИЕ РЕЗЬБЫ M8); G21 G90 G40 G49 G80; T03 M06 (МЕТЧИК M8); G00 G54 X25. Y25.; G43 H03 Z50. S500 M03; M08; (ЖЁСТКОЕ НАРЕЗАНИЕ РЕЗЬБЫ G84 + M29); M29 S500 (ВКЛЮЧИТЬ RIGID TAP); G99 G84 X25. Y25. Z-20. R5. F0.8 (ШАГИ 0.8мм/об); G80 M09; G00 Z100.; M19 (ОРИЕНТИРОВАТЬ ШПИНДЕЛЬ ПЕРЕД СМЕНОЙ); M05; M30;Важно: M29 всегда прописывайте с той же скоростью S, что и в цикле G84. Расхождение скоростей приведёт к сигналу тревоги.
Управление охлаждением: M07, M08, M09
M-код Описание Токарный Фрезерный M07 СОЖ через шпиндель / туман ✓ ✓ M08 СОЖ потоком (flood coolant) ✓ ✓ M09 Отключение всей СОЖ ✓ ✓ На большинстве станков M08 и M07 можно включить одновременно (если есть два насоса). M09 отключает оба.
T01 M06; G00 G54 X0 Y0 S1500 M03; G43 H01 Z50.; M07 (СОЖ ЧЕРЕЗ ШПИНДЕЛЬ); M08 (СОЖ ПОТОКОМ - ОБА ВКЛЮЧЕНЫ); G01 Z-10. F150; ... G00 Z100. M09 (ВЫКЛЮЧИТЬ ВСЮ СОЖ); M05; M30;Нюанс: На старых Fanuc (0M, 6M) M07 может конфликтовать с M08 — включается только последняя команда. Проверяйте параметр №3001 (или аналог в вашей версии).
Смена инструмента: M06
M06 - команда выполнить смену инструмента. Сам номер инструмента задаётся словом T в том же блоке или заранее.
(ПРЕДВАРИТЕЛЬНАЯ ПОДГОТОВКА СЛЕДУЮЩЕГО ИНСТРУМЕНТА); T02 (ЗАГРУЗИТЬ T02 В ПОЗИЦИЮ ОЖИДАНИЯ); G00 Z100.; M05 M09 (ОСТАНОВИТЬ ШПИНДЕЛЬ И СОЖ ПЕРЕД СМЕНОЙ); T02 M06 (СМЕНИТЬ НА ИНСТРУМЕНТ №2);На токарных станках M06 не применяется — смена позиции револьверной головки задаётся командой T:
(ТОКАРНЫЙ СТАНОК - СМЕНА ПОЗИЦИИ ГОЛОВКИ); G00 X100. Z50.; T0202 (ИНСТРУМЕНТ 2, КОРРЕКЦИЯ 2); G96 S200 M03; G01 X30. Z0 F0.15;
Передачи шпинделя: M40–M44
Используются на станках с механической коробкой передач. Выбор диапазона позволяет работать с нужным крутящим моментом или скоростью.
M-код Описание Типовой диапазон об/мин M40 Средняя/автоматическая передача Авто по S M41 Низкая передача (High Torque) 0–500 об/мин M42 Высокая передача (High Speed) 500–6000 об/мин M43 3-я передача (если есть) зависит от станка M44 4-я передача (если есть) зависит от станка (ЧЕРНОВОЕ ТОЧЕНИЕ - НУЖЕН ВЫСОКИЙ МОМЕНТ); M41 (НИЗКАЯ ПЕРЕДАЧА); G97 S300 M03; G01 X30. F0.3; (ЧИСТОВОЕ ТОЧЕНИЕ - НУЖНА СКОРОСТЬ); M42 (ВЫСОКАЯ ПЕРЕДАЧА); G96 S250 M03 (ПОСТОЯННАЯ СКОРОСТЬ РЕЗАНИЯ); G01 X30. Z-50. F0.1;
Подпрограммы: M98, M99, M97
Подпрограммы - главный инструмент для устранения повторений в коде.
M-код Описание M98 Pxxxx Вызов подпрограммы с номером xxxx M98 Pxxxxllll Вызов подпрограммы xxxx, повторить llll раз M99 Конец подпрограммы, возврат в основную M97 Pnn Локальный вызов (метка в той же программе, Fanuc 0i+) Формат M98
M98 P___; └──┘ Номер подпрограммы (до 4 цифр) M98 P00031005; └───┘└──┘ 0003 — повторить 3 раза 1005 — номер подпрограммы O1005Пример: сверление матрицы 3×3 через подпрограмму
O0020 (ОСНОВНАЯ ПРОГРАММА - МАТРИЦА ОТВЕРСТИЙ 3x3); G21 G90 G40 G49 G80; T01 M06 (СВЕРЛО D8); G00 G54 X0 Y0 S1200 M03 M08; G43 H01 Z50.; (РЯД 1 - Y=0); G00 Y0; M98 P0100 (ВЫЗОВ ПОДПРОГРАММЫ СВЕРЛЕНИЯ РЯДА); (РЯД 2 - Y=30); G00 Y30.; M98 P0100; (РЯД 3 - Y=60); G00 Y60.; M98 P0100; G00 Z100. M09; M05; M30; O0100 (ПОДПРОГРАММА - СВЕРЛЕНИЕ РЯДА ПО X); G99 G81 X0 Z-15. R5. F100; (1-е отверстие); X30.; (2-е отверстие); X60.; (3-е отверстие); G80; M99; (ВОЗВРАТ В ОСНОВНУЮ ПРОГРАММУ);Пример: M97 - локальный вызов (без отдельной программы)
O0030; G00 X0 Y0; M97 P100 (ПЕРЕЙТИ НА МЕТКУ N100 ВНУТРИ ЭТОЙ ЖЕ ПРОГРАММЫ); G00 X50.; M30; N100 (ЛОКАЛЬНАЯ ПОДПРОГРАММА); G01 X20. F200; G01 Y20.; M99;Уровни вложенности: Fanuc 0i допускает до 4 уровней вложения подпрограмм (M98 внутри M98). Fanuc 30i - до 10 уровней.
Токарные M-коды: патрон и задняя бабка
Эти коды специфичны для токарных станков с гидравлическим или пневматическим зажимом.
M-код Описание Применение M68 Зажим патрона (Hydraulic Chuck Close) Перед обработкой M69 Разжим патрона (Hydraulic Chuck Open) После обработки M78 Задняя бабка — подача (выдвинуть пиноль) Подпереть деталь M79 Задняя бабка — отвод (убрать пиноль) Перед съёмом детали O0040 (ТОКАРНАЯ ПРОГРАММА С ПАТРОНОМ И ЗАДНЕЙ БАБКОЙ); G21 G99 G40; M68 (ЗАЖАТЬ ПАТРОН); M78 (ВЫДВИНУТЬ ПИНОЛЬ ЗАДНЕЙ БАБКИ); T0101 (РЕЗЕЦ НАРУЖНОГО ТОЧЕНИЯ, КОРРЕКЦИЯ 1); G96 S200 M03; G00 X52. Z2.; M08; G71 U1. R0.5 (ЦИКЛ ЧЕРНОВОГО ТОЧЕНИЯ); G71 P10 Q20 U0.3 W0.1 F0.25; N10 G00 X30.; G01 Z0 F0.1; Z-60.; N20 X52.; G00 X100. Z100.; M09 M05; M79 (УБРАТЬ ПИНОЛЬ); M69 (РАЗЖАТЬ ПАТРОН); M30;
Зеркальное отображение: M94, M95, M96
Позволяет обработать зеркальную копию контура без написания новой программы.
M-код Описание M94 Отмена зеркального отображения M95 Зеркало по оси X M96 Зеркало по оси Y O0050 (ЗЕРКАЛЬНАЯ ОБРАБОТКА); (ОРИГИНАЛ - ЛЕВАЯ ПОЛОВИНА); M98 P0200; (ЗЕРКАЛО ПО Y - ПРАВАЯ ПОЛОВИНА); M96 (ВКЛЮЧИТЬ ЗЕРКАЛО ПО Y); M98 P0200; M94 (ОТМЕНИТЬ ЗЕРКАЛО); M30;
Управление паллетой: M60
Применяется на горизонтальных обрабатывающих центрах с автоматической сменой паллет (APC).
G00 G28 Z0 M19; M05 M09; M60 (СМЕНИТЬ ПАЛЛЕТУ - СТАНОК ПЕРЕКЛЮЧАЕТ СТОЛ); (НОВАЯ ДЕТАЛЬ УСТАНОВЛЕНА - ПРОДОЛЖИТЬ); T01 M06; G00 G55 X0 Y0 S800 M03;
Ожидание сигнала PLC: M66
M66 приостанавливает выполнение программы до получения сигнала от PLC (датчик, робот, конвейер). Критически важен для автоматических линий.
G00 Z100. M09; M05; M66 (ЖДАТЬ СИГНАЛА ОТ РОБОТА О ГОТОВНОСТИ ДЕТАЛИ); (ПРОГРАММА ПРОДОЛЖАЕТСЯ ТОЛЬКО ПОСЛЕ СИГНАЛА); M68 (ЗАЖАТЬ ПАТРОН); T0101; G96 S200 M03;
Пользовательские M-коды через макросы
Fanuc Custom Macro B позволяет назначить любой M-код (из диапазона M96–M199 или заданного параметрами) на выполнение пользовательской подпрограммы. Это позволяет создавать собственные команды для нестандартных функций станка.
Пример: назначить M151 на автоматическую продувку детали воздухом:
(НАСТРОЙКА В ПАРАМЕТРАХ FANUC: параметр 6071 = 151); O9151 (ПОДПРОГРАММА ДЛЯ M151 - ПРОДУВКА ВОЗДУХОМ); M64 (ВКЛЮЧИТЬ ВОЗДУХ - ПОЛЬЗОВАТЕЛЬСКИЙ ВЫХОД PLC); G04 X3.0 (ВЫДЕРЖКА 3 СЕКУНДЫ); M65 (ВЫКЛЮЧИТЬ ВОЗДУХ); M99; (В РАБОЧЕЙ ПРОГРАММЕ); O0060; ... G00 Z100.; M151 (ПРОДУТЬ ДЕТАЛЬ ВОЗДУХОМ - ВЫЗОВЕТ O9151); T02 M06;
Полная сводная таблица M-кодов Fanuc
Фрезерные станки (Machining Center)
M-код Функция Комментарий M00 Останов программы Оператор нажимает Cycle Start для продолжения M01 Условный останов Активен при включённой кнопке Optional Stop M02 Конец программы На современных = M30 M03 Шпиндель CW (по часовой) Всегда с S M04 Шпиндель CCW (против часовой) Левая резьба, обратные фрезы M05 Стоп шпинделя Перед M06 и T M06 Смена инструмента В блоке с T M07 СОЖ туман / через шпиндель Точная обработка M08 СОЖ потоком (flood) Основное охлаждение M09 Вся СОЖ выкл Перед M06 M13 Шпиндель CW + СОЖ вкл Сокращённая запись M14 Шпиндель CCW + СОЖ вкл Сокращённая запись M19 Ориентация шпинделя Перед расточкой, ATC M28 Возврат в исходную точку Альтернатива G28 M29 Rigid Tap (жёсткое нарезание) Синхронизация Z и шпинделя M30 Конец программы + перемотка Стандарт Fanuc M41 Низкая передача Высокий момент M42 Высокая передача Высокая скорость M43 3-я передача Если есть M60 Смена паллеты (APC) Горизонтальные ОЦ M66 Ожидание сигнала PLC Роботизированные линии M94 Отмена зеркала — M95 Зеркало по X — M96 Зеркало по Y — M97 Локальный вызов подпрограммы Fanuc 0i и новее M98 Вызов подпрограммы P = номер M99 Конец подпрограммы / возврат — Токарные станки (Turning Center)
M-код Функция Комментарий M00 Останов программы — M01 Условный останов — M03 Шпиндель CW + S M04 Шпиндель CCW Левая резьба M05 Стоп шпинделя — M08 СОЖ вкл — M09 СОЖ выкл — M29 Rigid Tap Нарезание резьбы M30 Конец программы — M40 Средняя/авто передача — M41 Низкая передача — M42 Высокая передача — M68 Зажим патрона (гидравлика) — M69 Разжим патрона — M78 Задняя бабка — подать Выдвинуть пиноль M79 Задняя бабка — убрать — M94 Отмена зеркала — M95 Зеркало по X — M98 Вызов подпрограммы — M99 Конец подпрограммы —
Отличия Fanuc от Siemens и Haas
Функция Fanuc Siemens Sinumerik Haas Конец подпрограммы M99 M17 M99 Вызов подпрограммы M98 Pxxxx CALL / L M98 Pxxxx Локальный вызов M97 Pnn — M97 Pnn Жёсткая резьба M29 CYCLE840 M29 Ориентация шпинделя M19 SPOS= M19 Ожидание PLC M66 WAIT / M0 — Конец программы M30 M30 M30 Зеркало по X M95 MIRROR X0 G101
Типичные ошибки и их причины
Ошибка 1: два M-кода в одном блоке
M03 M08; (❌ ОШИБКА НА Fanuc 0i - сигнал тревоги);M03 S1000; (✓ ПРАВИЛЬНО); M08;Исключение: некоторые станки с Fanuc 30i допускают
M03 M08в одном блоке при активном параметре #3404.Ошибка 2: M06 без предварительной остановки шпинделя
T02 M06; (❌ ШПИНДЕЛЬ ЕЩЁ ВРАЩАЕТСЯ - АВАРИЯ ATC);G00 Z100.; M05 M09; (✓ СНАЧАЛА ОСТАНОВИТЬ ВСЁ); T02 M06;Ошибка 3: M99 вместо M30 в конце основной программы
O0001; ... M99; (❌ СОЗДАЁТ БЕСКОНЕЧНЫЙ ЦИКЛ - ПРОГРАММА ПЕРЕЗАПУСТИТСЯ);O0001; ... M30; (✓ КОРРЕКТНОЕ ЗАВЕРШЕНИЕ);Ошибка 4: M98 с неправильным форматом P
M98 P1005; (⚠️ НЕОДНОЗНАЧНО: повторить 1 раз программу O0005 или вызвать O1005?); M98 P00011005; (✓ ЯВНО: 0001 раз программу O1005); M98 P1005; (✓ НА БОЛЬШИНСТВЕ FANUC: вызов O1005 без повторений);Лучшая практика: всегда используйте 8-значный формат
Pпри многократном вызове.
Шаблоны готовых программ
Стандартный старт фрезерной программы
O____ (НАЗВАНИЕ ДЕТАЛИ / ОПЕРАЦИИ); (DATE: __ PROG: __ MATERIAL: __); G21 G17 G40 G49 G80 G90 (БЕЗОПАСНАЯ ИНИЦИАЛИЗАЦИЯ); G28 G91 Z0 (ВОЗВРАТ В РЕФЕРЕНС ПО Z); G90; T__ M06 (ИНСТРУМЕНТ №__, ОПИСАНИЕ); G00 G54 X__ Y__ (РАБОЧАЯ СК G54, ПОЗИЦИЯ СТАРТА); G43 H__ Z50. (КОРРЕКЦИЯ НА ДЛИНУ ИНСТРУМЕНТА); S____ M03 (СКОРОСТЬ ШПИНДЕЛЯ); M08 (СОЖ ВКЛЮЧИТЬ);Стандартное завершение программы
G00 Z100. M09 (ОТВОД + ВЫКЛЮЧИТЬ СОЖ); M05 (ОСТАНОВИТЬ ШПИНДЕЛЬ); G28 G91 Z0 (ВОЗВРАТ В РЕФЕРЕНС); G90; M30 (КОНЕЦ ПРОГРАММЫ);Стандартный старт токарной программы
O____ (ТОКАРНАЯ ОПЕРАЦИЯ); G21 G99 G40 (МЕТРИКА, ПОДАЧА ММ/ОБ, ОТМЕНА КОРРЕКЦИИ); G28 U0 W0 (ВОЗВРАТ В РЕФЕРЕНС); M68 (ЗАЖАТЬ ПАТРОН); T____ (ИНСТРУМЕНТ, КОРРЕКЦИЯ); G96 S___ M03 (ПОСТОЯННАЯ СКОРОСТЬ РЕЗАНИЯ); G00 X__ Z__; M08;
FAQ
Почему M30 лучше M02?
M30 перематывает программу в начало после завершения, что позволяет запустить следующую деталь одним нажатием Cycle Start. M02 на ряде контроллеров этого не делает - оператор должен вручную найти начало программы.Можно ли использовать M98 рекурсивно (вызвать саму себя)?
Нет. Fanuc не поддерживает рекурсию в подпрограммах - это приведёт к ошибке переполнения стека. Для повторений используйте счётчик в слове P:M98 P00051005(5 вызовов O1005).Что значит «M-код не активен» на дисплее тревоги?
Либо этот M-код не поддерживается данной конфигурацией станка (опция не куплена/не включена), либо параметры PLC не настроены. Проверьте мануал по конфигурации конкретного станка.Как найти M-коды, специфичные для моего станка?
ОткройтеPARAMETER→PMC(илиPLC) → разделM-code listили обратитесь к главе Appendix / Machine Specific M-Codes в документации производителя станка (не Fanuc, а именно станкостроителя).В чём разница M13/M14 и отдельных M03+M08?
Функционально — никакой. M13 = M03 + M08 в одной команде. Использование M13 - вопрос стиля и компактности программы. Поддерживается не на всех станках.Можно ли остановить только СОЖ без остановки шпинделя?
Да:M09выключает СОЖ, шпиндель продолжает вращаться. Это используют, например, при выводе сверла из отверстия перед сменой.
Что изучить дальше
- Fanuc Parameter Manual (B-64490EN_05.PDF) - параметры PMC, влияющие на поведение M-кодов
- Fanuc Custom Macro B (B-64304EN.pdf ) - создание пользовательских M-кодов через макросы
- ГОСТ ISO 6983-1-2021 - международный стандарт на систему адресов ЧПУ (M-коды)
- G-коды Fanuc - парные команды к M-кодам (G81–G89 сверлильные циклы, G71–G76 токарные циклы)
Здравствуйте! Похоже, вас заинтересовал этот пост, но у вас ещё нет аккаунта.
Надоело каждый раз пролистывать одни и те же посты? Зарегистрировав аккаунт, вы всегда будете возвращаться на ту же страницу, где были раньше, и сможете выбирать, получать ли уведомления о новых ответах (по электронной почте или в виде push-уведомлений). Вы также сможете сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.
С вашими комментариями этот пост мог бы стать ещё лучше 💗
Зарегистрироваться Войти© 2022 - 2026 InvestSteel, Inc. Все права защищены.