Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Tecnologia industrial

Dominando a Programação CNC: Linguagem, Estrutura e Códigos G/M

Objetivo

Após concluir esta unidade, você deverá ser capaz de:

Programas CNC listam instruções a serem executadas na ordem em que são escritas. Lêem-se como um livro, da esquerda para direita e de cima para baixo. Cada frase em um programa CNC é escrita em linha separada, chamada Bloco. Blocos são arranjados em sequência específica que promove segurança, previsibilidade e legibilidade, por isso é importante aderir a uma estrutura padrão de programa.

Os blocos são arranjados na seguinte ordem:

Os passos acima representam o tipo mais simples de programa CNC, onde apenas uma ferramenta e uma operação são usadas. Programas que usam múltiplas ferramentas repetem passos dois a nove para cada uma.

Tabelas 3 e 4 na seção Códigos G e M mostram os códigos G e M mais comuns que devem ser memorizados se possível.

Como qualquer linguagem, a linguagem G-code tem regras. Por exemplo, alguns códigos são modais, significando que não precisam ser repetidos se não mudarem entre blocos. Alguns códigos têm significados diferentes dependendo de como e onde são usados.

Embora estas regras sejam cobertas neste capítulo, não se preocupe em aprender cada nuance. É trabalho do Post-Processador do software CAD/CAM formatar e escrever o programa CNC corretamente.

Formato do Programa

O programa na Tabela 1 abaixo usina um contorno quadrado e fura um furo.

BlocoDescriçãoPropósito
%
O1234
(T1 0.25 END MILL)
G17 G20 G40 G49 G80 G90
Início do programa.
Número do programa (Nome).
Descrição da ferramenta para operador.
Bloco de segurança para garantir modo seguro.
Iniciar Programa
T1 M6
S9200 M3
Carregar Ferramenta #1.
Velocidade do fuso 9200 RPM, Sentido Horário (CW).
Trocar Ferramenta
G54
M8
G00 X-0.025 Y-0.275
G43 Z1. H1
Z0.1
G01 Z-0.1 F18.
Usar Offset de Fixação #1.
Refrigerante Ligado.
Posicionamento rápido acima da peça.
Rápido para plano de segurança, usar TLO #1.
Rápido para plano de avanço.
Movimento linear até profundidade de corte a 18 IPM.
Mover para Posição
G41 Y0.1 D1 F36.
Y2.025
X2.025
Y-0.025
X-0.025
G40 X-0.4
G00 Z1.
Compensação de Diâmetro (CDC) Esquerda, entrada linear, Offset Diâmetro #1, 36 IPM.
Movimento linear.
Movimento linear.
Movimento linear.
Movimento linear.
Desliga CDC com movimento de saída.
Rápido para plano de segurança.
Usinar Contorno
M5
M9
(T2 0.25 DRILL)
T2 M6
S3820 M3
Fuso Desligado.
Refrigerante Desligado.
Descrição ferramenta para operador.
Carregar Ferramenta #2.
Velocidade fuso 3820 RPM, CW.
Trocar Ferramenta
M8
X1. Y1.
G43 Z1. H2
Z0.25
Refrigerante Ligado.
Rápido acima do furo.
Rápido para plano segurança, usar TLO #2.
Rápido para plano de avanço.
Mover para Posição
G98 G81 Z-0.325 R0.1 F12.
G80
Z1.
Ciclo de furação simples (enlatado), Profundidade Z-.325, F12.
Cancela ciclo de furação.
Rápido para plano segurança.
Furar Furo
M5
M9
G91 G28 Z0
G91 G28 X0 Y0
G90
M30
%
Fuso Desligado.
Refrigerante Desligado.
Retornar Home máquina em Z.
Retornar Home máquina em XY.
Reset para modo posicionamento absoluto (segurança).
Reset programa para início.
Fim do Programa.
Fim do Programa

Códigos de Comando de Endereço por Letra (Letter Address Commands)

O bloco de comando controla a ferramenta de máquina através de comandos de endereço por letra. Alguns são usados mais de uma vez, e seu significado muda baseando-se no G-code que aparece no mesmo bloco.

Códigos são modais (permanecem em efeito até cancelados ou alterados) ou não-modais (efetivos apenas no bloco atual). Muitos endereços são escolhidos logicamente (T para ferramenta, S para fuso, F para avanço, etc.).

A tabela abaixo lista os códigos de endereço por letra mais comuns.

VariávelDescriçãoDefinições
APosição absoluta ou incremental do eixo A (eixo rotativo em torno de X)A,B,C – Movimento Rotativo 4º/5º Eixo. Rotação sobre eixos X, Y ou Z. Ângulo em graus até 3 casas decimais. G01 A45.325 B90.
BPosição absoluta ou incremental do eixo B (rotativo em torno de Y)Igual a A
CPosição absoluta ou incremental do eixo C (rotativo em torno de Z)Igual a B
DDefine offset de diâmetro ou radial para compensação de corteCompensa desgaste e deflexão do diâmetro da ferramenta. Acompanhado de inteiro igual ao número da ferramenta (T5 usa D5). Sem ponto decimal. Sempre usado com G41/G42 e movimento XY (nunca arco). Controlador lê registrador e desloca caminho esquerda (G41) ou direita (G42) pelo valor no registrador. G01 G41 X2. D1
ETaxa de avanço de precisão para rosqueamento em tornos
FDefine taxa de avanço (feed rate)Define avanço ao usinar linhas, arcos ou ciclos de furação. Avanço em Polegadas/Min (modo G94) ou Tempo Inverso (G93). Até 3 casas decimais (para ciclos de rosqueamento) e requer ponto decimal. G01 X2. Y0. F30.
GEndereço para comandos preparatóriosG-codes dizem ao controle que tipo de movimento é desejado (ex: posicionamento rápido, avanço linear, circular, ciclo fixo) ou qual valor de offset usar. G02 X2. Y2. I.50 J0.
HDefine offset de comprimento de ferramenta; eixo incremental correspondente a C (ex: em turn-mill)Chama registrador de offset de comprimento (TLO) no controle. Controle combina TLO e Offset de Fixação Z para saber onde ferramenta está em relação ao datum da peça. Sempre acompanhado de inteiro (H1, H2), G43 e coordenada Z. G43 H1 Z2.
IDefine tamanho do arco no eixo X para G02/G03. Também parâmetro em ciclos fixos.Para movimentos de arco (G2/G3), distância incremental X do ponto inicial do arco ao centro. Certos ciclos de furação usam I como parâmetro opcional. G02 X.5 Y2.500 I0. J0.250
JDefine tamanho do arco no eixo Y para G02/G03. Também parâmetro em ciclos fixos.Para arcos (G2/G3), distância incremental Y do ponto inicial ao centro. Certos ciclos usam J como opcional. G02 X.5 Y2.500 I0. J0.250
KDefine tamanho do arco no eixo Z para G02/G03. Também parâmetro em ciclos fixos, igual a endereço L.Para arco (G2/G3), distância incremental Z do ponto inicial ao centro. No plano G17, distância Z incremental para movimentos helicoidais. Certos ciclos usam K como opcional. G18 G03 X.3 Z2.500 I0. K0.250
LContador de loops de ciclo fixo; especificação de registrador a editar com G10Contador loops: define número de repetições de ciclo fixo em cada posição. Assume 1 se não programado. Às vezes K usado em vez de L. Com posicionamento incremental (G91), série de furos igualmente espaçados pode ser programada como loop. Uso G10: especificação de qual registrador editar (offsets de trabalho, raio ferramenta, comprimento ferramenta, etc.).
MFunção miscelânea (Miscellaneous function)Sempre acompanhado de inteiro que determina seu significado. Apenas um M-code por bloco. Definições expandidas aparecem depois. M08
NNúmero de linha (bloco) no programa; número de parâmetro do sistema a alterar com G10Números de bloco tornam programa mais legível. Raramente requeridos para programas CAD/CAM sem subprogramas. Ocupam memória do controle; a maioria programas 3D não usa. Inteiros até 5 caracteres, sem decimal. Não aparecem antes de caractere % e geralmente não antes de bloco só de comentário. N100 T02 M06
ONome do programaProgramas armazenados no controle por seu número. Inteiro precedido por O, sem decimais. O1234 (Exercício 1)
PEndereço de parâmetro para vários códigos G e MTempo de espera (dwell) em segundos. Acompanha G4 a menos que usado em certos ciclos de furação. G4 P.1
QIncremento de picotamento (peck) em ciclos enlatadosDistância de avanço incremental por passagem em ciclo de furação picotada. G83 X2.000 Y2.000 Z-.625 F20. R.2 Q.2 P9.
RDefine tamanho de raio de arco ou altura de retração em ciclos enlatadosArcos definidos por raio R ou vetores I,J,K. IJK mais confiáveis que R, recomenda-se usá-los. R também usado por ciclos de furação como plano de retorno Z. G83 Z-.625 F20. R.2 Q.2 P9.
SDefine velocidade, seja velocidade do fuso ou velocidade de corte dependendo do modoVelocidade do fuso em RPM. Inteiro sem decimal, sempre usado com M03 (Fuso CW) ou M04 (Fuso CCW). S2500 M03
TSeleção de ferramentaSeleciona ferramenta. Inteiro sempre acompanhado de M6 (código troca ferramenta). T01 M06
UEixo incremental correspondente a X (tipicamente só controles grupo A de torno). Também define tempo de espera em algumas máquinas.Nestes controles, X e U substituem G90 e G91. Nestes tornos, G90 é endereço de ciclo fixo para desbaste.
VEixo incremental correspondente a YAté 2000, V raramente usado, pois tornos com U e W não tinham eixo Y. Ainda comum, mas ferramentas vivas e turn-mill tornaram V menos raro.
WEixo incremental correspondente a Z (tipicamente só controles grupo A de torno)Nestes controles, Z e W substituem G90 e G91. Nestes tornos, G90 é endereço de ciclo fixo para desbaste.
XPosição absoluta ou incremental do eixo XDados de coordenada para eixo X. Até 4 casas decimais permitidas, zeros à direita não usados. Coordenadas são modais, não precisam repetir se não mudam. G01 X2.250 F20.
YPosição absoluta ou incremental do eixo YDados de coordenada para eixo Y. G01 Y2.250 F20.
ZPosição absoluta ou incremental do eixo ZDados de coordenada para eixo Z.

Definições de Códigos de Caracteres Especiais

Lista de caracteres especiais comuns, significado, uso e restrições.

Códigos G e M

Códigos G e M compõem a maior parte do conteúdo do programa CNC. Definição de cada classe e significados específicos dos mais importantes a seguir.

Códigos G (Preparatórios)

Códigos começando com G são chamados palavras preparatórias porque preparam a máquina para certo tipo de movimento.

CódigoDescrição
G00Movimento rápido (Rapid). Usado para posicionar máquina para movimentos sem usinagem.
G01Movimento linear em taxa de avanço especificada.
G02Arco horário (Clockwise).
G03Arco anti-horário (Counterclockwise).
G04Pausa (Dwell).
G28Retornar à posição Home da máquina.
G40Compensação de Diâmetro de Corte (CDC) desligada.
G41CDC Esquerda (Left).
G42CDC Direita (Right).
G43Offset de Comprimento de Ferramenta (TLO).
G54Offset de Fixação #1.
G55Offset de Fixação #2.
G56Offset de Fixação #3.
G57Offset de Fixação #4.
G58Offset de Fixação #5.
G59Offset de Fixação #6.
G80Cancela ciclo de furação.
G81Ciclo de furação simples.
G82Ciclo de furação simples com pausa.
G83Ciclo de furação picotada (peck drilling).
G84Ciclo de rosqueamento (tapping).
G90Modo programação coordenadas absolutas.
G91Modo programação coordenadas incrementais.
G98Retorno de ciclo de furação ao ponto inicial (R).
G99Retorno de ciclo de furação ao plano de referência (última altura Z).

Códigos M (Miscelâneos)

Códigos começando com M são chamados palavras miscelâneas. Controlam opções auxiliares da máquina como refrigerante e sentido do fuso. Apenas um M-code por bloco.

CódigoDescrição
M00Parada de programa. Pressione Cycle Start para continuar.
M01Parada opcional.
M02Fim de programa.
M03Fuso ligado Horário (CW).
M04Fuso ligado Anti-horário (CCW).
M05Fuso parado.
M06Troca de ferramenta.
M08Refrigerante ligado.
M09Refrigerante desligado.
M30Fim de programa e pressione Cycle Start para rodar novamente.

Definições Selecionadas de G-Codes (Expandidas)

G00 – Movimento Rápido (Rapid Move)

Comanda a máquina a mover o mais rápido possível para ponto especificado. Sempre usado com posição de coordenada e é modal. Diferente de G01, G00 não coordena eixos para mover em linha reta. Cada eixo move em sua velocidade máxima até satisfeito. Resulta em movimento como Figura 1.

G00 X0. Y0.

Dominando a Programação CNC: Linguagem, Estrutura e Códigos G/M

Figura 1. Movimento G00

Atenção: Velocidade rápida de algumas máquinas pode exceder 1000 IPM. Offset ou movimento de coordenada incorreto pode colidir a máquina mais rápido que operador aciona emergência. Use override de avanço rápido na máquina ao rodar programa pela primeira vez.

Movimento Linear é Movimento em Linha Reta

G-Code trata de movimento, e o mais comum em programas de peça é movimento linear (linha reta). Movimento é modal. Você diz ao controle que tipo de movimento com G-Code e ele lembra até você mandar mudar com outro G-Code.

F-word = "F" de "Feedrate".
S-word = "S" de "Spindle Speed", endereço em RPM.

Especificando Movimento Linear com X, Y, Z

Especificar G00 ou G01 não causa movimento – apenas diz ao controle que tipo de movimento esperar quando você finalmente disser para onde mover. Para movimento real, especifique destino usando X, Y, Z. Para ir ao zero da peça: G00 X0 Y0 Z0 ou use G01 se quiser mais lento: G01 X0 Y0 Z0 F40.

Movimento interpolado: quando especificamos múltiplas coordenadas na mesma linha, significa que mais de um eixo move simultaneamente. O controle move todos na velocidade relativa exata para que o cortador siga linha reta ao destino no avanço programado.

Se especificarmos mesmo destino mas espalharmos coordenadas em múltiplas linhas, cada linha é movimento separado:
G00 X0 Y0 (Move para X0 Y0 em um movimento, mantendo Z constante)
Z0 (Move para Z0 em um movimento, mantendo X e Y constantes)

G00 e G01 são modais, só especificamos quando queremos mudar modo.

Eixo Z

O conceito de movimentos interpolados levanta questão interessante para eixo Z. Frequentemente é boa ideia mover eixo de profundidade de corte sozinho, não como movimento coordenado com X e Y. Seja para julgar colisão quando cortador se aproxima da peça e fixação. Primeiro mover em X e Y, depois em Z, é mais fácil julgar se colisão acidental está prestes a ocorrer. Também menos provável bater em objeto aleatório (grampo) se mantiver cortador alto até estar diretamente sobre onde começar a cortar.

G02 e G03 – Movimento Circular é Modo Iniciado

G02 estabelece modo para arcos circulares horários.
G03 estabelece modo para arcos anti-horários.

Uma vez modo G02/G03 estabelecido, arcos são definidos em G-Code identificando seus 2 pontos finais e o centro, que deve ser equidistante de cada ponto final. Pontos finais são fáceis. Ponto de controle atual (localização quando bloco começa) estabelece um ponto final. O outro pode ser estabelecido por coordenadas XYZ. O centro é mais comumente identificado usando I, J, K para estabelecer offsets relativos do ponto inicial do arco ao centro.

EXEMPLO DE ARCO HORÁRIO

Dominando a Programação CNC: Linguagem, Estrutura e Códigos G/M

Figura 2. Centro do Arco com IJK

Este arco começa em X0 Y2. e termina em X2. Y0. Seu centro está em X0 Y0. Poderíamos especificar em G-code assim:

G02 (Configura modo arco horário)
X2 Y0 I0 J-2.0

O Centro Usando Raio "R"

O centro apenas especificando o raio do círculo. Círculo tem raio 2, então G-Code poderia ser simplesmente: G02 X2 Y0 R2

G17/G18/G19 – Designação de Plano. Arcos devem existir em plano designado por G17 (XY), G18 (XZ) ou G19 (YZ). G17 é padrão da máquina.

Dominando a Programação CNC: Linguagem, Estrutura e Códigos G/M

Figura 3. Designação de Plano

G40/G41/G42 – Compensação de Diâmetro de Corte (CDC - Cutter Diameter Compensation)

CDC é chave para usinagem CNC de precisão, permitindo compensar desgaste e deflexão da ferramenta comandando a máquina a desviar esquerda (G41) ou direita (G42) do caminho programado. G40 cancela compensação. A quantidade de offset é inserida em registrador D do controle CNC. O registrador de desgaste pode ser pensado como tabela que o controle consulta a cada movimento.

Offset Diâmetro FerramentaValor
D10.0125
D20.0000
D30.0000
D40.0000
D50.0000
D60.0000

O valor no registrador D é calculado pelo operador, que monitora tamanho final de características da peça, compara com desenho, e insere diferença no registrador conforme necessário para manter peça dentro das especificações. Se não há desvio, registrador fica zero.

G01 G41 D1 X1.0 Y.25 F40.

G43 – Compensação de Comprimento de Ferramenta

G43 ativa compensação de comprimento de ferramenta. Sempre acompanhado de H-code e movimento Z, onde H é registrador TLO a ler, e Z é altura a ir em referência ao datum da peça.

O TLO pode ser pensado como tabela no controle:

Registrador Comprimento FerramentaZ
H110.236
H24.7510
H36.9652
H47.6841
H512.4483
H68.2250

O TLO é combinado com offset de fixação ativo no controle para que a máquina saiba onde a ponta da ferramenta está em relação ao datum da peça.

G43 H1 Z1.

G54 – Offset de Trabalho (Work Offset)

Offsets de trabalho são registradores de dados no controle CNC que guardam distância da posição home X, Y, Z da máquina ao datum da peça. Podem ser pensados como tabela no controle:

Offset TrabalhoXYZ
G5414.25676.65970.0000
G550.00000.00000.0000
G560.00000.00000.0000
G570.00000.00000.0000
G580.00000.00000.0000
G590.00000.00000.0000

Dica: G54 geralmente usado para primeiro setup de usinagem. Offsets adicionais para usinar outros lados da peça.

Valores X e Y representam distância do home da máquina ao datum XY da peça. Valor Z é distância do ponto de referência da ferramenta (ex: topo de bloco 1-2-3) ao datum Z da peça.

G54 X0. Y0.

Teste da Unidade

  1. Descreva as instruções da lista do programa CNC.
  2. Todos programas CNC começam e terminam com quê?
  3. Descreva códigos de comando de endereço por letra.
  4. Liste três códigos de caracteres especiais.
  5. Descreva códigos G e M.
  6. Descreva G00 G90 G54 X0 Y0.
  7. Descreva G00 G90 G43 H1 Z1.
  8. Qual a diferença entre G00 e G01?
  9. Explique a diferença entre G02 e G03.
  10. Descreva as palavras F e S.

Tecnologia industrial

  1. Fundamentos de Programação de Microprocessadores
  2. Entendendo a Estrutura de Programas C: Guia para Iniciantes
  3. Entendendo a Estrutura de Programas C#: Componentes Essenciais e Exemplo
  4. Dominando a Usinagem CNC: Controle de Variáveis para Resultados Consistentes
  5. Domine a Precisão do Fresamento CNC: Passos Comprovados para Peças de Precisão
  6. Serviços Premium de Usinagem CNC e Ferramentaria em Portland, Oregon
  7. Unidade 5: Operação CNC – Dominando Setup e Controle do Haas Mill
  8. Aprimorando Precisão e Exatidão de Ferramentas de Máquina CNC: Guia Completo
  9. Entendendo Retificadoras CNC de Ferramentas e Cortadores: Função, Usos e Benefícios
  10. Preajustador e Medição de Ferramentas CNC: Guia Essencial para Precisão e Eficiência