Открыть сервис

M-код

M-код — это система машинных команд, используемая в программировании для управления станками с числовым программным управлением (ЧПУ). M-код (от англ. miscellaneous code — «вспомогательный код») представляет собой набор инструкций, отвечающих за вспомогательные функции оборудования, такие как включение и выключение шпинделя, смена инструмента, подача охлаждающей жидкости, управление зажимными устройствами и другие операции, не связанные непосредственно с перемещением рабочих органов станка. В отличие от G-кода, который задаёт геометрические параметры обработки (траекторию и скорость движения), M-код управляет логическими и технологическими процессами. M-код является частью стандарта ISO 6983 (RS-274D) и широко применяется в металлообработке, деревообработке, аддитивном производстве и других отраслях промышленности, где используется автоматизированное оборудование.

История

Система M-кода возникла в середине XX века вместе с развитием первых станков с ЧПУ. В 1950-х годах Массачусетский технологический институт (MIT) разработал язык APT (Automatically Programmed Tools), который стал основой для последующих стандартов программирования. В 1960-х годах, с появлением коммерческих систем ЧПУ, возникла необходимость в унификации команд для разных производителей оборудования. Это привело к созданию стандарта RS-274D, опубликованного Ассоциацией электронной промышленности (EIA) в 1980 году. В этом стандарте были закреплены основные коды, включая M-коды, которые стали общепринятыми в промышленности.

Первоначально M-коды использовались только для простых операций, таких как включение шпинделя или остановка программы. Однако с развитием многоосевых станков и обрабатывающих центров функционал M-кодов расширился. В 1990-х годах, с внедрением компьютерных систем ЧПУ (PCNC), появилась возможность создавать пользовательские M-коды, что позволило адаптировать программирование под конкретные задачи производства. В России стандартизация M-кодов была закреплена в ГОСТ 20999-83, который гармонизирован с международными нормами.

Структура и синтаксис

M-код представляет собой команду, состоящую из буквы «M» и двух- или трёхзначного числового кода (например, M03, M30). В современных системах ЧПУ допускаются коды до M999, но стандартные значения ограничены диапазоном M00–M99. Команды записываются в кадре (строке) программы вместе с G-кодами и другими параметрами. Синтаксис подчиняется следующим правилам:

  • Команда M-кода может быть как единственной в кадре, так и комбинироваться с другими кодами (например, G01 X100 Y50 M03).
  • Некоторые M-коды являются модальными (действуют до отмены другой командой), другие — одномоментными (выполняются только в текущем кадре).
  • Порядок выполнения команд в кадре определяется контроллером станка, но обычно M-коды обрабатываются после завершения перемещений по G-коду.

Пример записи

`` N10 G90 G00 X0 Y0 Z0 N20 M03 S1500 N30 G01 Z-5 F100 N40 M05 N50 M30 `` В этом примере:

  • M03 — включение шпинделя по часовой стрелке с частотой 1500 об/мин (S1500).
  • M05 — остановка шпинделя.
  • M30 — конец программы с возвратом в начало.

Классификация M-кодов

M-коды делятся на несколько категорий в зависимости от выполняемой функции. Ниже приведена классификация по стандартным кодам, используемым в большинстве систем ЧПУ (например, Fanuc, Siemens, Heidenhain).

Управление программой

  • M00 — безусловная остановка программы. Станок останавливается до нажатия кнопки «Пуск» оператором.
  • M01 — условная остановка (остановка по требованию). Срабатывает, если включён соответствующий режим на панели управления.
  • M02 — конец программы. Останавливает выполнение, но не перематывает программу в начало.
  • M30 — конец программы с перемоткой в начало. Используется для повторного запуска.
  • M99 — конец подпрограммы или цикл. Возвращает управление в основную программу.

Управление шпинделем

  • M03 — включение шпинделя по часовой стрелке (CW).
  • M04 — включение шпинделя против часовой стрелки (CCW).
  • M05 — остановка шпинделя.

Управление охлаждением

  • M07 — включение охлаждения (туман или воздух).
  • M08 — включение подачи охлаждающей жидкости (COOLANT ON).
  • M09 — выключение охлаждения.

Смена инструмента

  • M06 — автоматическая смена инструмента. Обычно используется в сочетании с T-кодом (номер инструмента), например, T02 M06.
  • M19 — ориентация шпинделя в заданное положение (для смены инструмента или измерения).

Управление осями и зажимами

  • M10 — зажим (например, зажим заготовки).
  • M11 — разжим.
  • M12блокировка оси (например, поворотного стола).
  • M13 — разблокировка оси.

Прочие функции

  • M21 — зеркальное отображение (отражение координат по оси).
  • M22 — отмена зеркального отображения.
  • M23 — включение автоматического измерения инструмента.
  • M24 — выключение автоматического измерения инструмента.
  • M25 — включение автоматического измерения заготовки.
  • M26 — выключение автоматического измерения заготовки.
  • M98 — вызов подпрограммы (например, M98 P1000 — вызов подпрограммы с номером 1000).
  • M99 — возврат из подпрограммы.

Особенности реализации у разных производителей

Хотя стандарт RS-274D определяет базовый набор M-кодов, производители систем ЧПУ часто добавляют собственные команды или изменяют значения стандартных. Например:

  • Fanuc — широко использует M-коды для управления многофункциональными станками, включая M50–M59 для автоматической смены паллет.
  • Siemens — в системе Sinumerik применяет расширенные коды, такие как M70 для включения режима синхронизации осей.
  • Heidenhain — в контроллерах TNC использует M-коды для управления поворотными столами (M130, M131).
  • Российские системы — контроллеры «Балт-Систем» и «NC-210» (разработка НПО «Энергия») поддерживают стандартные M-коды, но добавляют специфические команды для управления гидравликой и пневматикой.

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

Применение

M-код используется в различных типах станков с ЧПУ:

  • Фрезерные и токарные станки — для управления шпинделем, охлаждением и сменой инструмента.
  • Лазерные и плазменные резаки — для включения лазера (M03) или продувки газа (M08).
  • 3D-принтеры — в прошивках на основе Marlin и RepRap используются M-коды для управления экструдером (M104 — установка температуры, M109 — ожидание нагрева), нагревательным столом (M140, M190) и вентиляторами (M106, M107).
  • Роботизированные комплексы — для управления захватами и переключения режимов работы.

В промышленности M-код применяется как в единичном, так и в серийном производстве. Например, в автомобильной промышленности (ПАО «АвтоВАЗ», г. Тольятти) M-коды используются в обрабатывающих центрах для автоматической смены инструмента и контроля подачи СОЖ. В авиастроении (ПАО «Объединённая авиастроительная корпорация», г. Москва) M-коды интегрированы в системы управления пятиосевых станков для обработки сложных деталей.

Критика и ограничения

M-код, как часть стандарта RS-274D, подвергается критике за устаревшую архитектуру. Основные недостатки:

  • Отсутствие универсальности — разные производители по-разному интерпретируют коды, что затрудняет перенос программ между станками.
  • Ограниченный набор — стандартные коды не охватывают все современные функции, такие как управление датчиками или интернет-подключение.
  • Сложность отладки — ошибки в M-кодах (например, пропуск M05 перед сменой инструмента) могут привести к поломке оборудования.

В ответ на эти ограничения разрабатываются альтернативные языки программирования, такие как STEP-NC (ISO 14649), который описывает не только команды, но и геометрию детали. Однако M-код остаётся доминирующим стандартом благодаря своей простоте и совместимости с миллионами станков по всему миру.

Интересные факты

  • В некоторых системах ЧПУ M-код M00 может использоваться для ручной смены заготовки, если станок не оснащён автоматическим загрузчиком.
  • В прошивке Marlin для 3D-принтеров M-код M112 вызывает аварийную остановку (kill), что позволяет немедленно прекратить печать при обнаружении неисправности.
  • В России на предприятиях оборонно-промышленного комплекса (например, АО «Концерн «Калашников», г. Ижевск) M-коды адаптированы для работы с уникальными материалами, такими как титановые сплавы.

Источники

  • ГОСТ 20999-83 «Устройства числового программного управления. Кодирование информации».
  • International Standard ISO 6983-1:1982 «Numerical control of machines — Program format and definition of address words».
  • Смирнов В. А. «Программирование станков с ЧПУ». — М.: Машиностроение, 2015.
  • Документация контроллеров Fanuc Series 0i-MF (2019).
  • Руководство по прошивке Marlin 2.0 (2023).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →