Resposta rápida: O código M (código miscelâneo) controla todas as funções que não envolvem movimento em uma máquina CNC: partida e parada do spindle (M03/M04/M05), refrigeração ligada e desligada (M08/M09), trocas de ferramenta (M06), pausas do programa (M00/M01) e fim de programa (M30). Enquanto o código G diz à máquina para onde se mover, o código M diz a ela em que estado a máquina deve estar para realizar trabalho útil — sem M03 o spindle não gira, sem M08 a zona de corte superaquece, e sem M05 antes de M06 uma troca de ferramenta é tentada com o spindle ainda girando. Erros de sequenciamento de código M são uma das causas mais comuns de quebra de ferramenta, falhas de acabamento superficial e colisões de máquina na produção CNC. Os códigos M principais são amplamente padronizados entre controladores Fanuc, Haas e Siemens; funções avançadas e auxiliares variam conforme o fabricante da máquina.


O Que É Código M?

O código M (abreviação de código miscelâneo) é a seção da linguagem de programação CNC que controla o estado da máquina em vez da geometria da trajetória da ferramenta. Toda máquina CNC que executa código compatível com ISO 6983 / EIA RS-274 usa duas camadas paralelas de instruções:

Código G — a camada de movimento e geometria. O código G define posições dos eixos, modos de interpolação (linear, circular, helicoidal), taxas de avanço, sistemas de coordenadas e ciclos de corte. O código G diz à máquina para onde ir e como chegar lá.

Código M — a camada de controle da máquina. O código M define se o spindle está girando e em qual direção, se o refrigerante está fluindo, qual ferramenta está carregada e se o programa está pausado ou encerrado. O código M diz à máquina em que estado ela deve estar para realizar usinagem útil.

A consequência física dessa divisão: o código G move a ferramenta para a posição X50 Y20 — mas se M03 (spindle ligado) não foi emitido antes desse movimento G01, o spindle está parado quando a ferramenta alcança a peça de trabalho. A ferramenta engata o material sem girar, gerando atrito em vez de corte, queimando a aresta da ferramenta em segundos e potencialmente riscando a superfície da peça.

O código G define a trajetória. O código M faz a trajetória produzir peças.


Código M vs Código G: A Diferença Crítica

Função Código G Código M
Controla o movimento dos eixos (X, Y, Z) Sim Não
Controla a taxa de avanço Sim Não
Controla a rotação do spindle Não Sim
Controla o refrigerante Não Sim
Controla as trocas de ferramenta Não Sim
Controla o fluxo do programa (pausa, fim) Não Sim
Controla funções auxiliares da máquina Não Sim
Define geometria (arcos circulares, ciclos canned) Sim Não

Nenhum tipo de código funciona independentemente para usinagem real:

  • Código G sem código M: a máquina segue uma trajetória de movimento com o spindle desligado e refrigerante desligado — sem remoção de material, e provavelmente danos à ferramenta ou à peça no contato.
  • Código M sem código G: o spindle gira, o refrigerante flui, as ferramentas trocam — mas nenhum movimento de corte ocorre.

Um programa CNC completo intercala ambos: o código M coloca a máquina no estado operacional correto, o código G executa a geometria de corte, o código M faz transições entre operações e encerra o programa.


A Referência Padrão de Códigos M

Controle do Spindle: M03, M04, M05

M03 — Spindle LIGADO, rotação no sentido horário O código M de usinagem mais fundamental. Emitido antes de qualquer movimento de corte, tipicamente com uma palavra S (velocidade do spindle em RPM): M03 S3000 inicia o spindle a 3000 RPM no sentido horário. Padrão para todas as ferramentas de corte à direita — fresas de topo, brocas, barras de mandrilar, machos com direção de rosca convencional.

M04 — Spindle LIGADO, rotação no sentido anti-horário Usado para ferramentas à esquerda, roscamento reverso e algumas operações especiais. Emitir M04 quando M03 era pretendido (ou vice-versa) produz a direção de corte errada — para uma broca isso significa que as arestas de corte estão atrás em vez de à frente, resultando em atrito, geração de calor e dano rápido à aresta.

M05 — Spindle PARADO Para a rotação do spindle. Isso deve ser emitido antes de qualquer troca de ferramenta (M06) — uma troca de ferramenta com o spindle girando cria uma colisão mecânica entre a ferramenta giratória e o mecanismo trocador de ferramentas, um evento frequentemente catastrófico para o spindle. M05 também deve ser emitido antes do fim do programa (M30) para evitar que a máquina complete seu ciclo com o spindle ainda em funcionamento.

Controle de Refrigerante: M07, M08, M09

M08 — Refrigerante LIGADO (abundante) Ativa o refrigerante abundante — o modo de refrigeração primário para a maioria da usinagem CNC. Deve ser emitido antes que a ferramenta de corte entre em contato com a peça de trabalho. Refrigerante fornecido após o início do corte significa que a primeira porção do corte ocorre sem controle térmico, produzindo o pior acabamento superficial e o maior desgaste da ferramenta nesse período inicial.

A consequência térmica da falta de M08: na usinagem de aço, as temperaturas da zona de corte atingem 500–800°C sem refrigerante. Acima de aproximadamente 600°C, o aço rápido começa a perder dureza; o metal duro mantém a dureza por mais tempo, mas o calor acelera o desgaste de cratera. Os cavacos que deveriam levar calor para longe da zona de corte, em vez disso, ressoldam-se à face de saída da ferramenta (aresta postiça), degradando a geometria de corte e o acabamento superficial.

M07 — Refrigerante em névoa (onde suportado) Névoa de ar-óleo em vez de refrigerante abundante, usado para materiais onde o refrigerante abundante é contraproducente (ferro fundido, onde o refrigerante abundante causa choque térmico) ou em aplicações que exigem lubrificação sem a ressoldagem de cavacos do corte a seco.

M09 — Refrigerante DESLIGADO Para todo o refrigerante. Emitido após a conclusão dos movimentos de corte, antes da parada do spindle e das trocas de ferramenta.

Troca de Ferramenta: M06

M06 — Troca de ferramenta Executa uma troca automática de ferramenta, movendo a ferramenta atualmente carregada para o magazine e carregando a ferramenta especificada pela palavra T: M06 T3 descarrega a ferramenta atual e carrega a Ferramenta 3. Na maioria dos centros de usinagem, o carrossel de ferramentas pré-seleciona a próxima ferramenta (usando a palavra-T) enquanto a operação atual é executada, de modo que a troca de ferramenta em si leva apenas o tempo da troca real, em vez do tempo para localizar a ferramenta.

Requisito crítico de sequenciamento: o spindle deve ser parado (M05) antes que M06 seja emitido. Na maioria dos controladores, emitir M06 sem um M05 prévio irá ou disparar uma falha ou forçar uma parada do spindle antes de prosseguir — mas algumas máquinas tentarão a troca de ferramenta imediatamente, criando risco de colisão.

M06 também retorna o eixo Z à posição de troca de ferramenta (tipicamente zero-máquina ou uma altura segura definida) antes de executar a troca. Programadores que emitem M06 sem garantir que a ferramenta esteja em Z seguro podem fazer com que a ferramenta de saída entre em contato com a peça ou o dispositivo de fixação durante o movimento de troca de ferramenta.

Controle de Programa: M00, M01, M30

M00 — Parada de programa (incondicional) Interrompe completamente a execução do programa e requer ação do operador para continuar. Usado para inspeção em processo — pausa após o desbaste para medir uma dimensão crítica, pausa para reposicionar a peça, pausa para limpar cavacos de cavidades profundas. O operador tipicamente pressiona CYCLE START para retomar.

M01 — Parada opcional (condicional) Funciona como M00 somente quando o interruptor “Optional Stop” do controlador da máquina está habilitado. Quando o interruptor está desligado, M01 é ignorado e o programa continua. Usado para etapas que o programador deseja disponibilizar para depuração ou inspeção, mas não quer interromper execuções normais de produção.

M30 — Fim de programa e reset Encerra o programa e retorna o controle ao início do programa, redefinindo o estado da máquina. Este é o terminador de programa padrão. Encerrar um programa sem M30 deixa a máquina em um estado indefinido — programas subsequentes podem iniciar com estados de spindle, condições de refrigerante ou compensações de ferramenta incorretos.

Resumo: Referência Essencial de Códigos-M

Código M Função Contexto de Uso Típico
M00 Parada de programa incondicional Inspeção em processo, reposicionamento da peça
M01 Parada de programa opcional Pausa para depuração, inspeção condicional
M03 S___ Spindle LIGADO, sentido horário a ___ RPM Antes de todas as operações de corte padrão
M04 S___ Spindle LIGADO, sentido anti-horário a ___ RPM Ferramentas à esquerda, roscamento reverso
M05 Parada do spindle Antes da troca de ferramenta, no final da operação
M06 T__ Troca de ferramenta para a ferramenta # Entre operações de usinagem
M07 Refrigerante de névoa ligado Ferro fundido, materiais sensíveis
M08 Refrigerante de inundação ligado Antes de todas as operações de corte
M09 Todo o refrigerante desligado Após o corte, antes da troca de ferramenta
M30 Fim do programa e reinicialização Última linha de cada programa

A Sequência de Códigos-M em um Programa de Usinagem Completo

Compreender o código-M é mais útil em contexto — a ordem específica em que os códigos-M aparecem dentro de um programa determina diretamente a qualidade da usinagem e a segurança da máquina. O seguinte representa um programa padrão de duas operações (fresamento seguido de furação):

T1 M06              ; Pré-seleciona e troca para a Ferramenta 1 (fresa de topo)

Cada código-M nesta sequência serve a um propósito específico:

  • M03 antes de qualquer movimento de corte G01 garante que o spindle esteja girando antes do engate da ferramenta
  • M08 emitido antes do primeiro movimento de corte garante que o refrigerante esteja fluindo antes que a ferramenta entre em contato com a peça
  • M09 antes de M05 garante que o refrigerante esteja desligado antes que o spindle pare (evita acúmulo de refrigerante sobre ferramentas não rotativas)
  • M05 antes de M06 garante que o spindle esteja parado antes da troca de ferramenta
  • M30 no final do programa redefine a máquina para o estado pronto

A ordem importa. Mover M08 para depois do primeiro G01 significa que o primeiro corte é executado a seco. Mover M06 antes de M05 arrisca uma colisão mecânica.


O Que Acontece Quando o Código-M Está Errado

Erros de programação de código-M são erros físicos — eles produzem consequências imediatas e mensuráveis na máquina:

Erro Causa Raiz Consequência Física
Fuso não girando durante o corte M03 ou M04 ausente Ferramenta esfrega, queima, lasca a aresta; riscos na superfície da peça
Superaquecimento durante o corte M08 ausente ou atrasado Desgaste acelerado da ferramenta, aresta postiça, Ra degrada (ex.: Ra 1,6 → Ra 3,2+ µm)
Ferramenta errada carregada Palavra T incorreta com M06 Geometria incorreta usinada, quebra da ferramenta, peça refugada
Troca de ferramenta tentada com o fuso em rotação M05 ausente antes de M06 Colisão mecânica, danos ao trocador de ferramentas, possíveis danos ao fuso
Refrigerante continua após o programa M09 ausente antes de M30 Menor (poça de refrigerante na máquina), mas indica sequenciamento incompleto
Máquina não reinicializada para o próximo ciclo M30 ausente Próximo ciclo inicia em estado indefinido — offsets errados, ferramenta errada, rotação do fuso errada
Direção do fuso errada M04 usado quando M03 é necessário Corte reverso — danos imediatos à ferramenta e acabamento superficial ruim

O erro de código M mais caro em produção é a troca de ferramenta com o fuso em rotação: o braço do trocador de ferramentas se move para engatar a ferramenta no fuso enquanto o fuso está girando, causando uma colisão entre o braço e a ferramenta em rotação. Esse evento pode danificar o cone do fuso, o braço do trocador de ferramentas e a ferramenta — um custo de reparo que pode atingir $5.000–$50.000 em paradas e peças, totalmente evitável pelos dois caracteres “M05” antes de “M06”.


Variação de Código M Entre Controladores CNC

A maioria dos códigos M fundamentais é padronizada nas principais plataformas de controladores CNC (Fanuc, Haas, Siemens, Mitsubishi, Okuma). O conjunto principal — M03, M04, M05, M06, M07, M08, M09, M30 — comporta-se de forma idêntica em essencialmente todas as máquinas CNC de produção.

A divergência começa com funções auxiliares específicas da máquina:

Função Padrão? Notas
Fuso ligado/desligado (M03/M05) Sim Universal
Refrigerante de inundação (M08/M09) Sim Universal
Troca de ferramenta (M06) Sim Mecanismo universal; implementação varia
Refrigerante através do fuso Não Frequentemente código M atribuído pelo fabricante da máquina (ex.: Haas M52, varia em outras)
Jato de ar Não Código dependente da máquina
Transportador / rosca de cavacos Não Específico da máquina
Trocador de paletes Não Específico da máquina
Abrir/fechar porta Não Específico da máquina
Ciclos de apalpação Não Alguns padrão no FANUC 0i, varia em outros
Coletor de peças (torno) Não Específico da máquina

Quando um programa escrito para uma máquina é transferido para outra, todos os códigos M padrão funcionarão. Qualquer código M específico da máquina produzirá uma falha (código M desconhecido), executará uma função diferente da pretendida ou será silenciosamente ignorado — todos os quais podem produzir comportamento inesperado. Programas transferidos entre máquinas devem ter todos os códigos M específicos da máquina revisados e atualizados antes da execução.


Erros Comuns de Programação e Como Preveni-los

Partida do fuso ausente antes do movimento de corte

O erro mais básico: um movimento G01 ou G02 executa com M05 ainda ativo (fuso parado). Prevenção: exigir M03 ou M04 antes de qualquer comando G01/G02/G03 na lista de verificação de revisão do programa. Em controladores CNC modernos, isso também pode ser detectado pela lógica de intertravamento de avanço, mas essa proteção depende da máquina.

Refrigerante ativado após o primeiro engate de corte

M08 aparece no programa, mas após o primeiro movimento G01 em vez de antes dele. O primeiro corte funciona sem refrigerante, produzindo a pior qualidade superficial e o maior desgaste da ferramenta de toda a operação. Prevenção: posicionar M08 imediatamente antes do primeiro movimento de corte, não após quaisquer outros comandos de código G no mesmo bloco ou bloco seguinte.

Número de ferramenta incorreto com M06

T2 M06 é emitido, mas o bolsão T2 no carrossel contém a ferramenta errada, ou o offset da ferramenta (H/D) para T2 não foi inserido. Prevenção: verificar a ficha de setup de ferramentas em relação ao programa antes da execução; usar ciclos de verificação de offset de comprimento de ferramenta quando disponíveis.

Omissão do M05 antes do M06

Discutido acima — o erro de código M comum mais caro. Prevenção: tornar o M05 antes do M06 uma regra de programação inviolável; revisar cada bloco de troca de ferramenta na verificação do programa.

Omissão do M30

O programa executa até a última linha de código G e para sem reinicializar. A próxima execução começa a partir da posição da última linha, em vez do início do programa. Prevenção: exigir M30 como a última linha obrigatória em cada programa.

Lista de verificação do programa para verificação de códigos M:

Verificar Requisito
M03 ou M04 antes do primeiro movimento de corte? Sim
M08 antes do primeiro engajamento de corte? Sim
M05 antes de cada M06? Sim
M09 após o último movimento de corte? Sim
M05 após a última rotação do spindle? Sim
M30 como última linha do programa? Sim
Palavra T e offsets H/D verificados para todos os M06? Sim
Códigos M específicos da máquina verificados para este controlador? Sim

Pontos-chave

  • O código M controla o estado da máquina, não a geometria: rotação do spindle, fluxo de refrigerante, trocas de ferramenta e fluxo do programa são todas funções de código M. O código G não pode substituir o código M, e o código M não pode substituir o código G.
  • A sequência de códigos M é tão importante quanto a correção da trajetória da ferramenta: M05 deve preceder M06; M03 e M08 devem preceder os movimentos de corte; M09 e M05 devem seguir os movimentos de corte. A ordem é física — sequência errada causa danos à ferramenta, peças refugadas ou colisões da máquina.
  • A ausência de M08 é uma falha direta de qualidade superficial e vida útil da ferramenta: temperaturas de corte de 500–800°C sem refrigerante na usinagem de aço causam formação de aresta postiça, desgaste acelerado da ferramenta e degradação de Ra — tudo evitável com o posicionamento correto do M08.
  • Os códigos M principais são padrão entre controladores: M03/M05/M06/M08/M09/M30 comportam-se de forma consistente em Fanuc, Haas, Siemens e na maioria das plataformas de produção CNC. Códigos M avançados e auxiliares são específicos da máquina e não são portáveis.
  • O erro único de código M mais caro é a troca de ferramenta com o spindle em rotação: a ausência de M05 antes do M06 pode causar danos ao spindle custando $5.000–$50.000 — evitável com dois caracteres.
  • O conhecimento de códigos M é relevante além dos programadores: maquinistas, operadores e engenheiros de manufatura que entendem de códigos M podem diagnosticar problemas de spindle, refrigerante e sequência sem exigir a intervenção do programador.
  • Para as equipas de compras dos fabricantes de equipamento original (OEM): programas CNC fornecidos com peças personalizadas devem incluir a verificação de códigos M como parte da inspeção da primeira peça — especificamente confirmando que as sequências de refrigerante, sequências de troca de ferramenta e terminação do programa estão corretamente programadas para a máquina de produção.

perguntas frequentes

O que o código M controla na usinagem CNC?

O código M controla todas as funções da máquina que não envolvem movimento na programação CNC. Ele gerencia: estado e direção de rotação do spindle (M03 sentido horário, M04 sentido anti-horário, M05 parar), ativação e desativação do refrigerante (M08 inundação ligada, M09 desligada), trocas automáticas de ferramenta (M06 com uma palavra T especificando o número da ferramenta), pausas do programa para ação do operador (M00 incondicional, M01 opcional) e terminação e reinicialização do programa (M30). Essas funções não são opcionais — sem M03 o spindle não gira, então nenhum corte ocorre; sem M08 a zona de corte superaquece; sem M05 antes do M06 uma troca de ferramenta é tentada com o spindle girando, arriscando colisão mecânica.

Qual é a diferença entre código M e código G?

O código G define geometria e movimento — posições dos eixos (X, Y, Z), modos de interpolação (G00 rápido, G01 linear, G02/G03 circular), velocidades de avanço e ciclos de usinagem canned. O código M define o estado da máquina — se o spindle está girando e com que velocidade, se o refrigerante está fluindo, qual ferramenta está carregada e se o programa está em execução, pausado ou terminado. Ambos são necessários para a usinagem funcional. Código G sem código M move a ferramenta, mas não pode cortar (spindle desligado). Código M sem código G ativa funções da máquina, mas não produz movimento de corte. Em um programa completo, eles se intercalam: o código M estabelece o estado operacional, o código G executa a geometria.

Quais são os códigos M mais importantes a conhecer?

Os oito códigos M mais críticos para a usinagem CNC são: M03 (spindle ligado, sentido horário) — necessário antes de cada operação de corte; M05 (parar spindle) — necessário antes de cada troca de ferramenta e no final do programa; M06 com palavra T (troca de ferramenta) — troca para a ferramenta especificada; M08 (refrigerante de inundação ligado) — necessário antes das operações de corte em aço e na maioria dos metais; M09 (refrigerante desligado) — necessário após a conclusão do corte; M30 (fim do programa e reinicialização) — termina e reinicializa cada programa; M00 (parada incondicional) — para inspeção em processo; M04 (spindle ligado, sentido anti-horário) — para ferramentas à esquerda. Esses oito códigos cobrem a grande maioria dos requisitos práticos de usinagem CNC.

Um código M errado pode causar colisão em uma máquina CNC?

Sim. O cenário de colisão por código M mais comum é emitir M06 (troca de ferramenta) sem antes emitir M05 (parar spindle). O braço do trocador de ferramentas tenta engatar no spindle em rotação, criando uma colisão mecânica que pode danificar simultaneamente o cone do spindle, o braço do trocador de ferramentas, o pino de retenção e a ferramenta de corte — os custos de reparo variam de milhares a dezenas de milhares de dólares. Outros erros perigosos de código M incluem: direção errada do spindle (M04 quando M03 era pretendido) causando falha imediata da aresta da ferramenta; códigos M específicos da máquina que desencadeiam movimentos inesperados da máquina quando executados em um controlador diferente; e ausência de retração em Z antes do M06, fazendo com que a ferramenta de saída entre em contato com a peça de trabalho ou o dispositivo de fixação durante a aproximação da troca de ferramenta.

Todas as máquinas CNC usam os mesmos códigos M?

Os M-codes principais padrão (M03, M04, M05, M06, M07, M08, M09, M30) são consistentes em essencialmente todas as máquinas CNC de produção que operam com controladores Fanuc, Haas, Siemens, Mitsubishi e Okuma. Os M-codes específicos de cada máquina para funções auxiliares divergem significativamente: refrigeração através do fuso, jato de ar, controle do transportador de cavacos, trocadores de paletes, operações de porta e integração robótica usam M-codes atribuídos pelo fabricante da máquina que variam entre máquinas. Um programa transferido de um centro de usinagem Haas para uma máquina controlada por Fanuc terá seus M-codes principais funcionando corretamente, mas quaisquer M-codes específicos da Haas irão falhar ou se comportar de maneira diferente. Todos os M-codes específicos de cada máquina devem ser verificados no manual da máquina de destino antes de executar um programa transferido.


Escrito pela equipe de engenharia da CMS com mais de 15 anos de experiência em usinagem de precisão CNC, programando e operando centros de fresamento e centros de torneamento sob sistemas de controle Fanuc, Haas e Siemens para aplicações de fabricação automotiva, aeroespacial, médica, eletrônica e industrial OEM. Referências técnicas: ISO 6983-1 (Controle Numérico de Máquinas — Formato e Definições de Programa), EIA RS-274-D (Formato de Dados em Blocos Variáveis Intercambiáveis), Manual de Programação da Série Fanuc 0i, Livro de Trabalho de Programação Haas CNC.


Fornecimento de Componentes Usinados de Precisão CNC com Programação Otimizada?

Na CMS, produzimos componentes de precisão fresados e torneados em alumínio, aço, aço inoxidável e plásticos de engenharia com programas CNC totalmente documentados. Cada programa inclui sequências de M-code verificadas — sequenciamento correto de fuso, refrigerante e troca de ferramenta — e inspeção da primeira peça antes da liberação para produção.

[Solicite um orçamento de usinagem CNC e revisão de programação →]

Informações de contacto

Telemóvel: +8617196430663

Receba as últimas notícias e atualizações

subscreva a nossa newsletter