1 Universidade de Caxias do Sul Centro de Ciências Exatas e Tecnologia UCS Departamento de Engenharia Mecânica Programação CNC Utilizando o Comando Mitsubishi Meldas-M3 Gerson Luiz Nicola Eng. Mec. Prof. Carlos Alberto Costa Agosto de 2000 2 Programação: Nome do programa: O _ _ _ _ O nome do programa deve levar a letra "O", seguida do número de identificação do programa, com até 4 algarismos. Transmissão: Para realizar a transmissão através de cabo do computador para a máquina CNC deve-se adicionar uma linha no início e no final do programa com uma porcentagem %. Ex.: % O1234 G90 G40 G80 G21 : : M05 M30 % Comandos de Referência: G90 - Sistema de coordenadas absolutas (modal) Quando se usa coordenadas absolutas, todos os movimentos são realizados com relação ao ponto de referência programado (zero-peça). G91 - Sistema de coordenadas incremental (modal) Usando-se coordenadas incrementais, todos os movimentos são realizados com relação ao último ponto programado (posição relativa). Portanto o comando especifica a distância a ser percorrida. Exemplo: Coord. Absolutas N1 G90 G00 X0 Y0; N2 G01 X200. Y50. F100; N3 X100. Y100.; Coord. Incrementais N1 G90 G00 X0 Y0; N2 G91 G01 X200. Y50. F100.; N3 X-100. Y50.; Obs.: Chama-se modal aquele comando que passa a atuar em todos os blocos subsequentes até que algum outro comando o desabilite. Sistema de Medidas: G20 - Sistema em polegadas (modal) Este comando especifica a entrada de dados em polegadas. G21 - Sistema em milímetros (modal) 3 Este comando especifica a entrada de dados em milímetros (sistema métrico). Obs.: Deve-se utilizar sempre o ponto decimal para os valores de coordenadas, mesmo para números inteiros. Ex.: Para deslocarmos a ferramenta 4 mm no eixo X: G01 X4.; ou G01 X4000; (o comando interpreta este número como 4.000 mm) Comandos de Posicionamento: G00- Interpolação linear em avanço rápido (modal) Quando este comando é utilizado, a ferramenta é posicionada no ponto programado nas coordenadas X, Y, e Z com avanço rápido (máximo avanço da máquina). G00 X_ Y_ Z_; Exemplo: G90 G00 X150. Y0 Z100.; G01- Interpolação linear em avanço programado (modal) O avanço programado é comandado pelo código F, definindo o avanço de corte desejado. Obs.: O avanço F é modal G01 X_ Y_ Z_ F_; Exemplo: G90 G00 X20. Y20.; G01 X40. Y50. F200; X70.; X50. Y20.; X20.; Comandos de Interpolação Circular: 4 G02- Utilizado para movimentar a ferramenta em trajetória circular no sentido horário (modal). G03- Utilizado para movimentar a ferramenta em trajetória circular no sentido anti-horário (modal). a) G02 X_ Y_ R_ F_; ou G03 X_ Y_ R_ F_; Onde: X, Y = ponto de chegada R = raio do arco F = avanço Obs.: Se R for positivo, a ferramenta percorrerá o menor caminho e se R for negativo, a ferramenta percorrerá o maior caminho. Exemplo: arco 1: G02 X100. Y50. R75. F100; arco 2: G02 X100. Y50. R-75. F100; b) G02 X_ Y_ I_ J_ F_; ou G03 X_ Y_ I_ J_ F_; Onde: X, Y = coordenadas do ponto de chegada I, J = coordenadas do centro do arco relativo ao início. Exemplo: Fig. 1- arco de círculo Fig. 2- círculo completo G01 X10. Y15.; G17 G02 X20. Y25. I10. J0; G01 X30. Y10.; G17 G02 X30. Y10. I0 J15.; I=X': distância até o centro (eixo X) J=Y': distância até o centro (eixo Y) Interpolaç 5 ão Helicoidal: G02 X_ Y_ Z_ I_ J_ P_; ou G03 X_ Y_ Z_ I_ J_ P_; Onde: X, Y, Z = ponto de chegada I, J = coordenadas do centro do arco relativo ao início. P= número de passos da hélice (voltas). Para um passo incompleto, usa-se P0 ou ignora-se. Exemplo: G01 X30. Y20. Z30.; G03 X30. Y20. Z0 I-5. J0 P4; Sistema de Coordenadas: (modal) Este comando estabelece o ponto zero da peça. G54 até G59 Desabilitado por G52, G53 ou outro G5_. Obs.: Quando não especificado, o comando assume como default o G54. Quando utiliza-se um G5_ diferente do G54, deve-se, a cada troca de ferramenta com parada de máquina, inserir novamente o G5_ no bloco inicial. Exemplo: Planos de Trabalho: Este comando especifica o plano em que a ferramenta executa a interpolação circular e a compensação de corte. G17 - plano XY G18 - plano XZ G19 - plano YZ 6 Exemplo: Modos de checagem de Parada Exata: (modais) G61- Controla os eixos para que a máquina pare exatamente no ponto desejado. É desabilitado por G62, G63, G64. Exemplo: G61.1 -Modo de controle de alta precisão. Controla a aceleração e a desaceleração dos eixos para que o posicionamento seja preciso e não haja parada nos eixos. Indicado em usinagem de superfícies com passes muito finos. Desabilitado por G62, G63, G64. Exemplo: Modo de Controle de Cantos: (modal) G62 - Controla a precisão do ângulo entre duas linhas ou arcos e melhora o canto "vivo". Desabilitado por G61, G61.1, G63, G64. 7 Exemplo: Modo de Rosqueamento: (modais) G63 - Cria o ambiente para se executar o rosqueamento. Desativa os controles de cantos, o comando bloco a bloco e o feed-hold. Desabilitado por G61, G61.1, G62, G64. G64 - Desabilita G61, G61.1, G62 e G63. Tempo de espera: (não modal) Quando este comando é ativado, a execusão do bloco seguinte é atrasada por um determinado período de tempo. G04 P_; ou G04 X_; Obs.: Deve ser usado juntamente com o comando G94. G94 = avanço na escala mm/min G95 = avanço na escala rot/min Exemplo: G94 G04 P_; X : 0.001 - 99999.999 (seg.) P : 1 - 99999999 (x 0.001 seg.) Compensação do comprimento da Ferramenta: (modal) Este comando é utilizado para realizar a compensação no comprimento da ferramenta. G43 - Correção positiva no comprimento da ferramenta (Z+) G44 - Correção negativa no comprimento da ferramenta (Z-) G49 - Desabilita G43 e G44 Exemplo: T02 M06; G54 G90; G43 G00 X0 Y0 Z5. H02 M03 S1000; 8 Obs.: O valor de H02 é obtido através do "preset" da ferramenta sobre a mesa ou bloco e inserido no comando na tela "Tool Offset". O número do corretor deve preferencialmente corresponder ao número da ferramenta (ex.: T03, corretor H03). Compensação do raio da Ferramenta: Utiliza-se este comando para realizar a compensação do raio da ferramenta em relação a trajetória programada. G41 - Esquerda (a ferramenta se desloca à esquerda do caminho programado) G42 - Direita (a ferramenta se desloca à direita do caminho programado) G40 - Desabilita os comandos de compensação G41 e G42 Exemplo: para ferramenta T01 e plano de trabalho G17. G41 G01 X_ Y_ D1; ou G42 G01 X_ Y_ D1; onde: D1= valor do raio da ferramenta inserido pelo operador na tabela de corretores de ferramentas "Tool Offset", referente a ferramenta número 1. Observações importantes: Para iniciar uma usinagem com compensação, deve-se sempre executar um movimento de aproximação da ferramenta fora da peça, de modo que a ferramenta chegue ao ponto inicial da usinagem já com a compensação. Para finalizar a usinagem com compensação, deve-se adicionar um comando que afaste a ferramenta da peça e só depois desabilitar a compensação. Para utilizar compensação nos planos XZ (G18) e YZ (G19), usa-se uma ferramenta com ponta esférica, de modo que na interpolação circular a ferramenta faz uma trajetória tangente ao caminho programado. Neste caso o comprimento da ferramenta (H_), deve ser considerado em relação ao centro do raio da ponta, ou seja, o valor do raio deve ser descontado do comprimento total da ferramenta. 9 Y G41 G17 G42 X G42 Z G18 G41 X Z G41 G19 G42 Y Compensação de Movimento: (não modal) Utilizando-se estes comandos, a distância de movimento nos eixos especificados no mesmo bloco podem ser extendidos ou reduzidos de um valor D__, previamente programado na tela de corretores de ferramentas "offset". G45 - extende o movimento G46 - reduz o movimento Exemplo: D01= 10.00 mm (valor do raio da ferramenta) N100 G91 G46 G00 X40. Y40. D01; N101 G45 G01 X100. F200; N102 G45 G03 X10. Y10. J10.; N103 G45 G01 Y40.; 10 G47 e G48 - Semelhante a G45 e G46, somente com a diferença que realizam o dobro da compensação. G47 - Extende o movimento 2 X G48 - Reduz o movimento 2 X Exemplo: D01= 10.00 mm N100 G46 G02 X-20. Y20. J20.; N101 G45 G01 Y0; N102 G47 X-30.; N103 Y-30.; N104 G48 X-30.; N105 Y30.; N106 G45 X-30.; Funções “M” (Miscelâneas): M00 - Parada programada M01 - Parada opcional M02 - Fim de programa M03 - Fuso horário M04 - Fuso anti-horário M05 - Parada do fuso M06 - Troca automática de ferramenta M08 - Liga refrigerante M09 - Desliga refrigerante M19 - Posiciona fuso para troca M30 - Fim de programa e posiciona novamente no início M98 - Chamada de sub-programa (sub-rotina) M99 - Retorno ao programa principal 11 Velocidade do Fuso: (RPM) S_ _ _ _ Ex.: G01 X100. Y80. S1000 M03; Troca de Ferramenta: T_ _ Indica o número da ferramenta. Para a troca automática, o número da ferramenta T_ _ deve vir seguido de M06. Ex.: T02 M06; Ciclos de Furação: Tabela com endereços e significado Endereço G X Y Z P Q R F L Significado seleciona o ciclo de seqüência fixa a posição do fuso no eixo X fixa a posição do fuso no eixo Y fixa a profundidade do furo fixa o tempo de parada no final do furo (fundo) fixa o passo de aprofundamento (G73 ou G83) fixa a posição R (altura de segurança) fixa o avanço de usinagem fixa o número de repetições de determinado ciclo Furação Simples: G81 X_ Y_ Z_ R_ F_; Obs.: O comando G81 deve ser usado conjuntamente com G98 ou G99. G98 -após executado o furo, a ferramenta retorna à posição inicial. G99 -após executado o furo, a ferramenta retorna à posição do ponto R. Exemplo: Operações: 1- posiciona em avanço rápido 2- avança até o ponto R em avanço rápido 3- executa a furação 4- retorna (*) (*) G98 ou G99 G00 Xx1 Yy1; G00 Zr1; G01 Zz1 Ff1; G98 G00 Z-(z1+r1)ou G99 G00 Z-z1; 12 Furação com Faceamento: Neste ciclo de furação a ferramenta após executar o furo, permanece um determinado tempo na posição final do mesmo antes de retornar à posição inicial. G82 X_ Y_ Z_ R_ F_ P_; Exemplo: Operações: 1- posiciona em avanço rápido G00 Xx1 Yy1; 2- avança até o ponto R em avanço rápido G00 Zr1; 3- executa a furação G01 Zz1 Ff1; 4- tempo de espera G04 Pp1; 5- retorna a posição inicial G98G00Z-(z1+r1);ou G99 G00 Z-z1; Furação Profunda: G83 X_ Y_ Z_ R_ Q_ F_; Sem quebra de cavaco G73 X_ Y_ Z_ R_ Q_ F_ P_; Com quebra de cavaco Exemplo: Operações: 1- posiciona em avanço rápido 2- avança até o ponto R em avanço rápido 3- executa a furação até a prof. q 4- retorna até a altura R 5- avança até o ponto q-m em avanço rápido 6- executa a furação até a prof. 2.q 7- retorna até a altura R 8- avança até o ponto 2.q-m em avanço rápido 9- executa a furação até a prof. 3.q 10- retorna a posição inicial G00 Xx1 Yy1; G00 Zr1; G01 Zq Ff; G00 Z-q; G00 Z(q-m); G01 Z(q+m); G00 Z-2.q; G00 Z(2.q-m); G01 Z(q+m) Ff; G98 G00 Z-(z1+r1); Rosqueamento com 13 Macho: G84 X_ Y_ Z_ R_ F_ P_; Rosca direita G74 X_ Y_ Z_ R_ F_ P_; Rosca esquerda Onde: P= tempo de espera F= passo da rosca Exemplo: Operações: 1- posiciona 2- avança até o ponto R 3- executa o rosqueamento 4- tempo de espera 5- reverte a rotação 6- retorna a posição R 7- retorna a posição inicial G00 Xx1 Yy1; G00 Zr1; G01 Zz1 Ff1; G04 Pp1; M4; G01 Z-z1 Ff1; G98 G00 Z-r1; Mandrilamento: G85 X_ Y_ Z_ R_ F_; Exemplo: Operações: 1- posiciona G00 Xx1 Yy1; 2- avança até o ponto R G00 Zr1; 3- executa o mandrilamento G01 Zz1 Ff1; 4- retorna a posição R em mandrilamento G01 Z-z1 Ff1; 5- retorna a posição inicial G98 G00 Z-r1; Mandrilamento com Faceamento: 14 G86 X_ Y_ Z_ R_ F_ P_; Mandrilamento de dentro para fora: G87 X_ Y_ Z_ R_ I_ J_ F_; G76 X_ Y_ Z_ R_ I_ J_ F_; Passes de acabamento Onde: I, J = valor a recuar para entrar no furo Mandrilamento saindo com o fuso parado: G88 X_ Y_ Z_ R_ F_ P_; Mandrilamento saindo com avanço programado: G89 X_ Y_ Z_ R_ F_ P_; Cancelamento de Ciclos: G80 - Desabilita todos os ciclos Ciclos de Posicionamento: Todos os ciclos de posicionamento devem ser precedidos por um ciclo de furação G81 até G89, sendo necessária a presença da função "L0", que determina que o ciclo não seja executado de imediato e aguarde a instrução do bloco seguinte. Furação de Flange: G34 - Furação em círculo (não modal) G34 X_ Y_ I_ J_ K_; Onde: X,Y = centro da furação I = raio da furação J = ângulo do primeiro furo em relação ao centro K = número de furos Exemplo: Número de furos= 6 G81 Z-10. R5. L0 F200. G99; G34 X100. Y100. I80. J20. K6; Obs.: Quando L0 é atribuído no comando G81, os dados para a execução do furo são armazenados e utilizados no bloco seguinte. O ângulo inicial sempre será com relação ao eixo "X" no sentido anti-horário G35 - Furação em linha com determinado ângulo (não modal) 15 G35 X_ Y_ I_ J_ K_; Onde: X,Y = localização do primeiro furo I = distância entre os furos (linear) J = ângulo da linha K = número de furos Exemplo: Número de furos= 5 G81 Z-10. R5. L0 F200; G35 X200. Y100. I100. J30. K5; G36 - Furação em Arco (não modal) G36 X_ Y_ I_ J_ P_ K_; Onde: X,Y = centro da furação I = raio do arco J = ângulo do primeiro furo relativo ao centro (anti-horário ) P = distância angular entre os furos K = número de furos Exemplo: Número de furos= 5 G81 Z-10. R5. L0 F200; G36 X300. Y100. I300. J10. P15. K5; G37.1 - Malha de Furos (não modal) 16 G37.1 X_ Y_ I_ P_ J_ K_; Onde: X,Y = posição inicial da malha I = intervalo no eixo X (distância entre furos) P = número de furos no eixo X J = intervalo no eixo Y (distância entre furos) K = número de furos no eixo Y Exemplo: G81 Z-10. R5. L0 F100; G37.1 X300. Y-100. I150. P4 J100. K5; Sub-programas: (Sub-rotinas) Usa-se sub-programas para executar operações repetitivas, com determinadas variáveis. Pode-se utilizar até 8 níveis de sub-programas. M98 P_ H_ L_; Chama o sub-programa Onde: P = número do sub-programa a ser executado H = número da linha do sub-programa. Se for omitido,inicia pela primeira linha. L = número de repetições do sub-programa M99 P_; Para retornar ao programa principal Onde: P = número da linha que se deseja retornar. Se for omitido, retornará ao bloco seguinte. Exemplo: Programa 10 G90 G17 G21 G40 G80; T04 M06; (principal): 17 G54 G43 G00 X0 Y0 Z3. S1500; M03 H04; G91 G01 X-8. Y-18. F100; Z-7.; M98 P12 L8; G00 Z3.; X-64.; G01 Z-7.; M98 P12 L8; G00 Z11.; X-64.; Programa 12 (sub-programa): G01 Y36. F200; X4.; Y-36.; X4.; M99; Sub-programas com variáveis: (Macro) G65- Comando de chamada de sub-programas (não modal) Permite a atribuição de valores a certos endereços que serão associados (dentro do sub-programa) a variáveis pré-determinadas. G65 P_ L_ (endereços); Onde: P = número do sub-programa L = número de repetições endereços = A_ B_ C_... X_ Y_ Z_, designados conforme a tabela seguinte: Endereços e número da variável correspondente Endereços A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Variável em Macro #1 #2 #3 #7 #8 #9 #10 #11 #4 #5 #6 #12 #13 #14 #15 #16 #17 #18 #19 #20 #21 #22 #23 #24 #25 #26 Endereços possíveis 0 0 0 0 0 0 X 0 0 0 0 X 0 X X X 0 0 0 0 0 0 0 0 0 0 18 Legenda: 0 - pode ser usada X - não pode ser usada Expressões condicionais: Igualdade (=) Diferença (≠) Maior ou igual (≥) Maior (>) Menor ou igual (≤) Menor (<) [#_ EQ #_ ] [#_ NE #_ ] [#_ GE #_ ] [#_ GT #_ ] [#_ LE #_ ] [#_ LT #_ ] Exemplo: Programa 10: O0010 G90 G21 G17 G40 G80; T04 M06; G43 G54 G00 X0 Y0 Z1. H04 M03 S1500; G91 G65 P11 A4. B4. C-5. D-72. E5. I72. J72. K-72. F0; G00 X-40. Y-40.; M30; Sub-programa 11: O0011 N10 G01 X#1 Y#2 F500; (compens. do raio da ferramenta) N20 Z#3; (ferram. avança até a prof. de usinagem) N30 IF[#4 EQ #9] GO TO 110;(compara as duas variáveis e decide se o programa prossegue ou finaliza) N40 G01 X#4; (percorre o valor da var. #4 no eixo X) N50 Y#5; (percorre o valor da var. #5 no eixo Y) N60 X#6; (percorre o valor da var. #6 no eixo X) N70 Y#7; (percorre o valor da var. #7 no eixo Y) N80 #4=[#4-8] #5=[#5-8] #6=[#6+8] #7=[#7+8]; (altera o valor das variáveis para o ciclo seguinte) N90 G01 X#1 Y#2; N100 GO TO 30; (retorna para a linha 30) N110 G00 Z#8; (ferram. recua no eixo Z) N120 M99; (retorna ao programa principal) 19 Rotação de Conjuntos: Este comando realiza a repetição de um determinado sub-programa, rotacionando o mesmo em torno de um centro de rotação pré-determinado. M98 P_ H_ I_ J_ K_ L_; Para o plano G17: I, J " G18: K, I " G19: J, K Onde: M98 = chamada de sub-programa P = número do sub-programa H = número da linha do sub-programa I, J, K = valores incrementais de coordenada para o centro de rotação L = número de repetições do sub-programa Exemplo: Programa 5: O0005; G92 X0 Y0; G90 G00 X50.000; M98 P7 L36 I-50.000 J0; G00 X0 Y0; M02; Sub-programa 7: O0007; G03 X54.358 Y0.190 J50.000 F100; X54.134 Y4.927 I-54.354 J-0.190; X49.810 Y4.358 I4.353 J-49.810; X49.240 Y8.682 I-49.810 J-4.358; M99; 20 Rotação de Coordenadas Programadas: (modal) Este comando permite a rotação de coordenadas de trabalho, através da definição de um centro e um ângulo de rotação desejados. Gn G68 a_ ß_ R_; Onde: n = código do plano selecionado: 17, 18 ou 19 a, ß = coordenadas do centro de rotação, correspondentes ao plano selecionado entre X, Y e Z R = ângulo de rotação (graus) (+) sentido anti-horário G69 - Desabilita o comando de rotação de coordenadas Exemplo: N1 G69 G92 X0 Y0 Z0; N2 G90 G17 G68 X30. Y10. R45.; N3 G00 G20; N4 G01 X40. F1000; N5 G02 Y20. R15.; N6 G01 X20.; N7 G03 Y0 R15.; N8 G69 G00 X0 Y0 M02; Escala: (modal) A forma a ser usinada atribuída pelo programa pode ser expandida ou reduzida. O limite de expansão ou de redução vai de 0.000001 a 99.999999. G51 X_ Y_ Z_ P_; 21 Onde: X,Y,Z = determina o centro da escala P = valor da escala O comando é desabilitado por G50. Exemplo: G92 X0 Y0 Z0; G90 G51 X-100. Y-100. P0.5; G00 G43 Z-200. H02; G41 X-50. Y-50.D01; G01 Z-250. F300; Y-150. F150; X-150.; G02 Y-50. J50.; G01 X-50.; G00 G49 Z0; G40 G50 X0 Y0; M02; Espelhamento: (modal) Este comando pode ser usado quando se tem formas simétricas para usinar. G51.1 Xx1; ou G51.1 Yy1; ou G51.1 Zz1; Obs.: A coordenada X, Y ou Z determina a posição no respectivo eixo para a criação de um plano de espelhamento perpendicular ao eixo escolhido. Exemplo: G90 G17 G21 G40 G80; T01 M06; G54 G00 X0 Y0 Z1. G43 H01 M03; G51.1 X100.; M98 P100; M30; Sub-programa: O100; G00 X0 Y20.; G01 Z-1.; Y80.; X75. Y50.; X0 Y20.; Z1.; M99; Arredondamento de Cantos ou Chanfros: 22 G01 X_ Y_ , C_; ou G01 X_ Y_ , R_; Onde: C = comprimento do chanfro R = raio de concordância Exemplo: G91 G01 X40., C10.; X20. Y20.; Coordenadas Angulares: G01 A_ X_; ou G01 A_ Y_; Obs.: selecionando-se o plano G17 Onde: A = ângulo relativo ao eixo X X,Y = coordenada do ponto final Exemplo: G17; N1 G01 Aa1 Xx1 (Yy1); N2 G01 A-a2 Xx2 (Yy2); ou N2 G01 Aa3 Xx2 (Yy2); Retorno à posição Zero: G28 -Zero da máquina (Home position) G29 -Zero do programa Obs.: Deve ser utilizado junto com um comando de movimentação (G00 ou G01). Utilização do quarto eixo da máquina: 23 Em um centro de usinagem que possui um quarto eixo rotativo, ortogonal ao eixo da ferramenta, é possível, por exemplo, usinar um canal em hélice sobre um cilindro. Para movimento do quarto eixo em avanço rápido: G00 U_ ; Para movimento em avanço programado: G01 U_ F_ ; Onde: U = ângulo de rotação (gráus) + sentido horário - sentido anti-horário F = avanço Obs.: Para a movimentação do quarto eixo deve-se utilizar preferencialmente o sistema de coordenadas incrementais (G91). Este cuidado deve ser tomado pois trabalhando-se com (G90), o movimento de giro ocorre percorrendo sempre o menor caminho, no sentido horário ou anti-horário.